نمای کلی تنظیمات ارسال

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

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

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

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

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

Etag

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

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

افزودن تنظیمات ارسال

از shippingsettings.insert برای افزودن یا به‌روزرسانی تنظیمات ارسال کالا برای حسابتان استفاده کنید. در اینجا نمونه‌ای از درخواست به‌روزرسانی maxTransitDays به ۷ برای «سرویس ارسال» به‌نام GSA Shipping - Free Ship Over $49.99، در حساب ‫۱۰ آمده است.

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 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 با انبار برای انبار ۱ به‌روزشده از نیویورک به مانتین ویو آمده است:

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

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

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

تحویل در روز بعد فقط زمانی دردسترس است که shipment_type کمتر از local_delivery باشد.

بیشتر بدانید

برای آشنایی با انتقال از «میانای برنامه‌سازی کاربردی محتوا برای Shopping»، به انتقال مدیریت تنظیمات ارسال کالا مراجعه کنید.