Ringkasan Merchant Products API

Halaman ini menjelaskan cara mengupload dan mengelola produk secara terprogram. Dengan menggunakan Merchant Products API, Anda dapat menyisipkan atau memperbarui produk di sumber data, mengambil produk dari akun, dan menghapus produk dari sumber data.

Merchant Products API berisi dua resource.

  • productInputs mewakili bagian input produk Anda.
  • products mewakili produk yang diproses yang dibuat dari bagian input Anda.

productInputs dapat berupa utama dan tambahan, bergantung pada apakah data tersebut diupload ke sumber data utama atau sumber data tambahan. Setiap product akan dibuat dari satu productInput utama dan sejumlah productInputs tambahan.

Anda dapat menggunakan Merchant Products API untuk membuat katalog toko lokal atau online, yaitu produk yang dapat muncul di beberapa tujuan belanja. Anda dapat menggunakan resource productInputs setelah membuat akun Merchant Center, menyiapkan sumber data pertama, dan siap mengupload kumpulan produk awal melalui API.

Meskipun penjual memiliki kemampuan untuk mengupload produk menggunakan file yang disebut PrimaryProductDataSource, ada beberapa keuntungan dalam membuat dan menghapus produk menggunakan Merchant API. Keuntungan ini mencakup waktu respons yang lebih cepat dan kemampuan untuk mengupdate produk secara real time, tanpa perlu mengelola file besar. Perlu waktu hingga beberapa jam agar perubahan produk yang dilakukan oleh panggilan API ditampilkan di database Shopping.

Prasyarat

Jika Anda tidak memiliki sumber data, buat sumber data menggunakan Merchant DataSources API atau Merchant Center.

Jika sudah memiliki sumber data yang dibuat menggunakan UI Merchant Center atau menggunakan API, Anda dapat menggunakan Merchant Products API untuk menambahkan produk. Jika Anda menggunakan Content API for Shopping untuk menambahkan produk, lihat panduan migrasi untuk memahami cara memulai dengan Merchant Products API.

Anda bertanggung jawab untuk mematuhi kebijakan Iklan Shopping dan listingan gratis. Iklan Shopping berhak menerapkan kebijakan ini dan merespons dengan tepat jika kami menemukan konten atau perilaku yang melanggar kebijakan ini.

Resource

Resource products memungkinkan Anda mengambil informasi produk dari database Shopping.

Resource productInput mewakili data input yang Anda kirimkan untuk produk. API ini juga menyediakan metode yang memungkinkan Anda memperbarui, atau menghapus informasi produk satu per satu, atau banyak sekaligus dalam mode batch. Resource productInput harus memiliki kolom berikut:

  • channel: Saluran produk.
  • offerId: ID unik untuk produk.
  • contentLanguage: Kode bahasa ISO 639-1 dua huruf untuk produk.
  • feedLabel: Label feed untuk produk.

Mengupload input produk ke akun Anda

Untuk mengupload input produk ke akun Anda, gunakan metode accounts.productInputs.insert. Anda harus meneruskan ID unik sumber data utama atau tambahan.

Contoh permintaan berikut menunjukkan cara menggunakan metode accounts.productInputs.insert untuk mengupload input produk ke akun penjual Anda. Permintaan menetapkan harga dan wilayah pengiriman, serta atribut kustom seperti tanggal pembuatan dan ukuran.

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"
    }
  ]
}

Ganti kode berikut:

  • {ACCOUNT_ID}: ID unik akun Merchant Center Anda.
  • {DATASOURCE}: ID unik sumber data. Formatnya harus accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID}.
  • {PRODUCT_TITLE}: Nama produk.
  • {VERSION_NUMBER}: Nomor versi produk. Opsional.
  • {CONTENT_LANGUAGE}: Kode bahasa ISO 639-1 dua huruf untuk produk. Wajib.
  • {FEED_LABEL}: Kode wilayah CLDR untuk wilayah tempat Anda ingin menjual produk. Jika nilai yang diberikan untuk feedLabel tidak valid, kolom targetCountry tidak akan diisi.
  • {OFFER_ID}: ID unik produk. Wajib.
  • {IMAGE_LINK}: Link ke gambar produk di situs Anda. Opsional.
  • {PRODUCT_LINK}: Link ke produk di situs Anda. Opsional.
  • {CURRENCY_CODE}: Mata uang harga menggunakan akronim tiga huruf sesuai dengan ISO 4217. Opsional.
  • {PRICE}: Harga produk yang direpresentasikan sebagai angka dalam mikro. Opsional.
  • {SHIPPING_COST}: Harga pengiriman tetap yang direpresentasikan sebagai angka. Opsional.
  • {SHIPPING_POSTALCODE}: Rentang kode pos tempat tarif pengiriman berlaku. Opsional.
  • {MAX_HANDLING_TIME}: Waktu pemrosesan maksimum dalam hari kerja antara saat pesanan diterima dan saat dikirim. Opsional.
  • {MIN_HANDLING_TIME}: Waktu pemrosesan minimum dalam hari kerja antara saat pesanan diterima dan saat dikirim. Nilai 0 berarti pesanan dikirim pada hari yang sama dengan hari penerimaan. Opsional.
  • {MAX_TRANSIT_TIME}: Waktu transit maksimum dalam hari kerja antara saat pesanan dikirim dan saat pesanan diterima. Opsional.
  • {MIN_TRANSIT_TIME}: Waktu transit minimum dalam hari kerja antara saat pesanan dikirim dan saat pesanan dikirimkan. Nilai 0 berarti pesanan dikirim pada hari yang sama dengan hari pengiriman. Opsional.

Jika permintaan berhasil berjalan, Anda akan melihat respons berikut:

{
  "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"
    }
  ]
}

Mengambil produk yang telah diproses dari akun Anda

Untuk mengambil produk yang diproses dari akun Anda, gunakan metode accounts.products.get. Diperlukan waktu beberapa menit agar produk yang diproses muncul setelah penyisipan.

Anda bisa mendapatkan nama resource produk yang diproses dari kolom product dalam respons accounts.productInputs.insert

Menghapus input produk dari akun Anda

Untuk menghapus input produk dari akun Anda, gunakan metode accounts.productInputs.delete. Anda harus meneruskan ID unik sumber data utama atau tambahan tempat produk tersebut berada untuk menghapus produk menggunakan Merchant Products API.

Mencantumkan produk dari akun Anda

Untuk mencantumkan produk yang diproses di akun Anda, gunakan metode accounts.products.list.