Podatek i dostawa na poziomie konta

Content API umożliwia określenie podatku i dostawy, które będą stosowane do wszystkich produktów na koncie za pomocą usług shippingsettings i accounttax. Jeśli chcesz uzyskać dokładniejsze informacje, możesz określić podatek i koszt dostawy na poziomie produktu za pomocą usługi products.

Informacje na temat zasad Google oraz wszystkich opcji określania podatków i dostawy znajdziesz w tych artykułach Centrum pomocy:

Pamiętaj, że atrybut tax, a co za tym idzie, korzystanie z usługi księgowej, dotyczy tylko produktów kierowanych na Stany Zjednoczone.

Funkcje interfejsu API podatku i dostawy w interfejsie Content API odzwierciedlają funkcje w interfejsie Merchant Center.

Prosty przykład

W przypadku opłat za dostawę w wysokości 8 euro we Francji oraz według stawek przewoźnika w Stanach Zjednoczonych, gdzie każda usługa dostawy może potrwać 3–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 i usługi operatorów, użyj metody getsupportedcarriers.

Złożony przykład

Aby utworzyć promocję dotyczącą bezpłatnej dostawy w stanach Nowego Jorku (nie naliczając opłat za dostawę), użyj UPS dla reszty Stanów Zjednoczonych oraz ustaw różne podatki dla każdego stanu w Stanach Zjednoczonych. W tym celu użyj żądań przesłanych do usług accounttax i shippingsettings w Content API. 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ą służyć do reprezentowania 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 oraz Stanach Zjednoczonych. Grupy lokalizacji są obecnie obsługiwane w Stanach Zjednoczonych i Australii.

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

Aby zdefiniować promocję dla dostawy w wysokości 7 PLN w Stanach Zjednoczonych, 3 PLN lub 5 PLN w przypadku zamówień o wadze ponad 30 PLN (w zależności od ceny zamówienia) i bezpłatnych produktów poniżej tej wagi, użyj następującego atrybutu:

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 reguły dostawy: dzielenie etykiet wysyłki przez usługi

W ustawieniach dostawy każda usługa dostawy może zawierać maksymalnie 20 grup kosztów dostawy. Grupy kosztów dostawy są używane do rozróżniania kosztów dostawy na podstawie etykiet wysyłki, dlatego może się wydawać, że tylko 20 unikalnych stawek dostawy może być stosowanych za pomocą etykiet wysyłki. Możesz jednak korzystać z maksymalnie 20 usług dostawy na kraj. Dzieląc stawki różniące się etykietami wysyłki w przypadku kilku usług w tym samym kraju, możesz określić do 400 unikalnych stawek dostawy za pomocą etykiet wysyłki.

Uwaga: jeśli masz wiele usług, każdy produkt w danym kraju jest porównywany ze wszystkimi usługami dostawy dla danego kraju, aby obliczyć możliwe stawki dostawy. Jeśli wiele usług zwróci różne ceny tego samego produktu, zostanie użyta najniższa.

Poniższy przykład dzieli 40 etykiet wysyłki za pomocą unikalnych stawek w 2 różnych usługach. W tym przykładzie ukrywa się inne szczegóły zasobu dostawy, takie jak rzeczywiste stawki za wielokropkiem.

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

Ten podział etykiet wysyłki między grupy stawek może być też potrzebny, nawet jeśli etykiety wysyłki mają taką samą stawkę dostawy, ponieważ każda grupa stawek może mieć maksymalnie 30 etykiet w polu applicableShippingLabels. W skrajnym przypadku, jeśli wszystkie etykiety wysyłki mają taką samą strukturę kosztów, shippingsettings może obsłużyć do 12 tys. etykiet wysyłki dla 1 kraju: 30 etykiet wysyłki na grupę, 20 grup kosztów na usługę dostawy i 20 usług dostawy na kraj.

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