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

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

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

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

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

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

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

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

  • การอัปเดตสินค้าที่คาดการณ์ได้: เมธอดใหม่ productInputs.patch จะแก้ไขอินพุตสินค้าที่เฉพาะเจาะจงโดยตรง ซึ่งเป็นการปรับปรุงที่สำคัญเมื่อเทียบกับ Content API for 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
ID ผลิตภัณฑ์ สตริงที่ประกอบด้วยส่วนต่างๆ ที่คั่นด้วยโคลอน (:)
รูปแบบ: channel:contentLanguage:targetCountry:offerId หรือ channel:contentLanguage:feedLabel:offerId
ตัวอย่าง: online:en:US:sku123
สตริงแหล่งข้อมูล REST name
รูปแบบ: 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.patch ลักษณะการทำงานแตกต่างกันอย่างมาก โดยจะอัปเดตอินพุตสินค้าที่เฉพาะเจาะจงและยังคงอยู่
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 ตอนนี้ตัวระบุหลักสำหรับสินค้าคือ name ของแหล่งข้อมูล REST ขอแนะนำการเข้ารหัส 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 แล้ว