ย้ายข้อมูลผลิตภัณฑ์

Merchant API ขอแนะนำวิธีที่แข็งแกร่งและใช้งานง่ายยิ่งขึ้นในการจัดการข้อมูลผลิตภัณฑ์ การเปลี่ยนแปลงหลักคือการแยกข้อมูลผลิตภัณฑ์ออกเป็น 2 แหล่งข้อมูลที่แตกต่างกัน ได้แก่ ProductInput สำหรับการส่งข้อมูล และ Product สำหรับการดู เวอร์ชันสุดท้ายที่ประมวลผลแล้ว ซึ่งรวมถึงสถานะและปัญหาของผลิตภัณฑ์ โครงสร้างใหม่นี้ ช่วยให้ได้รับประสบการณ์ที่คาดการณ์ได้และโปร่งใสมากขึ้น

คู่มือนี้จะอธิบายความแตกต่างที่สำคัญเพื่อช่วยคุณย้ายข้อมูลการผสานรวมจาก Content API for Shopping ดูคำแนะนำแบบละเอียดเกี่ยวกับการใช้ ฟีเจอร์ใหม่ได้ที่จัดการ ผลิตภัณฑ์

ความแตกต่างที่สำคัญ

ต่อไปนี้คือการเปลี่ยนแปลงที่สำคัญที่สุดเกี่ยวกับวิธีจัดการผลิตภัณฑ์ใน Merchant API เมื่อเทียบกับ Content API for Shopping

  • แหล่งข้อมูลเฉพาะสำหรับข้อมูลที่ป้อนและข้อมูลที่ประมวลผลแล้ว: Merchant API จะแบ่ง การจัดการผลิตภัณฑ์ออกเป็น 2 แหล่งข้อมูล คุณสามารถใช้แหล่งข้อมูล ProductInput เพื่อแทรก อัปเดต และลบข้อมูลผลิตภัณฑ์ได้ คุณสามารถใช้แหล่งข้อมูล อ่านอย่างเดียว Product เพื่อดูผลิตภัณฑ์ขั้นสุดท้ายหลังจากที่ Google ประมวลผลข้อมูลที่คุณป้อน ใช้กฎ และรวมข้อมูลจากแหล่งข้อมูลเสริม

  • การเข้ารหัสชื่อผลิตภัณฑ์: คุณใช้การเข้ารหัส base64url ที่ไม่มีการเพิ่มแพด (RFC 4648 ส่วนที่ 5) สำหรับทั้งฟิลด์ ProductInput.name และ Product.name ได้ ในกรณีที่ชื่อผลิตภัณฑ์มีอักขระที่ใช้โดย Merchant API หรืออักขระที่สงวนไว้สำหรับ URL การเข้ารหัสเป็นข้อบังคับ ตัวอย่างเช่น คุณต้อง เข้ารหัสชื่อผลิตภัณฑ์หากมีอักขระต่อไปนี้

    % . + / : ~ , ( * ! ) & ? = @ # $
    
  • สถานะผลิตภัณฑ์ที่ผสานรวม: ระบบจะนำบริการ productstatuses ออก ตอนนี้ปัญหาการตรวจสอบผลิตภัณฑ์และสถานะปลายทางจะรวมอยู่ในทรัพยากร Product โดยตรงภายในฟิลด์ productStatus ซึ่งจะช่วยให้ดึงข้อมูลได้ง่ายขึ้น

  • การอัปเดตผลิตภัณฑ์ที่คาดการณ์ได้: วิธีการ productInputs.patch ใหม่จะแก้ไขอินพุตผลิตภัณฑ์ที่เฉพาะเจาะจงโดยตรง ซึ่งเป็นการปรับปรุงที่สำคัญกว่า Content API สำหรับ Shopping ซึ่งการอัปเดตอาจถูกเขียนทับโดยการอัปโหลดฟีดอื่นๆ โดยไม่คาดคิด ใน Merchant API การอัปเดต จะยังคงอยู่จนกว่าจะมีการอัปเดตหรือลบอินพุตผลิตภัณฑ์ที่เฉพาะเจาะจงนั้นอีกครั้ง ระบบจะใช้การอัปเดตผลิตภัณฑ์กับทรัพยากร ProductInput แทนที่จะใช้กับทรัพยากร Product ที่ประมวลผลแล้ว

  • เลือกแหล่งข้อมูลเพื่อการจัดการข้อมูลที่สะอาดขึ้น: การดำเนินการเขียนทั้งหมดproductInputs ตอนนี้ต้องใช้พารามิเตอร์การค้นหา dataSource ซึ่งจะทำให้ ระบุแหล่งข้อมูลที่คุณกำลังแก้ไขได้อย่างชัดเจน ซึ่งจะเป็นประโยชน์อย่างยิ่งหากคุณมีแหล่งข้อมูลหลายแหล่งที่ให้ข้อมูล

  • ตัวระบุทรัพยากรใหม่: ตอนนี้ระบบจะระบุผลิตภัณฑ์ด้วยทรัพยากร RESTful name แทนฟิลด์ id รูปแบบคือ accounts/{account}/products/{product}

  • ไม่มีชุดที่กำหนดเอง: วิธีcustombatchใช้ไม่ได้อีกต่อไป คุณ สามารถใช้คำขอแบบ อะซิงโครนัสหรือการจัดกลุ่ม HTTP เพื่อส่งคำขอหลายรายการ ในการเรียก HTTP ครั้งเดียว

  • แหล่งข้อมูลสำหรับป้ายกำกับฟีดและภาษาใดก็ได้: Merchant API ช่วยให้สร้างแหล่งข้อมูลได้โดยไม่ต้องระบุป้ายกำกับฟีดและภาษา จึงช่วยให้แทรกผลิตภัณฑ์ที่มีป้ายกำกับฟีดและภาษาใดก็ได้

คำขอ

ส่วนนี้จะเปรียบเทียบรูปแบบคำขอสำหรับ Content API for Shopping และ Merchant API

รายละเอียดสำหรับคำขอ Content API for Shopping Merchant API
ซื้อผลิตภัณฑ์ GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId} GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products/{product}
แสดงรายการผลิตภัณฑ์ GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products
แทรกผลิตภัณฑ์ POST https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products POST https://merchantapi.googleapis.com/products/v1/accounts/{account}/productInputs:insert
อัปเดตผลิตภัณฑ์ PATCH https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId} PATCH https://merchantapi.googleapis.com/products/v1/accounts/{account}/productInputs/{productinput}
ลบผลิตภัณฑ์ DELETE https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId} DELETE https://merchantapi.googleapis.com/products/v1/accounts/{account}/productInputs/{productinput}
รับสถานะผลิตภัณฑ์ GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/productstatuses/{productId} GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products/{product}
แสดงรายการสถานะผลิตภัณฑ์ GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/productstatuses GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products
จัดกลุ่มคำขอหลายรายการ POST https://shoppingcontent.googleapis.com/content/v2.1/products/custombatch ใช้คำขอแบบอะซิงโครนัสหรือการจัดกลุ่ม HTTP

รหัสระบุ

รูปแบบตัวระบุผลิตภัณฑ์มีการเปลี่ยนแปลงใน Merchant API เป็นชื่อทรัพยากร REST มาตรฐาน

คำอธิบายตัวระบุ Content API for Shopping Merchant API
รหัสผลิตภัณฑ์ สตริงที่ประกอบด้วยกลุ่มซึ่งคั่นด้วยเครื่องหมายโคลอน (:)
รูปแบบ: channel:contentLanguage:targetCountry:offerId หรือ channel:contentLanguage:feedLabel:offerId
ตัวอย่าง: online:en:US:sku123
สตริงnameของทรัพยากร REST
รูปแบบ: accounts/{account}/products/{product} โดยที่ {product} คือ contentLanguage~feedLabel~offerId
ตัวอย่าง: accounts/12345/products/en~US~sku123
การเข้ารหัส: ขอแนะนำให้ใช้การเข้ารหัส base64url ที่ไม่มีการเพิ่ม Padding และต้องใช้ในกรณีที่รหัสผลิตภัณฑ์มีอักขระที่ใช้โดย Merchant API หรืออักขระที่สงวนไว้สำหรับ URL

เมธอด

ตารางนี้แสดงเมธอด Content API for Shopping และเมธอดที่เทียบเท่าใน Merchant API

เมธอด Content API for Shopping เมธอดของ Merchant API ความพร้อมใช้งานและหมายเหตุ
products.get products.get ดึงข้อมูลผลิตภัณฑ์สุดท้ายที่ประมวลผลแล้ว
products.list products.list แสดงผลิตภัณฑ์สุดท้ายที่ประมวลผลแล้ว
products.insert productInputs.insert แทรกอินพุตผลิตภัณฑ์ ต้องมี dataSource
products.update productInputs.update ลักษณะการทำงานแตกต่างกันอย่างมาก โดยจะอัปเดตอินพุตของผลิตภัณฑ์ที่เฉพาะเจาะจงและจะยังคงอยู่
products.delete productInputs.delete ลบอินพุตผลิตภัณฑ์ที่เฉพาะเจาะจง ต้องมี dataSource
products.custombatch ไม่พร้อมใช้งาน ใช้คำขอแบบอะซิงโครนัสหรือการจัดกลุ่ม HTTP
productstatuses.get products.get ระบบจะนำบริการ productstatuses ออก ตอนนี้ข้อมูลสถานะเป็นส่วนหนึ่งของแหล่งข้อมูล Product แล้ว
productstatuses.list products.list ระบบจะนำบริการ productstatuses ออก ตอนนี้ข้อมูลสถานะเป็นส่วนหนึ่งของแหล่งข้อมูล Product แล้ว
productstatuses.custombatch ไม่พร้อมใช้งาน ใช้คำขอแบบอะซิงโครนัสหรือการจัดกลุ่ม HTTP

การเปลี่ยนแปลงฟิลด์โดยละเอียด

ตารางนี้ไฮไลต์ฟิลด์สำคัญที่มีการเปลี่ยนแปลง เพิ่ม หรือนำออก ใน Merchant API

Content API for Shopping Merchant API คำอธิบาย
id name ตอนนี้ตัวระบุหลักสำหรับผลิตภัณฑ์คือทรัพยากร REST name ขอแนะนำให้ใช้การเข้ารหัส base64url ที่ไม่มีการเพิ่ม Padding และต้องใช้ในกรณีที่ชื่อผลิตภัณฑ์มีอักขระที่ใช้โดย Merchant API หรืออักขระที่สงวนไว้สำหรับ URL
แอตทริบิวต์ข้อกำหนดในการจัดทำข้อมูลผลิตภัณฑ์ระดับบนสุด (เช่น title, price, link) วัตถุ productAttributes รายการ แอตทริบิวต์ผลิตภัณฑ์ เช่น title, price และ link จะไม่ใช่ช่องระดับบนสุดอีกต่อไป ตอนนี้ระบบจะจัดกลุ่มไว้ในออบเจ็กต์ productAttributes ทั้งในแหล่งข้อมูล Product และ ProductInput ซึ่งจะช่วยให้โครงสร้างทรัพยากรมีความสะอาดและเป็นระเบียบมากขึ้น
targetCountry feedLabel ตอนนี้ชื่อทรัพยากรใช้ feedLabel แทน targetCountry เพื่อให้สอดคล้องกับฟังก์ชันการทำงานของ Merchant Center
feedId dataSource (พารามิเตอร์การค้นหา) ตอนนี้ dataSource ชื่อเป็นพารามิเตอร์การค้นหาที่จำเป็นสำหรับเมธอดเขียน productInputs ทั้งหมด (insert, update, delete)
channel ไม่พร้อมใช้งาน ใช้ legacy_local สำหรับผลิตภัณฑ์ในร้านเท่านั้น ฟิลด์ channel ไม่มีอยู่ใน Merchant API อีกต่อไป ผลิตภัณฑ์ที่มีช่องทาง LOCAL ใน Content API for Shopping ควรตั้งค่าฟิลด์ legacy_local เป็นจริงแทน
ไม่พร้อมใช้งาน versionNumber ฟิลด์ใหม่ที่ไม่บังคับใน ProductInput ซึ่งใช้เพื่อป้องกันการแทรกที่ไม่เป็นไปตามลำดับลงในแหล่งข้อมูลหลัก
stringฟิลด์ประเภทที่มีชุดค่าที่กำหนด enumฟิลด์ประเภทที่มีชุดค่าที่กำหนด ฟิลด์ภายในแอตทริบิวต์ผลิตภัณฑ์ที่มีชุดค่าที่กำหนด (เช่น excluded_destinations, availability) จะเป็นประเภท enum แล้ว