Merchant API ขอแนะนำวิธีที่แข็งแกร่งและใช้งานง่ายยิ่งขึ้นในการจัดการข้อมูลผลิตภัณฑ์ การเปลี่ยนแปลงหลักคือการแยกข้อมูลผลิตภัณฑ์ออกเป็น 2 แหล่งข้อมูลที่แตกต่างกัน
 ได้แก่ ProductInput สำหรับส่งข้อมูล และ Product สำหรับดู
เวอร์ชันสุดท้ายที่ประมวลผลแล้ว ซึ่งรวมถึงสถานะและปัญหาของผลิตภัณฑ์ โครงสร้างใหม่นี้
ช่วยให้ได้รับประสบการณ์ที่คาดการณ์ได้และโปร่งใสมากขึ้น
คู่มือนี้จะอธิบายความแตกต่างที่สำคัญเพื่อช่วยคุณย้ายข้อมูลการผสานรวมจาก Content API for Shopping ดูคำแนะนำแบบละเอียดเกี่ยวกับการใช้ ฟีเจอร์ใหม่ได้ที่จัดการผลิตภัณฑ์
ความแตกต่างที่สำคัญ
ต่อไปนี้คือการเปลี่ยนแปลงที่สำคัญที่สุดเกี่ยวกับวิธีจัดการผลิตภัณฑ์ใน Merchant API เมื่อเทียบกับ Content API for Shopping
แหล่งข้อมูลเฉพาะสำหรับข้อมูลนำเข้าและข้อมูลที่ประมวลผลแล้ว: Merchant API แบ่งการจัดการผลิตภัณฑ์ออกเป็น 2 แหล่งข้อมูล คุณสามารถใช้แหล่งข้อมูล
ProductInputเพื่อแทรก อัปเดต และลบข้อมูลผลิตภัณฑ์ คุณใช้แหล่งข้อมูล อ่านอย่างเดียวProductเพื่อดูผลิตภัณฑ์ขั้นสุดท้ายหลังจากที่ Google ประมวลผลข้อมูลที่คุณป้อน ใช้กฎ และรวมข้อมูลจากแหล่งข้อมูลเสริมได้สถานะผลิตภัณฑ์ที่ผสานรวม: ระบบจะนำบริการ
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 | 
|---|---|---|
| รหัสผลิตภัณฑ์ | สตริงที่ประกอบด้วยกลุ่มที่คั่นด้วยเครื่องหมายโคลอน (:)รูปแบบ: 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 | 
เมธอด
ตารางนี้แสดงเมธอด 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 | 
ไม่พร้อมใช้งาน | ใช้ [asynchronous | 
requests](/merchant/api/samples/insert-product-input-async) หรือการประมวลผลแบบกลุ่มของ HTTP |
การเปลี่ยนแปลงช่องโดยละเอียด
ตารางนี้ไฮไลต์ฟิลด์สำคัญที่มีการเปลี่ยนแปลง เพิ่ม หรือนำออก ใน Merchant API
| Content API for Shopping | Merchant API | คำอธิบาย | 
|---|---|---|
id | 
name | 
ตอนนี้ตัวระบุหลักสำหรับผลิตภัณฑ์คือทรัพยากร REST name | 
แอตทริบิวต์ข้อกำหนดในการจัดทำข้อมูลผลิตภัณฑ์ระดับบนสุด (เช่น 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 แล้ว |