Podatek i dostawa na poziomie konta

Interfejs Content API umożliwia określenie podatku i kosztów dostawy dla wszystkich produktów na koncie za pomocą usług shippingsettings i accounttax. Jeśli chcesz sprecyzować wartość podatku i dostawy na poziomie produktu, możesz to zrobić w usłudze Produkty.

Informacje o zasadach Google i pełnym zakresie opcji określania podatku i dostawy znajdziesz w tych artykułach w Centrum pomocy:

Pamiętaj, że atrybut tax, a tym samym możliwość użycia usługi podatku od konta, dotyczy tylko produktów kierowanych na Stany Zjednoczone.

Usługi accounttax i shippingsettings w interfejsie Content API są zgodne z funkcjami interfejsu Merchant Center.

Prosty przykład

W przypadku opłat za dostawę w wysokości 8 EUR we Francji i na podstawie stawek przewoźnika w Stanach Zjednoczonych, gdzie dostawa w przypadku każdej usługi dostawy trwa od 3 do 7 dni:

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

Aby pobrać dostępne nazwy operatorów i usługi, użyj metody getsupportedcarriers.

Przykład ze złożonym opisem

Aby utworzyć promocję bezpłatnej dostawy w stanach wokół Nowego Jorku (bez pobierania opłat za dostawę), skorzystaj z UPS dla pozostałych stanów USA. Aby zastosować inny podatek w każdym z stanów USA, wyślij prośbę do usług accounttax (podatki) i shippingsettings (ustawienia dostawy) w Content API w następujący sposób. Najpierw skonfiguruj ustawienia dostawy:

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

Pamiętaj, że identyfikatory lokalizacji mogą być używane do określania obszarów administracyjnych.

Następnie skonfiguruj opłaty podatkowe:

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

Uwaga: stawki przewoźników są dostępne tylko w Australii, Niemczech i Stanach Zjednoczonych. Grupy lokalizacji są obecnie obsługiwane w Stanach Zjednoczonych i Australii.

Złożone reguły dostawy: dwuwymiarowe tabele i podtabele

Aby określić promocję na dostawę 7 USD w Stanach Zjednoczonych, 3 USD lub 5 USD w przypadku zamówień o wadze ponad 10 funtów w Nowym Jorku (w zależności od ceny zamówienia), oraz bezpłatnej poniżej tej wagi, użyj następującego ciągu:

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

Złożone zasady dostawy: dzielenie etykiet wysyłki od usług

W ustawieniach dostawy każda usługa dostawy może zawierać maksymalnie 20 grup stawek dostawy. Grupy stawek dostawy służą do rozróżniania kosztów dostawy za pomocą etykiet wysyłki, może to sugerować, że tylko 20 Można egzekwować unikalne stawki dostawy za pomocą etykiet wysyłki. Możesz jednak: możesz określić maksymalnie 20 usług dostawy na kraj. Dzieląc stawki mogą być wyróżnione na podstawie etykiet wysyłki w wielu usługach w tym samym kraju, możesz rozróżnić do 400 niepowtarzalnych stawek dostawy za pomocą etykiet wysyłki.

Uwaga: jeśli korzystasz z wielu usług, każda z nich produkt w danym kraju jest sprawdzany pod kątem wszystkich usług dostawy dla tego kraju kraju, aby obliczyć możliwe koszty dostawy. W przypadku powrotu kilku usług różne stawki za ten sam produkt, użyjemy najniższej stawki.

W przykładzie poniżej dzielimy 40 etykiet wysyłki z zastosowaniem niepowtarzalnych stawek na 2 z nich różnych usług. W tym przykładzie pozostałe szczegóły dostawy są ukryte takich jak rzeczywiste stawki, za elipsami.

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": [ ... ]
}

Podzielenie etykiet wysyłki na grupy stawek również może być wymagane nawet jeśli etykiety wysyłki mają taki sam koszt dostawy, grupa może mieć tylko 30 etykiet wysyłki w obrębie argumentu applicableShippingLabels. Oto ekstremalny przykład: Jeśli wszystkie etykiety wysyłki mają taką samą strukturę stawek, shippingsettings może obsłużyć do 12 000 etykiet wysyłki dla jednego kraju: 30 etykiet wysyłki na stawkę. grupa, 20 grup stawek na usługę dostawy oraz 20 usług dostawy na kraju.

Więcej informacji znajdziesz w dokumentacji referencyjnej dotyczącej podatków accounttax i shippingsettings.