מס ומשלוח ברמת החשבון

ה-Content API מאפשר לציין את המיסים והמשלוח שיחולו על כל המוצרים בחשבון באמצעות שירותי shippingsettings ו-accounttax. אם רוצים לשפר את הדיוק, אפשר לציין את שיעור המס והמשלוח ברמת הפריט באמצעות השירות מוצרים.

למידע נוסף על המדיניות של 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"
    }
    // ...
  ]
}

הערה: התעריפים של חברות תובלה זמינים רק בארה"ב, בגרמניה ובאוסטרליה. בשלב זה, קבוצות מיקומים נתמכות בארה"ב ובאוסטרליה.

כללי משלוח מורכבים: טבלאות דו-מימדיות וטבלאות משנה

כדי להגדיר קידום מכירות של 28 ש"ח בארה"ב, 12 ש"ח או 20 ש"ח להזמנות במשקל של עד 40 ק"ג בתל אביב, בהתאם למחיר ההזמנה, ובחינם מתחת למשקל הזה, יש להשתמש בערכים הבאים:

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 שירותי משלוחים לכל מדינה.

מידע נוסף זמין במסמכי התיעוד לגבי taxtax והגדרות משלוח.