סקירה כללית של הגדרות המשלוח

המשאב ShippingSettings מאפשר לאחזר ולעדכן את הגדרות המשלוח של החשבון.

‫Google יכולה לעדכן אוטומטית את זמן האספקה המשוער של חלק מהמוצרים. מידע נוסף מופיע במאמר הפעלת שיפורים אוטומטיים.

קריאה, כתיבה או עדכון של הגדרות משלוח

כדי להשתמש בשירות משלוחים של Merchant API:

  1. שולחים בקשה ל-GET כדי לאחזר את הגדרות המשלוח המלאות של החשבון.
  2. משנים את הגדרות המשלוח.
  3. שולחים INSERT בקשה עם הגדרות המשלוח שרוצים לשנות.

Etag

‫Etag הוא טוקן מקודד שנועד למנוע עדכונים אסינכרוניים. ה-etag משתנה כשנתוני ההגדרות של המשלוח משתנים. המשתמשים צריכים להעתיק את ה-etag שקיבלו מהבקשה GET לגוף הבקשה INSERT.

אם נתוני הגדרות המשלוח משתנים בין בקשת GET לבקשת INSERT מקבלים הודעת שגיאה שמבקשת לשלוח בקשת GET נוספת כדי לאחזר את אסימון ה-etag העדכני ביותר. צריך להתקשר אל GET בקשה כדי לאחזר את טוקן ה-etag החדש ולהעתיק את טוקן ה-etag החדש לגוף הבקשה INSERT.

הוספת הגדרות משלוח

אפשר להשתמש בסמל shippingsettings.insert כדי להוסיף או לעדכן את הגדרות המשלוח בחשבון. זוהי בקשה לדוגמה לעדכון הערך של maxTransitDays ל-7 בשירות משלוחים בשם GSA Shipping - Free Ship Over $49.99 בחשבון מספר 10.

POST https://merchantapi.googleapis.com/accounts/v1/accounts/{accountId}/shippingSettings/

{
  "services": [
    {
      "name": "FedEx",
      "active": true,
      "deliveryCountries": ["US"],
      "currencyCode": "USD",
      "deliveryTime": {
        "minTransitDays": 4,
        "maxTransitDays": 6,
        "minHandlingDays": 0,
        "maxHandlingDays": 0
      },
      "rateGroups": [
        {
          "singleValue": {
            "flatRate": {
              "amountMicros": 5990000,
              "currencyCode": "USD"
            }
          },
          "name": "All products"
        }
      ]
    },
    {
      "name": "GSA Shipping - Free Ship Over $49.99",
      "active": true,
      "deliveryCountries": "US",
      "currencyCode": "USD",
      "deliveryTime": {
        "minTransitDays": 3,
        "maxTransitDays": 7,
        "minHandlingDays": 1,
        "maxHandlingDays": 2
      },
      "rateGroups": [
        {
          "mainTable": {
            "rowHeaders": {
              "prices": [
                {
                  "amountMicros": 49990000,
                  "currencyCode": "USD"
                },
                {
                  "amountMicros": -1,
                  "currencyCode": "USD"
                }
              ]
            },
            "rows": [
              {
                "cells": [
                  {
                    "flatRate": {
                      "amountMicros": 6990000,
                      "currencyCode": "USD"
                    }
                  }
                ]
              },
              {
                "cells": [
                  {
                    "flatRate": {
                      "amountMicros": 0,
                      "currencyCode": "USD"
                    }
                  }
                ]
              }
            ]
          },
          "name": "Free Ship Over $49.99"
        }
      ]
    }
  ]
}

דוגמה להוספת הגדרת משלוח:

Python

from examples.authentication import configuration
from examples.authentication import generate_user_credentials
from google.shopping.merchant_accounts_v1 import GetShippingSettingsRequest
from google.shopping.merchant_accounts_v1 import ShippingSettingsServiceClient

_ACCOUNT = configuration.Configuration().read_merchant_info()
_PARENT = f"accounts/{_ACCOUNT}"


def get_shipping_settings():
  """Gets the ShippingSettings for a given Merchant Center account."""

  # Gets OAuth Credentials.
  credentials = generate_user_credentials.main()

  # Creates a client.
  client = ShippingSettingsServiceClient(credentials=credentials)

  # Creates the Shipping Settings name
  name = _PARENT + "/shippingSettings"

  # Creates the request.
  request = GetShippingSettingsRequest(name=name)

  # Makes the request and prints the retrieved ShippingSettings.
  try:
    response = client.get_shipping_settings(request=request)
    print("Retrieved ShippingSettings below")
    print(response)
  except RuntimeError as e:
    print(e)


if __name__ == "__main__":
  get_shipping_settings()

הגדרת מחסנים

בדוגמה הבאה של קובץ JSON אפשר לראות איך משתמשים בשירות Merchant Shipping settings (הגדרות משלוח של מוֹכרים) כדי לנהל את פרטי המחסן בחשבון Merchant Center:

"warehouses": [
  {
    "name": "warehouse 1",
    "shippingAddress": {
      "streetAddress": {street_address},
      "city": {city},
      "administrativeArea": {administrative_area},
      "postalCode": {postal_code},
      "regionCode": {region_code}
    },
    "cutoffTime": {
      "minutes": {minutes}
    },
    "handlingDays": {handling_days},
    "businessDaysConfig": {
      "businessDays": [
        "MONDAY", "SUNDAY"
      ]
    }
  }
]

מחליפים את מה שכתוב בשדות הבאים:

  • {street_address}: החלק בכתובת המחסן שכולל את שם הרחוב.
  • {city}: עיר, עיירה או קומונה שבה נמצא המחסן.
  • {administrative_area}: החלוקה המנהלית של המדינה. לדוגמה, מדינה.
  • {postal_code}: המיקוד.
  • {region_code}: קוד המדינה כמחרוזת.
  • {minutes}: החלק של הדקות במועד האחרון להזמנה, שעד אליו צריך לבצע הזמנה כדי שהמחסן יעבד אותה באותו יום.
  • {handling_days}: מספר הימים שנדרשים למחסן הזה לארוז ולשלוח פריט.

המשאב warehouses הוא רשימה של מחסנים. אפשר לציין כל מחסן באמצעות זמן האספקה של שירות המשלוחים שמבוסס על מחסן דרך warehouse.name.

ניהול המחסנים

כך משתמשים ב-Merchant API כדי לנהל את המחסנים:

  1. שולחים GET בקשה לאחזור כל shippingsettings ומחסני הנתונים הקיימים.
  2. מעתיקים את shippingsettings מהבקשה GET לבקשה UPDATE.

  3. אם רוצים להשתמש במחסני נתונים בקטע warehouses של בקשת INSERT, צריך למלא אותם.

  4. שולחים בקשת UPDATE שמכילה משאבי shippingsettings ו-warehouses.

הנה דוגמה לגוף בקשה INSERT עם מחסן בשם Warehouse 1 שעודכן מניו יורק למאונטיין ויו:

{
  "services": [
    {
      "name": "Standard Shipping",
      "active": true,
      "deliveryCountries": ["US", "UK"],
      "currencyCode": "USD",
      "deliveryTime": {
        "minHandlingDays": 0,
        "maxHandlingDays": 1,
        "warehouseBasedDeliveryTimes": [
{"carrier": "Fedex"
 "carrierService": "ground"
 "warehouse": "Warehouse 1"
},
{"carrier": "Fedex"
 "carrierService": "2 days"
 "warehouse": "Warehouse 2"
}
]
      },
      "rateGroups": [
        {
          "singleValue": {
            "flatRate": {
              "amountMicros": 0,
              "currencyCode": "USD"
            }
          },
          "name": "Standard Shipping"
        }
      ],
    },
    {
      "name": "Expedited",
            "flatRate": {
              "amountMicros": 9990000,
              "currencyCode": "USD"
            }
          },
          "name": "Expedited"
        }
      ],
    }
  ],
  "warehouses": [
    {
      "name": "Warehouse1",
      "shippingAddress": [
        {
        "streetAddress": "1111 shoreline street"
          "city": "Mountain View",
          "administrativeArea": "CA"
        }
      ]
    },
    {
      "name": "Warehouse 2",
      "country": "US",
      "postalCodeRanges": [
        {
        "streetAddress": "1111 5th avenue"
          "city": "New York",
          "administrativeArea": "NY"
        }
      ]
    }
  ]
}

הוספת משלוח ביום הקנייה

אם יש לכם מלאי בחנות מקומית, אתם יכולים להשתמש ב-Content API for Shopping כדי להגדיר שירותי משלוח של מסירה ביום הקנייה. שירותי משלוח ביום הקנייה מוגדרים עם local_delivery כshipment_type. בשלב הזה, כל שירותי המשלוחים של local_delivery נחשבים למשלוחים ביום הקנייה.

אי אפשר לשנות את פרטי delivery_time במשלוחים מקומיים. אתם יכולים להשתמש ב-shippingsettings.insert כדי להגדיר משלוח ביום הקנייה למוצרים במלאי בחנויות המקומיות.

זוהי דוגמה לגוף בקשה שמוסיפה שירות של משלוחים באותו יום לכל החנויות בחשבון:

{
  "name": "accounts/accountId/shippingSettings",
  "services": [
    {
      "name": "Local Delivery",
      "active": true,
      "shipmentType": "local_delivery",
      "deliveryCountries": "US",
      "currencyCode": "USD",
      "rateGroups": [
        {
          "singleValue": {
            "flatRate": {
              "amountMicros": 0,
              "currencyCode": "USD"
            }
          }
        }
      ],
      "storeConfig": {
        "storeServiceType": "all stores",
        "storeCodes": [],
        "cutoffConfig": {
          "storeCloseOffsetHours": 2,
          "noDeliveryPostCutoff": true
        },
        "serviceRadius": {
          "value": 4,
          "unit": "Miles"
        }
      }
    }
  ]
}

הוספת משלוח ביום המחרת

כברירת מחדל, הזמנות שמבוצעות אחרי המועד האחרון למשלוח ביום הקנייה מתוזמנות למשלוח ביום המחרת. כדי להשבית את המשלוח ביום המחרת, מגדירים את השדה no_delivery_post_cutoff כ-true. אם משביתים את האפשרות למשלוח ביום המחרת, שירותי המשלוחים מוצגים רק לפני המועד האחרון להזמנה בכל יום.

האפשרות למסירת משלוח ביום המחרת זמינה רק אם הערך של shipment_type הוא local_delivery.

מידע נוסף

מידע על מעבר מ-Content API for Shopping זמין במאמר העברת ניהול הגדרות המשלוח.