نظرة عامة على إعدادات الشحن

يتيح لك المرجع ShippingSettings استرداد إعدادات الشحن في حسابك وتعديلها.

يمكن أن تعدّل Google تلقائيًا الوقت المقدَّر للتسليم لبعض المنتجات. لمزيد من المعلومات، يُرجى الاطّلاع على تفعيل التحسينات التلقائية.

قراءة إعدادات الشحن أو كتابتها أو تعديلها

لاستخدام خدمة الشحن في Merchant API، اتّبِع الخطوات التالية:

  1. قدِّم طلبًا إلى GET لاسترداد إعدادات الشحن الكاملة لحسابك.
  2. عدِّل إعدادات الشحن.
  3. قدِّم طلبًا للحصول على INSERT باستخدام إعدادات الشحن المعدَّلة.

علامة Etag

علامة Etag هي رمز مميّز مُشفَّر لتجنُّب التعديلات غير المتزامنة. تتغيّر علامة الهامش عند تغيُّر أيّ من بيانات إعدادات الشحن. على المستخدمين نسخ علامة الهامش التي حصلوا عليها من طلب GET إلى محتوى طلب INSERT.

إذا تغيّرت بيانات إعدادات الشحن بين طلب GET وINSERT ، ستتلقّى رسالة خطأ تطلب منك إرسال طلب GET آخر ل retrieving the most recent etag token. عليك طلب GET ل retrieving the new etag token ونسخ الرمز المميّز الجديد لعلامة etag إلى INSERT request body.

إضافة إعدادات الشحن

استخدِم الرمز shippingsettings.insert لإضافة إعدادات الشحن أو تعديلها في حسابك. في ما يلي نموذج طلب يُعدّل القيمة maxTransitDays إلى 7 لخدمة الشحن التي تحمل الاسم GSA Shipping - Free Ship Over $49.99، ضمن الحساب 10.

POST https://merchantapi.googleapis.com/accounts/v1beta/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_v1beta import GetShippingSettingsRequest
from google.shopping.merchant_accounts_v1beta 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 service لإدارة معلومات المستودع لحساب التاجر:

"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 يتضمّن مستودعًا لـ المستودع 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 لإعداد خدمات 👏شحن 👏التوصيل في اليوم نفسه إذا كانت لديك منتجات داخل المتجر. خدمات الشحن التي تتيح التوصيل في اليوم نفسه لهاshipment_typelocal_delivery. في الوقت الحالي، تُعتبر جميع خدمات 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، يُرجى الاطّلاع على مقالة نقل إدارة إعدادات الشحن.