ย้ายข้อมูลจาก Content API v2 ไปยัง v2.1

เมื่อเดือนมีนาคม 2019 เราได้เปิดตัว Content API for Shopping เวอร์ชัน 2.1 และในเดือนเมษายน 2021 เราได้ประกาศว่าเวอร์ชัน 2 จะหยุดให้บริการในวันที่ 30 กันยายน 2021 เวอร์ชัน v2 เลิกใช้งานแล้ว โปรดย้ายข้อมูลไปยังเวอร์ชัน 2.1 โดยทันที

ย้ายข้อมูลแอปพลิเคชัน

การย้ายข้อมูลจาก v2 ไปยัง v2.1 เกี่ยวข้องกับการอัปเดต URL ปลายทางเพื่อเรียกใช้เวอร์ชันใหม่ v2.1 และการแก้ไขแอปพลิเคชันเพื่อรองรับการเปลี่ยนแปลงที่ทำให้เกิดข้อขัดข้องซึ่งเปิดตัวใน v2.1

อัปเดตการเรียก API เพื่อใช้ปลายทาง v2.1

หากต้องการโทรไปยัง v2.1 ให้อัปเดตคำขอเพื่อใช้ปลายทาง v2.1 ใหม่

เช่น หากต้องการเรียกใช้เมธอด products.get ด้วย v2 คุณจะใช้รูปแบบคำสั่งดังนี้

GET https://shoppingcontent.googleapis.com/content/v2/merchantId/products/productId

สําหรับ v2.1 ให้อัปเดต URL เป็น

GET https://shoppingcontent.googleapis.com/content/v2.1/merchantId/products/productId

ดูข้อมูลทั้งหมดเกี่ยวกับบริการและปลายทางของ v2.1 ได้ที่เอกสารอ้างอิง API

ทำการเปลี่ยนแปลงที่จำเป็น

นอกจากการอัปเดต URL สําหรับการเรียก API แล้ว คุณยังต้องอัปเดตแอปพลิเคชันเพื่อรองรับการเปลี่ยนแปลงที่สําคัญหลายรายการที่เปิดตัวใน v2.1 ด้วย ตรวจสอบส่วนต่อไปนี้และอัปเดตแอปพลิเคชันตามต้องการ

1. อัปเดตการผสานรวมกับบริการ inventory

ระบบได้นำบริการ inventory เวอร์ชัน 2 ออกแล้ว และฟังก์ชันการทำงานที่เทียบเท่าจะพร้อมใช้งานในฟีเจอร์ v2.1 ต่อไปนี้

  • ใช้ฟีดเสริมหรือ products.update ใหม่สำหรับการอัปเดตผลิตภัณฑ์บางส่วน คุณสามารถอัปเดตช่องผลิตภัณฑ์ที่เปลี่ยนแปลงได้ทั้งหมด รวมถึงช่องทั้งหมดที่อัปเดตด้วย inventory.set ก่อนหน้านี้ (ยกเว้นช่องสำหรับ localinventory โดยเฉพาะ) ดูรายละเอียดเพิ่มเติมได้ที่ย้ายข้อมูลไปยังฟีดเสริม

  • ใช้บริการ localinventory ใหม่สำหรับการอัปเดตผลิตภัณฑ์ในร้าน

2. อัปเดตการโทรไปยังบริการ accounts

  • การเรียกใช้เมธอด accounts.update ใน v2.1 จะเขียนทับทรัพยากร accounts ทั้งหมดแทนที่จะอัปเดตเฉพาะช่องที่รวมอยู่ในคำขอ หากต้องการหลีกเลี่ยงการลบช่องในทรัพยากร accounts ให้อัปเดตคําขอการเรียกให้รวมช่องทั้งหมด

  • นำ reviewsUrl ออกแล้ว

  • ระบบนำสถานะการลิงก์ inactive ออกแล้วสำหรับ adsLinks, googleMyBusinessLink และ youtubeChannelLinks

3. อัปเดตการโทรไปยังบริการ products

  • แอตทริบิวต์ที่กำหนดเองจะไม่มีประเภทและหน่วยอีกต่อไป แต่ให้ใส่หน่วยต่อท้ายค่าและระบบจะตรวจหาประเภทโดยอัตโนมัติ

  • ฟิลด์ที่ซ้ำ productTypes เข้ามาแทนที่ทั้ง productType และ additionalProductTypes

  • ฟิลด์ที่ซ้ำ includedDestinations และ excludedDestinations ได้เข้ามาแทนที่ฟิลด์ที่ซ้ำ destinations

  • ฟิลด์ต่อไปนี้ซึ่งเกี่ยวข้องกับ AdWords ได้เปลี่ยนชื่อแล้ว

    • adwordsGrouping -> adsGrouping
    • adwordsLabels -> adsLabels
    • adwordsRedirect -> adsRedirect
  • ระบบได้นำฟิลด์ต่อไปนี้ออกแล้ว

    • aspects
    • destinations
    • onlineOnly
    • validatedDestinations
    • warnings
  • พารามิเตอร์ includeInvalidInsertedItems ถูกนําออกแล้ว ใน v2.1 ระบบจะแสดงผลิตภัณฑ์ทั้งหมดโดยค่าเริ่มต้น

  • ตอนนี้ระบบจะใช้เวลา 2-3 นาทีก่อนที่จะดึงข้อมูลผลิตภัณฑ์ที่แทรกผ่าน products.get หรือ products.list ได้

  • เราไม่รับประกันว่า offerId ที่แสดงผลจะเหมือนกับ offerId อินพุตอีกต่อไป v2.1 จะตัดช่องว่างขึ้นต้นและต่อท้ายใน offerId และผสานอักขระช่องว่างหลายตัวเข้าด้วยกัน การเปลี่ยนแปลงนี้ไม่มีผลกับค่า offerId ที่เป็นไปตามofferIdไวยากรณ์ที่แนะนำ

  • ตอนนี้ระบบจะตรวจสอบราคาก่อนแทรกผลิตภัณฑ์ สตริงค่ามีได้เฉพาะอักขระต่อไปนี้ +, -, . และตัวเลข (เช่น 0-9) ระบบจะไม่ยอมรับคอมมาอีกต่อไป

  • การตอบกลับจากการเรียกใช้ products.insert หรือ products.update จะมีเฉพาะแอตทริบิวต์ต่อไปนี้เท่านั้น

    • channel
    • contentLanguage
    • id
    • offerId
    • feedLabel
  • เลิกใช้งานตัวเลือก v2 includeAttributes แล้ว แต่ให้ใช้ products.get กับ ProductId เพื่อดูข้อมูลผลิตภัณฑ์ทั้งหมดแทน

4. อัปเดตการโทรไปยังบริการ productstatuses

  • ระบบได้นำแอตทริบิวต์ product ออกพร้อมกับพารามิเตอร์ includeAttributes หากต้องการเรียกข้อมูลแอตทริบิวต์ของผลิตภัณฑ์ที่สอดคล้องกับสถานะ ให้ใช้บริการ products และส่งค่าของช่อง productId ใหม่

  • พารามิเตอร์ includeInvalidInsertedItems ถูกนําออกแล้ว ตอนนี้ระบบจะแสดงผล productId ของผลิตภัณฑ์ทุกรายการ ไม่ว่าผลิตภัณฑ์จะถูกต้องหรือไม่ก็ตาม

  • ช่อง intention, approvalStatus และ approvalPending ใน destinationStatuses ได้รับการแทนที่ด้วย status ซึ่งเป็นสตริงที่อาจเป็น approved, disapproved หรือ pending

  • dataQualityIssues ได้ถูกแทนที่ด้วย itemLevelIssues แล้ว

5. อัปเดตการโทรไปยังบริการ datafeeds

  • ฟิลด์เป้าหมายต่อไปนี้ถูกแทนที่แล้ว

    • contentLanguage -> language
    • targetCountry -> country
    • intendedDestinations -> includedDestinations และ excludedDestinations
  • นําฟีดข้อมูลที่มี contentType = "product inventory update" ออกแล้ว

6. อัปเดตการเรียกใช้บริการ orders และ TestOrders

  • ใน v2.1 การเรียกใช้ไม่ควรรวมข้อมูลภาษีเนื่องจากระบบจะคํานวณข้อมูลภาษีโดยอัตโนมัติ หากคำสั่งซื้อได้รับการดำเนินการในรัฐที่มีกฎหมายความยุติธรรมในตลาด (Marketplace Fairness Act หรือ MFA) หรือกฎหมายที่คล้ายกัน การเรียกที่มีข้อมูลภาษีจะดำเนินการไม่สำเร็จ หากคำสั่งซื้อได้รับการดำเนินการในรัฐที่ไม่ใช่ MFA ระบบจะคำนวณภาษีตามการตั้งค่าที่กำหนดค่าไว้ใน Merchant Center หากไม่ได้กําหนดค่า ระบบจะคำนวณภาษีเป็น 0

  • ฟิลด์ InStoreRefundLineItem และ ReturnRefundLineItem amountPretax และ amountTax ได้รับการแทนที่ด้วย priceAmount และ taxAmount ตามลำดับ priceAmount อาจเป็นราคาก่อนหักภาษีหรือหลังหักภาษี ทั้งนี้ขึ้นอยู่กับสถานที่ตั้งของคำสั่งซื้อ

  • ย้ายช่อง ShipLineItem carrier, shipmentId และ trackingId ในคำขอไปที่ shipmentInfos แล้ว

  • ตอนนี้ billingAddress และ predefinedBillingAddress เป็นช่องระดับบนสุดใน orders และ TestOrder ตามลำดับ

  • customer.explicitMarketingPreference ได้ถูกแทนที่โดย customer.marketingRightsInfo

  • ช่อง netAmount แบ่งออกเป็น netPriceAmount และ netTaxAmount

  • shippingOption ได้ถูกแทนที่ด้วย lineItems[].shippingDetails แล้ว

  • ระบบนําช่อง CancelLineItem amount, amountPretax และ amountTax ในคําขอออกแล้ว ระบบจะคำนวณจำนวนเงินคืนให้โดยอัตโนมัติ

  • CustomBatch ถูกลบออกไปแล้ว

  • Refund ถูกลบออกไปแล้ว ใช้ refundOrder หรือ refundItem แทน

  • นําช่อง paymentMethod ออกแล้ว

  • ระบบจะแทนที่เมธอด v2orders.returnlineitem และ orders.refund ด้วย orderreturns.creatOrderReturn และ orderreturns.process

  • ระบบได้นำช่อง customer.email, channelType และ lineItem.product.channel ออกแล้ว

  • ระบบนําช่อง promotions ออกจากบริการ TestOrder และเปลี่ยนรูปแบบใน Order แล้ว

7. อัปเดตการโทรไปยังบริการ orderinvoice

  • ฟิลด์ amountPretax และ amountTax ถูกแทนที่ด้วย priceAmount และ taxAmount ตามลำดับ ฟิลด์ priceAmount อาจเป็นราคาก่อนหักภาษีหรือหลังหักภาษี ทั้งนี้ขึ้นอยู่กับสถานที่ตั้งของคำสั่งซื้อ

  • นำยอดคงเหลือ (ผู้ขาย ลูกค้า Google) ใน invoiceSummary และช่องที่เกี่ยวข้องกับการเรียกเก็บเงินโปรโมชันออก

8. นำฟังก์ชันการทำงานที่ไม่รวมอยู่ใน v2.1 ออก

นอกจากนี้ เรายังได้นําฟีเจอร์อื่นๆ อีกหลายรายการออกจาก Content API ในเวอร์ชัน 2.1 ตรวจสอบรายการต่อไปนี้และอัปเดตแอปพลิเคชันตามต้องการ

  • ระบบไม่รองรับ XML อีกต่อไป ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนไปใช้ JSON ได้ที่การหยุดรองรับ XML ใน Content API for Shopping

  • พารามิเตอร์ dryRun ถูกนําออกแล้ว การเปลี่ยนแปลงนี้จะมีผลกับการเรียก API ทั้งหมด

  • ระบบได้นำเมธอด HTTP BATCH ทั้งหมดออกแล้ว ให้ใช้ customBatch แทน

  • ระบบได้นำเมธอด patch ออกจากบริการต่อไปนี้แล้ว

    • accounts
    • accounttax
    • datafeeds
    • liasettings
    • shippingsettings
  • ระบบได้นำบริการ orderpayments ออกแล้ว

ทดสอบการย้ายข้อมูล

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

การเปลี่ยนแปลงเพิ่มเติมใน v2.1

นอกจากการเปลี่ยนแปลงที่ต้องอัปเดตแล้ว v2.1 ยังเปิดตัวฟีเจอร์ใหม่หลายรายการและการเปลี่ยนแปลงที่ไม่ก่อให้เกิดปัญหาต่อไปนี้

  • บริการใหม่

    • บริการ localinventory เวอร์ชันใหม่จะช่วยให้คุณอัปเดตผลิตภัณฑ์ในร้านได้ (แทนบริการ inventory ในเวอร์ชัน 2)

    • บริการ orderreturns ใหม่ช่วยให้จัดการ "ซื้อใน Google" (เดิมเรียกว่า Shopping Actions) ได้ง่ายขึ้นด้วยการให้คุณดำเนินการคืนสินค้าได้โดยไม่ต้องใช้บริการ orders

  • ฟีดเสริม ช่วยให้คุณอัปเดตผลิตภัณฑ์บางส่วนได้

  • การเปลี่ยนแปลงเพิ่มเติมในบริการ products

    • คำขอ products.insert จะไม่รายงานคำเตือนหรือข้อผิดพลาดที่ไม่ร้ายแรงอีกต่อไป ซึ่งจะช่วยให้คุณแทรกผลิตภัณฑ์และทำการอัปเดตในภายหลังเพื่อแก้ปัญหาผ่านกฎฟีดใน Merchant Center ได้เช่นเดียวกับฟีดที่จัดการนอก Content API

    • เราได้เพิ่ม products.update ให้คุณอัปเดตชุดช่องผลิตภัณฑ์ที่เลือก ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้งานที่เป็นไปได้ได้ในคู่มือ

    • ค่าที่ไม่ถูกต้องสำหรับแอตทริบิวต์ต่อไปนี้จะไม่ทริกเกอร์ข้อผิดพลาดในการแทรกอีกต่อไป และบริการ productstatus จะแสดงค่าดังกล่าวเป็นส่วนหนึ่งของ itemLevelIssues

      • ageGroup
      • availability
      • condition
      • energyEfficiencyClass
      • gender
      • maxEnergyEfficiencyClass
      • minEnergyEfficiencyClass
      • sizeSystem
      • sizeType
    • ตอนนี้แอตทริบิวต์ที่กำหนดเองเป็นแบบซ้ำซ้อน จึงไม่จำเป็นต้องใช้กลุ่มที่กำหนดเอง

    • ตอนนี้แอตทริบิวต์ที่กำหนดเองจะมีช่อง groupValues นอกเหนือจากช่อง value เดิม ต้องตั้งค่าฟิลด์อย่างใดอย่างหนึ่งเท่านั้น