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

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

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

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

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

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

Etag

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

אם נתוני הגדרות המשלוח משתנים בין בקשת GET לבקשת INSERT, תוצג הודעת שגיאה שבה תתבקשו לשלוח בקשת GET נוספת כדי לאחזר את אסימון ה-etag העדכני ביותר. צריך להתקשר אל GET כדי לאחזר את אסימון ה-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 זמין במאמר העברת ניהול הגדרות המשלוח.