คำแนะนำนี้จะช่วยคุณย้ายข้อมูลจาก Merchant API v1beta ไปยัง v1 ซึ่งเป็นเวอร์ชันแรก
ที่พร้อมให้บริการแก่บุคคลทั่วไป เวอร์ชัน v1 มีการอัปเดตหลายอย่างและ
การเปลี่ยนแปลงเล็กน้อยที่อาจต้องมีการอัปเดตโค้ด การเปลี่ยนแปลงเหล่านี้มีจุดประสงค์เพื่อ
ลดความซับซ้อนของ API และปรับปรุงการจัดการบัญชี Merchant Center
ความแตกต่างที่สำคัญ
การเปลี่ยนแปลงที่สำคัญที่สุดซึ่งคุณควรทราบเมื่อย้ายข้อมูลจาก v1beta
ไป v1 มีดังนี้
- ลงทะเบียนนักพัฒนา API อย่างน้อย 1 รายแบบครั้งเดียวเพื่อใช้ Merchant API:
คุณจะต้องเรียกใช้เมธอด
registerGcp(เพียงครั้งเดียวสำหรับแต่ละโปรเจ็กต์ Google Cloud ที่ใช้สำหรับการ ตรวจสอบสิทธิ์) เพื่อระบุรายละเอียดการติดต่อ ซึ่งจะช่วยให้คุณใช้ API และรับข้อมูลอัปเดตและประกาศที่เกี่ยวข้องกับ Merchant API ได้ คุณจะใช้ API ของv1หรือv1alphaไม่ได้จนกว่าจะทำขั้นตอนนี้เสร็จสมบูรณ์ ดูวิธีการได้ที่หัวข้อลงทะเบียนในฐานะนักพัฒนาแอป การเข้ารหัสชื่อผลิตภัณฑ์: ฟิลด์
ProductInput.nameและProduct.nameรองรับการเข้ารหัส base64url แบบไม่มีการเพิ่มแพด (RFC 4648 ส่วนที่ 5) ทำตาม หลักเกณฑ์ต่อไปนี้- สตริงต้องเป็นไปตาม
contentLanguage~feedLabel~offerIdรูปแบบ การเข้ารหัสเป็นข้อกำหนดหากชื่อผลิตภัณฑ์มีอักขระที่ใช้ โดย Merchant API หรืออักขระที่สงวนไว้สำหรับ URL เช่น
% . + / : ~ , ( * ! ) & ? = @ # $หากชื่อผลิตภัณฑ์เป็นไปตาม
contentLanguage~feedLabel~offerIdรูปแบบและไม่มีอักขระใดๆ ที่ใช้โดย Merchant API หรือ อักขระที่สงวนไว้สำหรับ URL คุณอาจใช้รูปแบบธรรมดาโดยไม่ต้องเข้ารหัสเราขอแนะนำให้ใช้การเข้ารหัส base64url ที่ไม่มีการเพิ่มแพด สำหรับชื่อผลิตภัณฑ์ทั้งหมดเพื่อให้การแยกวิเคราะห์สอดคล้องและถูกต้อง
- สตริงต้องเป็นไปตาม
การนำข้อมูลภาษีระดับผลิตภัณฑ์ออก:
taxesและtaxCategoryProduct.attributesเปลี่ยนชื่อแล้ว: เปลี่ยนชื่อฟิลด์Product.attributesเป็นProduct.productAttributesแล้วการนำข้อมูลภาษีระดับผลิตภัณฑ์ออก: ระบบได้นำฟิลด์
taxesและtaxCategoryออกจากออบเจ็กต์Product.productAttributesแล้ว ดูข้อมูลเพิ่มเติมได้ที่บทความช่วยเหลือของ Google Merchant Center เกี่ยวกับภาษีการเปลี่ยนแปลงฟิลด์ GTIN: ฟิลด์
gtinในออบเจ็กต์Product.productAttributesได้เปลี่ยนชื่อเป็นgtinsเพื่อให้สะท้อนว่าฟิลด์นี้สามารถมีค่าได้หลายค่า ตอนนี้ช่องgtinในออบเจ็กต์OrderTrackingSignals.lineItemDetailsเป็นarrayและได้เปลี่ยนชื่อเป็นgtinsแล้วการนำช่องทางออก: ระบบได้นำช่อง
channelออกจาก ผลิตภัณฑ์ ข้อมูลผลิตภัณฑ์ และแหล่งข้อมูล เราได้เพิ่มฟิลด์บูลีนใหม่legacyLocalเพื่อระบุผลิตภัณฑ์ที่ขายเฉพาะในร้านค้าจริงอย่างชัดเจน หมายเหตุ: ฟิลด์legacyLocalเป็นฟิลด์เสริมที่ช่วยในการ ย้ายข้อมูล และจะเลิกใช้งานในที่สุดเมื่อกำหนดเป้าหมายวิธีการทางการตลาดออนไลน์และในร้าน ได้อย่างเต็มที่ด้วยแหล่งที่มาของผลิตภัณฑ์เดียว ดูข้อมูลเพิ่มเติมได้ในตาราง ในส่วนต่อไปนี้ฟิลด์ใหม่สำหรับแอตทริบิวต์สินค้าคงคลังระดับภูมิภาคและระดับท้องถิ่น:
- ฟิลด์
RegionalInventoryทั้งหมด ยกเว้นname,accountและregionจะรวมอยู่ภายใต้ออบเจ็กต์ใหม่ที่ชื่อregionalInventoryAttributesเช่น ตอนนี้แอตทริบิวต์RegionalInventory.priceอยู่ในส่วนRegionalInventory.regionalInventoryAttributes.price - ฟิลด์
LocalInventoryทั้งหมด ยกเว้นname,accountและstoreCodeจะรวมอยู่ภายใต้ออบเจ็กต์ใหม่ที่ชื่อlocalInventoryAttributesเช่น ตอนนี้แอตทริบิวต์LocalInventory.priceอยู่ในส่วนLocalInventory.localInventoryAttributes.price
- ฟิลด์
การนำ
customAttributesออกจากสินค้าคงคลังระดับภูมิภาคและระดับท้องถิ่น: ระบบได้นำฟิลด์customAttributesออกจากทั้งทรัพยากรRegionalInventoryและLocalInventoryแล้วการสร้างบัญชีที่ปรับปรุงแล้ว: เราได้นำฟิลด์
usersที่ซ้ำซ้อนออก จากCreateAndConfigureAccountRequestแล้ว ใช้ฟิลด์userเดียวเพื่อเชื่อมโยงผู้ใช้เริ่มต้นกับบัญชีใหม่มีการเปลี่ยนประเภทแอตทริบิวต์บางประเภทจากสตริงเป็น Enum: มีการเปลี่ยนฟิลด์บางรายการ ภายในทรัพยากร
ProductและInventoryที่มีรายการค่าแบบย่อที่กำหนดจากประเภทstringเป็นประเภทenumเพื่อการตรวจสอบข้อมูลที่ดีขึ้น (เช่น ฟิลด์Product.ProductAttributes.conditionตอนนี้เป็นenum)การนำวิธีการอัปเดตนโยบายคืนสินค้าออนไลน์ออก: เราจะนำวิธีการ
onlineReturnPolicy.updateออกในv1สร้างนโยบายการคืนสินค้าออนไลน์โดยใช้วิธีการonlineReturnPolicy.createแทน
วิธีย้ายข้อมูล
เรามีกำหนดจะหยุดให้บริการ Merchant API เวอร์ชัน v1beta ในวันที่ 28 กุมภาพันธ์ 2026
ดูข้อมูลเพิ่มเติมเกี่ยวกับกำหนดการเลิกใช้งานได้ที่คู่มือการกำหนดเวอร์ชัน Merchant API
ขั้นตอนแรกในการย้ายข้อมูลคือการลงทะเบียนนักพัฒนาแอปแบบครั้งเดียว (ดูลงทะเบียนเป็นนักพัฒนาแอป) คุณต้องเรียกใช้เมธอด
registerGcpสำหรับโปรเจ็กต์ Google Cloud แต่ละโปรเจ็กต์ที่คุณใช้ สำหรับการตรวจสอบสิทธิ์ก่อนที่เมธอดv1จะทำงานไม่ว่าคุณจะเรียกใช้ API ด้วยวิธีใด (ด้วย REST, gRPC หรือโดยใช้ไลบรารี ไคลเอ็นต์) คุณก็สามารถย้ายข้อมูลเป็นระยะๆ ได้ ซึ่งหมายความว่าคุณสามารถอัปเดตและย้ายข้อมูลโค้ดทีละ API ได้ (เช่น ย้าย
ProductsAPI ไปยังv1ขณะที่ยังคงใช้AccountsAPI ในv1beta) โดยไม่ต้องอัปเดตการผสานรวมทั้งหมดพร้อมกัน
การเปลี่ยนแปลงฟิลด์โดยละเอียด
ตารางนี้แสดงการเปรียบเทียบโดยละเอียดของฟิลด์ที่มีการเปลี่ยนแปลง
ระหว่างเวอร์ชัน v1beta และ v1
| v1beta | v1 | คำอธิบาย |
|---|---|---|
ProductInput.name |
ProductInput.name |
Unpadded base64url encoding รองรับและจำเป็นสำหรับ
ชื่อผลิตภัณฑ์ที่มีอักขระที่ใช้โดย Merchant API หรืออักขระที่สงวนไว้สำหรับ URL |
Product.name |
Product.name |
Unpadded base64url encoding รองรับและจำเป็นสำหรับ
ชื่อผลิตภัณฑ์ที่มีอักขระที่ใช้โดย Merchant API หรืออักขระที่สงวนไว้สำหรับ URL |
Product.gtin |
Product.gtins |
มีการเปลี่ยนชื่อฟิลด์สำหรับ GTIN |
Product.taxes |
นำออกแล้ว | นำช่อง taxes ออกแล้ว |
Product.taxCategory |
นำออกแล้ว | นำช่อง taxCategory ออกแล้ว |
Product.channel |
นำออกแล้ว | ระบบนำช่อง channel ออกแล้ว ใช้ฟิลด์
legacyLocal สำหรับกรณีการใช้งานในพื้นที่ |
Product.attributes |
Product.productAttributes |
เปลี่ยนชื่อฟิลด์ attributes เป็น productAttributes แล้ว
|
availability, condition, gender, includedDestinations และ excludedDestinations ในช่อง Product จะแสดงเป็น strings (หรือ array ของ strings) |
ตอนนี้ฟิลด์เหล่านี้เป็น enums (หรือ array ของ enums) |
ฟิลด์ที่มีรายการค่าแบบย่อที่กำหนดไว้เปลี่ยนจากประเภท string เป็น enum
|
price, salePrice, salePriceEffectiveDate และ availability ใน RegionalInventory |
ย้ายไปยัง RegionalInventory.regionalInventoryAttributes แล้ว |
ระบบได้ย้ายช่องเหล่านี้ไปไว้ในส่วนregionalInventoryAttributesแล้ว
|
ฟิลด์ RegionalInventory.availability คือ string |
ตอนนี้ RegionalInventory.regionalInventoryAttributes.availability เป็น enums แล้ว |
เปลี่ยนประเภทความพร้อมให้บริการจาก string เป็น enum แล้ว
|
price, salePrice, salePriceEffectiveDate, availability, quantity, pickupMethod, pickupSla และ instoreProductLocation ใน LocalInventory |
ย้ายไปยัง LocalInventory.localInventoryAttributes แล้ว |
ระบบได้ย้ายช่องเหล่านี้ไปไว้ในส่วนlocalInventoryAttributesแล้ว
|
ฟิลด์ LocalInventory.availability คือ string |
ตอนนี้ LocalInventory.localInventoryAttributes.availability เป็น enums แล้ว |
เปลี่ยนประเภทความพร้อมให้บริการจาก string เป็น enum แล้ว
|
LocalInventory.customAttributes |
นำออกแล้ว | ระบบไม่รองรับแอตทริบิวต์ที่กำหนดเองสำหรับสินค้าคงคลังในร้านอีกต่อไป |
RegionalInventory.customAttributes |
นำออกแล้ว | ระบบไม่รองรับแอตทริบิวต์ที่กำหนดเองสำหรับสินค้าคงคลังระดับภูมิภาคอีกต่อไป |
ProductInput.channel |
นำออกแล้ว | ระบบนำช่อง channel ออกแล้ว ใช้ฟิลด์
legacyLocal สำหรับกรณีการใช้งานในพื้นที่ |
DataSource.channel |
นำออกแล้ว | ระบบนำช่อง channel ออกแล้ว ใช้ฟิลด์
legacyLocal สำหรับกรณีการใช้งานในพื้นที่ |
| ไม่พร้อมใช้งาน | ProductInput.legacyLocal |
ฟิลด์บูลีนใหม่เพื่อระบุว่าผลิตภัณฑ์กำหนดเป้าหมายได้เฉพาะวิธีทางการตลาดในพื้นที่ เท่านั้น รหัสทรัพยากรผลิตภัณฑ์จะมีคำนำหน้า "local~" |
| ไม่พร้อมใช้งาน | Product.legacyLocal |
ฟิลด์บูลีนใหม่เพื่อระบุว่าผลิตภัณฑ์ขายเฉพาะในร้านค้าในพื้นที่และไม่พร้อมจำหน่ายทางออนไลน์ |
| ไม่พร้อมใช้งาน | DataSource.legacyLocal |
ฟิลด์บูลีนใหม่เพื่อระบุว่าแหล่งข้อมูลมีผลิตภัณฑ์ ที่ขายในร้านค้าในพื้นที่เท่านั้น |
OrderTrackingSignals.LineItemDetails.gtin |
OrderTrackingSignals.LineItemDetails.gtins |
เปลี่ยนชื่อฟิลด์ gtin เป็น gtins และ
ตอนนี้เป็นอาร์เรย์ของสตริง (แทนที่จะเป็นสตริง) |
CreateAndConfigureAccountRequest.users |
นำออกแล้ว | ระบบนำช่อง users ออกแล้ว ใช้ช่อง
user เพื่อเพิ่มผู้ดูแลระบบเริ่มต้นลงในบัญชี |