ภาพรวมของ Merchant Products API

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

Merchant Products API มีทรัพยากร 2 รายการ

  • productInputs represent the input parts of your products.
  • products represent the processed products that was constructed from your input parts.

productInputs อาจเป็นข้อมูลหลักและข้อมูลเสริม โดยขึ้นอยู่กับว่ามีการอัปโหลดไปยังแหล่งข้อมูลหลักหรือแหล่งข้อมูลเสริม product แต่ละรายการจะสร้างขึ้นจาก productInput หลักรายการเดียวและ productInputs เสริมจำนวนเท่าใดก็ได้

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

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

ข้อกำหนดเบื้องต้น

หากไม่มีแหล่งข้อมูล ให้สร้างแหล่งข้อมูลโดยใช้ Merchant DataSources API หรือ Merchant Center

หากมีแหล่งข้อมูลที่สร้างขึ้นโดยใช้ UI ของ Merchant Center หรือ API อยู่แล้ว คุณจะใช้ Merchant Products API เพื่อเพิ่มผลิตภัณฑ์ได้ หากคุณใช้ Content API for Shopping เพื่อเพิ่มผลิตภัณฑ์ โปรดดูคู่มือการย้ายข้อมูลเพื่อทําความเข้าใจวิธีเริ่มต้นใช้งาน Merchant Products API

คุณต้องรับผิดชอบในการปฏิบัติตามนโยบายโฆษณา Shopping และข้อมูลที่แสดงฟรี โฆษณา Shopping สงวนสิทธิ์ในการบังคับใช้นโยบายเหล่านี้และดำเนินการตามความเหมาะสมหากพบเนื้อหาหรือพฤติกรรมที่ละเมิดนโยบายเหล่านี้

แหล่งข้อมูล

ทรัพยากร products ช่วยให้คุณเรียกข้อมูลผลิตภัณฑ์จากฐานข้อมูล Shopping ได้

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

  • channel: ช่องทางของผลิตภัณฑ์
  • offerId: ตัวระบุที่ไม่ซ้ำกันสำหรับผลิตภัณฑ์
  • contentLanguage: รหัสภาษาแบบ 2 ตัวอักษรตามมาตรฐาน ISO 639-1 ของผลิตภัณฑ์
  • feedLabel: ป้ายกำกับฟีดของผลิตภัณฑ์

อัปโหลดอินพุตผลิตภัณฑ์ลงในบัญชี

หากต้องการอัปโหลดอินพุตผลิตภัณฑ์ลงในบัญชี ให้ใช้วิธี accounts.productInputs.insert คุณต้องส่งตัวระบุที่ไม่ซ้ำกันของแหล่งข้อมูลหลักหรือแหล่งข้อมูลเสริม

คําขอตัวอย่างต่อไปนี้แสดงวิธีใช้accounts.productInputs.insertเมธอดเพื่ออัปโหลดอินพุตผลิตภัณฑ์ไปยังบัญชีผู้ขาย คำขอจะกำหนดราคาและภูมิภาคการจัดส่ง รวมถึงแอตทริบิวต์ที่กำหนดเอง เช่น วันที่ผลิตและขนาด

POST https://merchantapi.googleapis.com/products/v1beta/accounts/{ACCOUNT_ID}/productInputs:insert?dataSource={DATASOURCE}

{
  "name": "{PRODUCT_TITLE}",
  "versionNumber": {VERSION_NUMBER},
  "contentLanguage": "{CONTENT_LANGUAGE}",
  "feedLabel": "{FEED_LABEL}",
  "offerId": "{OFFER_ID}",
  "channel": "ONLINE",
  "attributes": {
    "availability": "in stock",
    "imageLink": "{IMAGE_LINK}",
    "link": "{PRODUCT_LINK}",
    "brand": "{BRAND_NAME}",
    "price": {
      "currencyCode": "{CURRENCY_CODE}",
      "amountMicros": {PRICE}
    },
    "color": "red",
    "productWeight": {
      "value": 320,
      "unit": "g"
    },
    "adult": false,
    "shipping": [
      {
        "country": "GB",
        "price": {
          "amountMicros": {SHIPPING_COST},
          "currencyCode": "{CURRENCY_CODE_SHIPPING}"
        },
        "postalCode": "{SHIPPING_POSTALCODE}",
        "service": "",
        "region": "{SHIPPING_REGION}",
        "maxHandlingTime": "{MAX_HANDLING_TIME}",
        "minHandlingTime": "{MIN_HANDLING_TIME}",
        "maxTransitTime": "{MAX_TRANSIT_TIME}",
        "minTransitTime": "{MIN_TRANSIT_TIME}"
      }
    ],
    "gender": "Female"
  },
  "customAttributes": [
    {
      "name": "size",
      "value": "Large"
    },
    {
      "name": "Date of Manufacturing",
      "value": "2024-05-05"
    }
  ]
}

แทนที่ค่าต่อไปนี้

  • {ACCOUNT_ID}: ตัวระบุที่ไม่ซ้ำของบัญชี Merchant Center
  • {DATASOURCE}: ตัวระบุที่ไม่ซ้ำกันของแหล่งข้อมูล โดยควรอยู่ในรูปแบบ accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID}
  • {PRODUCT_TITLE}: ชื่อผลิตภัณฑ์
  • {VERSION_NUMBER}: หมายเลขเวอร์ชันของผลิตภัณฑ์ ไม่บังคับ
  • {CONTENT_LANGUAGE}: รหัสภาษา ISO 639-1 แบบ 2 ตัวอักษรของผลิตภัณฑ์ ต้องระบุ
  • {FEED_LABEL}: รหัสเขตแดน CLDR สำหรับภูมิภาคที่คุณต้องการขายผลิตภัณฑ์ หากค่าที่ระบุสำหรับ feedLabel ไม่ถูกต้อง ระบบจะไม่ป้อนข้อมูลในฟิลด์ targetCountry
  • {OFFER_ID}: ตัวระบุที่ไม่ซ้ำกันของผลิตภัณฑ์ ต้องระบุ
  • {IMAGE_LINK}: ลิงก์ไปยังรูปภาพของผลิตภัณฑ์ในเว็บไซต์ ไม่บังคับ
  • {PRODUCT_LINK}: ลิงก์ไปยังผลิตภัณฑ์ในเว็บไซต์ ไม่บังคับ
  • {CURRENCY_CODE}: สกุลเงินของราคาโดยใช้คำย่อ 3 ตัวตาม ISO 4217 ไม่บังคับ
  • {PRICE}: ราคาของผลิตภัณฑ์ที่แสดงเป็นตัวเลขในหน่วยไมโคร ไม่บังคับ
  • {SHIPPING_COST}: ราคาจัดส่งแบบคงที่ซึ่งแสดงเป็นตัวเลข ไม่บังคับ
  • {SHIPPING_POSTALCODE}: ช่วงรหัสไปรษณีย์ที่มีอัตราค่าจัดส่ง ไม่บังคับ
  • {MAX_HANDLING_TIME}: วันทำการสูงสุดก่อนจัดส่งนับจากวันที่ได้รับคำสั่งซื้อจนถึงวันที่จัดส่ง ไม่บังคับ
  • {MIN_HANDLING_TIME}: วันทำการขั้นต่ำก่อนจัดส่งนับจากวันที่ได้รับคำสั่งซื้อจนถึงวันที่จัดส่ง ค่า 0 หมายความว่ามีการนำส่งคำสั่งซื้อในวันเดียวกันกับที่ได้รับคำสั่งซื้อ ไม่บังคับ
  • {MAX_TRANSIT_TIME}: เวลาขนส่งสูงสุดเป็นจำนวนวันทำการตั้งแต่เวลาที่จัดส่งคำสั่งซื้อจนถึงเวลาที่นำส่ง ไม่บังคับ
  • {MIN_TRANSIT_TIME}: เวลาขนส่งขั้นต่ำเป็นจำนวนวันทำการระหว่างเวลาที่จัดส่งคำสั่งซื้อจนถึงเวลาที่นำส่ง ค่า 0 หมายความว่าคำสั่งซื้อได้รับการนำส่งในวันเดียวกับที่จัดส่ง ไม่บังคับ

เมื่อคําขอทํางานสําเร็จ คุณจะเห็นการตอบกลับต่อไปนี้

{
  "name": "{PRODUCT_NAME}",
  "product": "{PRODUCT_ID}",
  "channel": "ONLINE",
  "offerId": "{OFFER_ID}",
  "contentLanguage": "{CONTENT_LANGUAGE}",
  "feedLabel": "{FEED_LABEL}",
  "versionNumber": "{VERSION_NUMBER}",
  "attributes": {
    "link": "{PRODUCT_LINK}",
    "imageLink": "{IMAGE_LINK}",
    "adult": false,
    "availability": "in stock",
    "brand": "{BRAND_NAME}",
    "color": "red",
    "gender": "Female",
    "price": {
      "amountMicros": "{PRICE}",
      "currencyCode": "{CURRENCY_CODE}"
    },
    "shipping": [
      {
        "price": {
          "amountMicros": "{SHIPPING_COST}",
          "currencyCode": "{CURRENCY_CODE}"
        },
        "country": "{SHIPPING_COUNTRY}",
        "region": "{SHIPPING_REGION}",
        "postalCode": "{SHIPPING_POSTALCODE}",
        "minHandlingTime": "{MIN_HANDLING_TIME}",
        "maxHandlingTime": "{MAX_HANDLING_TIME}",
        "minTransitTime": "{MIN_TRANSIT_TIME}",
        "maxTransitTime": "{MAX_TRANSIT_TIME}"
      }
    ],
    "productWeight": {
      "value": 320,
      "unit": "g"
    }
  },
  "customAttributes": [
    {
      "name": "Size",
      "value": "Large"
    },
    {
      "name": "Date of Manufacturing",
      "value": "2024-05-05"
    }
  ]
}

เรียกข้อมูลผลิตภัณฑ์ที่ประมวลผลแล้วจากบัญชี

หากต้องการเรียกข้อมูลผลิตภัณฑ์ที่ประมวลผลแล้วจากบัญชี ให้ใช้วิธี accounts.products.get ระบบอาจใช้เวลาหลายนาทีเพื่อให้ผลิตภัณฑ์ที่ประมวลผลแล้วปรากฏขึ้นหลังจากการแทรก

คุณดูชื่อทรัพยากรของผลิตภัณฑ์ที่ประมวลผลแล้วได้จากช่อง product ในการตอบกลับของ accounts.productInputs.insert

ลบข้อมูลผลิตภัณฑ์ออกจากบัญชี

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

แสดงผลิตภัณฑ์จากบัญชี

หากต้องการแสดงผลิตภัณฑ์ที่ประมวลผลแล้วในบัญชี ให้ใช้accounts.products.listวิธีนี้