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

تتيح لك Content API تحديد الضريبة والشحن التي سيتمّ تطبيقها على كل المنتجات ضمن حساب من خلال الخدمتَين shippingsettings وaccounttax. لمزيد من الدقة، يمكنك تحديد الضريبة والشحن على مستوى السلعة من خلال خدمة المنتجات.

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

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

تُظهر خدمتا accounttax وshippingsettings 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" معالجة ما يصل إلى 1,2000 تصنيف حِزم في بلد واحد، أي 30 تصنيف حزمة لكل مجموعة أسعار و20 مجموعة أسعار لكل خدمة شحن و20 خدمة شحن في كل بلد.

لمزيد من المعلومات، راجِع المستندات المرجعية للسمتَين accounttax وshippingsettings.