الضريبة والشحن على مستوى الحساب

تتيح لك Content API تحديد الضريبة والشحن الذي سيتم تطبيقه على كل المنتجات في الحساب من خلال خدمات shippingsettings وaccounttax. إذا أردت استخدام بيانات أكثر دقة، يمكنك تحديد الضريبة والشحن على مستوى السلعة من خلال خدمة products.

للحصول على معلومات حول سياسات Google ومجموعة كاملة من خيارات تحديد الضريبة والشحن، راجع مقالات مركز المساعدة التالية:

ملاحظة: إنّ السمة tax، وبالتالي استخدام خدمة ضريبة الحساب، لا تنطبق إلا على المنتجات التي تستهدف الولايات المتحدة.

وتعكس خدمات Content API للضريبة والشحن في Content API وظائف واجهة مستخدم Merchant Center.

مثال بسيط

بالنسبة إلى رسوم الشحن التي تبلغ 8 يورو في فرنسا، واستنادًا إلى أسعار شركة النقل في الولايات المتحدة، حيث يستغرق تسليم كل خدمة شحن من 3 إلى 7 أيام:

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

لاسترداد أسماء شركات النقل وخدماتها المتاحة، يمكنك استخدام طريقة getsupportedcarriers.

مثال معقد

لإنشاء عرض ترويجي للشحن المجاني في الولايات حول نيويورك (بدون تحصيل رسوم الشحن)، يمكنك استخدام UPS لباقي الولايات المتحدة وتطبيق ضريبة مختلفة على كل ولاية من الولايات الأمريكية، يمكنك استخدام الطلبات إلى خدمتي accounttax وshippingsettings في Content API على النحو التالي. تهيئة إعدادات الشحن أولاً:

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

لاحظ أنه يمكن استخدام معرّفات المواقع الجغرافية لتمثيل المناطق الإدارية.

الخطوة التالية لإعداد الرسوم الضريبية:

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

ملاحظة: لا تتوفّر أسعار شركات النقل إلا في الولايات المتحدة وألمانيا وأستراليا. تتوفّر مجموعات المواقع الجغرافية حاليًا في الولايات المتحدة وأستراليا.

قواعد الشحن المعقدة: الجداول الثنائية الأبعاد والجداول الفرعية

لتحديد عرض ترويجي للشحن بقيمة 7 دولار أمريكي في الولايات المتحدة، حدد 3 دولارات أمريكية أو 5 دولارات أمريكية للطلبات التي تزن أكثر من 10 جنيهات في نيويورك، بناءً على سعر الطلب، ودون استخدام هذا الوزن مجانًا، استخدم ما يلي:

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

قواعد الشحن المعقّدة: تقسيم تصنيفات الحِزم على الخدمات

في إعدادات الشحن، يمكن أن تتضمن كل خدمة شحن 20 مجموعة أسعار شحن فقط كحدّ أقصى. بما أنّ مجموعات أسعار الشحن تُستخدَم للتمييز بين أسعار الشحن من خلال تصنيفات الحِزم، قد يشير ذلك إلى أنّه يمكن تطبيق 20 تعرفة شحن فريدة فقط من خلال تصنيفات الحزمة. ومع ذلك، يمكنك إنشاء ما يصل إلى 20 خدمة شحن في كل بلد. من خلال تقسيم الأسعار التي تتميّز بها تصنيفات الحِزم على خدمات متعددة للبلد نفسه، يمكنك تمييز ما يصل إلى 400 سعر شحن فريد عن طريق تصنيفات الحِزم.

ملاحظة: إذا كنت تقدّم خدمات متعدّدة، يتمّ التحقّق من كل منتج لبلد معيّن مقابل كل خدمات الشحن لذلك البلد لاحتساب أسعار الشحن المحتمَلة. وإذا عرضت خدمات متعددة أسعارًا مختلفة للمنتج نفسه، سيتم استخدام أقل سعر.

في المثال التالي، يتم تقسيم 40 تصنيف شحن باستخدام أسعار فريدة على خدمتين مختلفتين. ويخفي هذا المثال التفاصيل الأخرى لمورد الشحن، مثل الأسعار الفعلية، متضمنة علامات الحذف.

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

قد تحتاج أيضًا إلى تقسيم تصنيفات الحزمة بين مجموعات الأسعار حتى إذا كانت تصنيفات الحزمة تتشارك سعر الشحن نفسه، لأنّ كل مجموعة أسعار يمكن أن تتضمن 30 تصنيف شحن فقط ضمن الحقل applicableShippingLabels. لذلك، على سبيل المثال، إذا كانت كل تصنيفات الحزم تتشارك في نفس هيكل الأسعار، يمكن لـ shippingsettings التعامل مع ما يصل إلى 12,000 تصنيف شحن لبلد واحد: 30 تصنيف شحن لكل مجموعة أسعار و20 مجموعة أسعار لكل خدمة شحن و20 خدمة شحن لكل بلد.

للاطّلاع على المزيد من المعلومات، يمكنك الاطّلاع على الوثائق المرجعية لكل من accounttax وshippingsettings.