نمای کلی تنظیمات حمل و نقل

منبع ShippingSettings به شما امکان می‌دهد تنظیمات حمل و نقل حساب خود را بازیابی و به‌روزرسانی کنید.

گوگل می‌تواند زمان تحویل تخمینی برخی از محصولات را به‌طور خودکار به‌روزرسانی کند. برای اطلاعات بیشتر، به «فعال کردن بهبودهای خودکار» مراجعه کنید.

خواندن، نوشتن یا به‌روزرسانی تنظیمات ارسال

برای استفاده از سرویس ارسال Merchant API، مراحل زیر را انجام دهید:

  1. برای دریافت تنظیمات کامل ارسال حساب کاربری خود، یک درخواست GET ارسال کنید.
  2. تنظیمات ارسال را تغییر دهید.
  3. یک درخواست INSERT با تنظیمات ارسال اصلاح‌شده ارسال کنید.

برچسب

Etag یک توکن رمزگذاری شده برای جلوگیری از به‌روزرسانی‌های ناهمزمان است. این etag با تغییر هر یک از داده‌های تنظیمات حمل و نقل تغییر می‌کند. کاربران باید etag دریافت شده از درخواست GET را در بدنه درخواست INSERT کپی کنند.

اگر داده‌های تنظیمات ارسال بین درخواست GET و درخواست INSERT تغییر کند، یک پیام خطا دریافت می‌کنید که درخواست GET دیگری را برای بازیابی جدیدترین توکن etag درخواست می‌کند. برای بازیابی توکن etag جدید، باید درخواست GET را فراخوانی کنید و توکن etag جدید را در بدنه درخواست INSERT کپی کنید.

تنظیمات حمل و نقل خود را اضافه کنید

برای افزودن یا به‌روزرسانی تنظیمات ارسال برای حساب کاربری خود، shippingsettings.insert استفاده کنید. در اینجا یک درخواست نمونه وجود دارد که maxTransitDays را برای یک سرویس ارسال به نام GSA Shipping - Free Shipping Over $49.99 ، تحت حساب کاربری 10، به 7 به‌روزرسانی می‌کند.

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"
        }
      ]
    }
  ]
}

در اینجا نمونه‌ای از تنظیمات حمل و نقل که می‌توانید برای وارد کردن آن استفاده کنید، آورده شده است:

پایتون

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 زیر نشان می‌دهد که چگونه می‌توانید از سرویس تنظیمات حمل و نقل تجاری برای مدیریت اطلاعات انبار برای حساب مرکز تجارت خود استفاده کنید:

"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} : کد پستی یا ZIP code.
  • {region_code} : کد کشور به صورت رشته.
  • {minutes} : دقیقه بخشی از زمان پایانی است که تا آن زمان، سفارش باید ثبت شود تا در همان روز توسط انبار پردازش شود.
  • {handling_days} : تعداد روزهایی که طول می‌کشد تا این انبار یک کالا را بسته‌بندی و ارسال کند.

منبع warehouses لیستی از انبارها است. هر انبار را می‌توان با زمان تحویل مبتنی بر انبار سرویس حمل و نقل از طریق warehouse.name ارجاع داد.

انبارهای خود را مدیریت کنید

در اینجا نحوه استفاده از Merchant API برای مدیریت انبارهای شما آورده شده است:

  1. برای بازیابی تمام shippingsettings و انبارهای موجود خود، یک درخواست GET ارسال کنید.
  2. تنظیمات shippingsettings از درخواست GET به درخواست UPDATE کپی کنید.

  3. اگر می‌خواهید از انبارها در بخش warehouses برای درخواست INSERT استفاده کنید، آنها را پر کنید.

  4. یک درخواست UPDATE ایجاد کنید که شامل منابع shippingsettings و warehouses باشد.

در اینجا یک نمونه بدنه درخواست INSERT با انبار برای Warehouse 1 که از New York به Mountain View به‌روزرسانی شده است، آورده شده است:

{
  "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"
        }
      ]
    }
  ]
}

اضافه شدن تحویل در همان روز

اگر موجودی محلی دارید، می‌توانید از API محتوا برای خرید برای پیکربندی سرویس‌های ارسال تحویل در همان روز استفاده کنید. سرویس‌های ارسال تحویل در همان روز، 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 باشد.

بیشتر بدانید

برای کسب اطلاعات در مورد مهاجرت از API محتوا برای خرید، به مدیریت تنظیمات حمل و نقل مهاجرت مراجعه کنید.