Pajak dan pengiriman tingkat akun

Content API memungkinkan Anda menentukan pajak dan pengiriman yang akan berlaku untuk semua produk dalam akun melalui layanan setelan pengiriman dan pajak akun. Jika ingin lebih akurat, Anda dapat menentukan pajak dan pengiriman pada tingkat item melalui layanan products.

Untuk mendapatkan informasi tentang kebijakan Google dan berbagai opsi lengkap untuk menentukan pajak dan pengiriman, lihat artikel Pusat Bantuan berikut:

Perlu diperhatikan bahwa atribut tax, dan oleh karena itu, penggunaan layanan pajak akun, hanya berlaku untuk produk yang menargetkan AS.

Layanan Content API terkait pajak akun dan setelan pengiriman mencerminkan fungsi UI Merchant Center.

Contoh sederhana

Untuk biaya pengiriman 8 euro di Prancis, dan berdasarkan tarif ekspedisi di AS, setiap layanan pengiriman memerlukan waktu 3-7 hari untuk dikirimkan:

PUT /content/v2.1/<merchant_id>/shippingsettings/<account_id>
{
  "accountId": <account_id>,
  "services": [
    {
      "name": "Livraison Prioritaire",
      "deliveryCountry": "FR",
      "currency": "EUR",
      "rateGroups": [
        {
          "singleValue": {
            "flatRate": { "currency": "EUR", "value": "8" }
          }
        }
      ],
      "active": true,
      "deliveryTime": { "minTransitTimeInDays": 3, "maxTransitTimeInDays": 7 }
    },
    {
      "name": "UPS in US",
      "deliveryCountry": "US",
      "currency": "USD"
      "rateGroups": [
        {
          "singleValue": { "carrierRateName": "ups" },
          "carrierRates": [
            {
              "name": "ups",
              "carrierName": "UPS",
              "carrierService": "Ground",
              "originPostalCode": "10011"
            }
          ]
        }
      ],
      "active": true,
      "deliveryTime": { "minTransitTimeInDays": 3, "maxTransitTimeInDays": 7 },
    }
  ]
}

Untuk mengambil nama dan layanan ekspedisi yang tersedia, gunakan metode getsupportedcarriers.

Contoh kompleks

Untuk membuat promosi pengiriman gratis di negara bagian di sekitar New York (dengan tidak mengenakan biaya pengiriman), gunakan UPS untuk wilayah AS lainnya, dan untuk menerapkan pajak yang berbeda untuk setiap negara bagian AS, gunakan permintaan ke layanan pajak akun dan setelan pengiriman Content API sebagai berikut. Pertama, konfigurasikan setelan pengiriman:

PUT /content/v2.1/<merchant_id>/shippingsettings/<account_id>
{
  "accountId": <account_id>,
  "services": [
    {
      "name": "Eligible for free shipping",
      "deliveryCountry": "US",
      "rateGroups": [
        {
          "mainTable": {
            "rowHeaders": {
              "locations": [
                { "locationIds": ["21167"] }, // NY
                { "locationIds": ["21164", "21139"] }  // NJ, CT
              ]
            },
            "rows": [
              {
                "cells": [
                  {
                    "flatRate": { "currency": "USD", "value": "0" }
                  }
                ]
              },
              {
                "cells": [
                  {
                    "flatRate": { "currency": "USD", "value": "0" }
                  }
                ]
              }
            ]
          }
        }
      ],
      "active": true,
      "deliveryTime": { "minTransitTimeInDays": 3, "maxTransitTimeInDays": 7 },
      "currency": "USD"
    },
    {
      "name": "UPS in US",
      "deliveryCountry": "US",
      "rateGroups": [
        {
          "singleValue": { "carrierRateName": "UPS mainland" },
          "carrierRates": [
            {
              "name": "UPS mainland",
              "carrierName": "UPS",
              "carrierService": "Ground",
              "originPostalCode": "10011",  // currently only US, AU, and DE postal codes
              "percentageAdjustment": "1.05",
              "flatAdjustment": { "currency": "USD", "value": "0.75" }
            }
          ]
        }
      ],
      "active": true,
      "deliveryTime": { "minTransitTimeInDays": 3, "maxTransitTimeInDays": 7 },
      "currency": "USD"
    }
   ],
  "postalCodeGroups": [
    {
      "name": "More cities",  // An alternative using postal codes
      "country": "US",
      "postalCodeRanges": [
        { "postalCodeRangeBegin": "94041" },
        { "postalCodeRangeBegin": "94042" },
        { "postalCodeRangeBegin": "94043", "postalCodeRangeEnd": "94045" },
        { "postalCodeRangeBegin": "9405*" },
        { "postalCodeRangeBegin": "9406*", "postalCodeRangeEnd": "9408*" }
      ]
    }
  ]
}

Perhatikan bahwa ID lokasi dapat digunakan untuk mewakili wilayah administratif.

Selanjutnya, konfigurasi biaya pajak:

PUT /content/v2.1/<merchant_id>/accounttax/<account_id>
{
  "accountId": <account_id>,
  "rules": [
    {
      "country": "US",  // currently only US is supported, may be omitted
      "locationId": 21167,
      "useGlobalRate": true,
      "shippingTaxed": false
    },
    {
      "locationId": 21137,
      "useGlobalRate": false,
      "shippingTaxed": true,
      "ratePercent": "2.15"
    }
    // ...
  ]
}

Catatan: tarif ekspedisi hanya tersedia di AS, Jerman, dan Australia. Grup lokasi saat ini didukung di Amerika Serikat dan Australia.

Aturan pengiriman yang kompleks: tabel dan subtabel dua dimensi

Untuk menentukan promosi pengiriman sebesar $7 di AS, $3 atau $5 untuk pesanan dengan berat lebih dari 10 pound di NYC, bergantung pada harga pesanan, dan gratis di bawah berat tersebut, gunakan hal berikut:

PUT /content/v2.1/<merchant_id>/shippingsettings/<account_id>
{
  "accountId": <account_id>,
  "services": [
    {
      "name": "Custom shipping rules",
      "deliveryCountry": "US",
      "rateGroups": [
        {
          "mainTable": {
            "rowHeaders": {
              "postalCodeGroupNames": [ "NYC", "all other locations" ]
            },
            "columnHeaders": {
              "weights": [
                { "unit": "lb", "value": "10" },
                { "unit": "lb", "value": "infinity" }
              ]
            },
            "rows": [
              {
                "cells": [
                  { "flatRate": { "value": "0", "currency": "USD" } },
                  { "subtableName": "NYC large packages" }
                ]
              },
              {
                "cells": [
                  { "flatRate": { "value": "7", "currency": "USD" } },
                  { "flatRate": { "value": "7", "currency": "USD" } }
                ]
              }
            ]
          },
          "subtables": [
            {
              "name": "NYC large packages",
              "rowHeaders": {
                "prices": [
                  {"value": "100", "currency": "USD"},
                  {"value": "infinity", "currency": "USD"}]
              },
              "rows": [
                {
                  "cells": [
                    { "flatRate": { "value": "3", "currency": "USD" } }
                  ]
                },
                {
                  "cells": [
                    { "flatRate": { "value": "5", "currency": "USD" } }
                  ]
                }
              ]
            }
          ]
        }
      ],
      "active": true,
      "currency": "USD",
      "deliveryTime": { "minTransitTimeInDays": 3, "maxTransitTimeInDays": 7 }
    }
  ],
  "postalCodeGroups": [
    {
      "name": "NYC",  // Approximation of NYC using postal codes
      "country": "US",
      "postalCodeRanges": [
        { "postalCodeRangeBegin": "10000", postalCodeRangeEnd: "11999" }
      ]
    }
  ]
}

Aturan pengiriman yang kompleks: memisahkan label pengiriman pada layanan

Dalam setelan pengiriman, setiap layanan pengiriman hanya dapat berisi maksimum 20 grup tarif pengiriman. Karena grup tarif pengiriman digunakan untuk membedakan tarif pengiriman melalui label paket, tampaknya hanya 20 tarif pengiriman unik yang dapat diterapkan melalui label paket. Namun, Anda dapat memiliki maksimal 20 layanan pengiriman per negara. Dengan memisahkan tarif yang dibedakan menurut label paket pada beberapa layanan untuk negara yang sama, Anda dapat membedakan hingga 400 tarif pengiriman unik melalui label paket.

Catatan: Jika Anda memiliki beberapa layanan, maka setiap produk untuk negara tertentu akan dibandingkan dengan semua layanan pengiriman untuk negara tersebut guna menghitung kemungkinan tarif pengiriman. Jika beberapa layanan menampilkan tarif berbeda untuk produk yang sama, yang akan digunakan adalah tarif terendah.

Contoh di bawah ini membagi 40 label paket menggunakan tarif unik di dua layanan yang berbeda. Contoh ini menyembunyikan detail lain dari resource pengiriman, seperti tarif sebenarnya, di balik elipsis.

PUT /content/v2.1/<merchant_id>/shippingsettings/<account_id>
{
  "accountId": <account_id>,
  "services": [
    {
      "name": "labels_0_19",
      "deliveryCountry": "US",
      "active": true,
      "currency": "USD",
      "deliveryTime": { "minTransitTimeInDays": 3, "maxTransitTimeInDays": 7 }
      "rateGroups": [
        { "applicableShippingLabels": ["shipping_label_0"], ... }
        { "applicableShippingLabels": ["shipping_label_1"], ... }
        { "applicableShippingLabels": ["shipping_label_2"], ... }
        { "applicableShippingLabels": ["shipping_label_3"], ... }
        { "applicableShippingLabels": ["shipping_label_4"], ... }
        { "applicableShippingLabels": ["shipping_label_5"], ... }
        { "applicableShippingLabels": ["shipping_label_6"], ... }
        { "applicableShippingLabels": ["shipping_label_7"], ... }
        { "applicableShippingLabels": ["shipping_label_8"], ... }
        { "applicableShippingLabels": ["shipping_label_9"], ... }
        { "applicableShippingLabels": ["shipping_label_10"], ... }
        { "applicableShippingLabels": ["shipping_label_11"], ... }
        { "applicableShippingLabels": ["shipping_label_12"], ... }
        { "applicableShippingLabels": ["shipping_label_13"], ... }
        { "applicableShippingLabels": ["shipping_label_14"], ... }
        { "applicableShippingLabels": ["shipping_label_15"], ... }
        { "applicableShippingLabels": ["shipping_label_16"], ... }
        { "applicableShippingLabels": ["shipping_label_17"], ... }
        { "applicableShippingLabels": ["shipping_label_18"], ... }
        { "applicableShippingLabels": ["shipping_label_19"], ... }
      ]
    },
    {
      "name": "labels_20_39",
      "deliveryCountry": "US",
      "active": true,
      "currency": "USD",
      "deliveryTime": { "minTransitTimeInDays": 3, "maxTransitTimeInDays": 7 }
      "rateGroups": [
        { "applicableShippingLabels": ["shipping_label_20"], ... }
        { "applicableShippingLabels": ["shipping_label_21"], ... }
        { "applicableShippingLabels": ["shipping_label_22"], ... }
        { "applicableShippingLabels": ["shipping_label_23"], ... }
        { "applicableShippingLabels": ["shipping_label_24"], ... }
        { "applicableShippingLabels": ["shipping_label_25"], ... }
        { "applicableShippingLabels": ["shipping_label_26"], ... }
        { "applicableShippingLabels": ["shipping_label_27"], ... }
        { "applicableShippingLabels": ["shipping_label_28"], ... }
        { "applicableShippingLabels": ["shipping_label_29"], ... }
        { "applicableShippingLabels": ["shipping_label_30"], ... }
        { "applicableShippingLabels": ["shipping_label_31"], ... }
        { "applicableShippingLabels": ["shipping_label_32"], ... }
        { "applicableShippingLabels": ["shipping_label_33"], ... }
        { "applicableShippingLabels": ["shipping_label_34"], ... }
        { "applicableShippingLabels": ["shipping_label_35"], ... }
        { "applicableShippingLabels": ["shipping_label_36"], ... }
        { "applicableShippingLabels": ["shipping_label_37"], ... }
        { "applicableShippingLabels": ["shipping_label_38"], ... }
        { "applicableShippingLabels": ["shipping_label_39"], ... }
      ]
    }
  ],
  "postalCodeGroups": [ ... ]
}

Pemisahan label paket di seluruh grup tarif ini mungkin juga diperlukan meskipun label paket memiliki tarif pengiriman yang sama, karena setiap grup tarif hanya dapat memiliki 30 label paket dalam kolom applicableShippingLabels. Jadi sebagai contoh ekstrem, jika semua label paket memiliki struktur tarif yang sama, shippingsettings dapat menangani hingga 12.000 label paket untuk satu negara: 30 label paket per grup tarif, 20 grup tarif per layanan pengiriman, dan 20 layanan pengiriman per negara.

Untuk informasi selengkapnya, lihat dokumentasi referensi untuk pajak akun dan setelan pengiriman.