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

از زیرمیانای برنامه‌سازی کاربردی «حساب‌ها» برای مدیریت تنظیمات ارسال کالا برای همه محصولات تحت حساب شما و همه زیرحساب‌های مرتبط استفاده کنید.

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

برای اطلاعات بیشتر، به راه‌اندازی تنظیمات ارسال مراجعه کنید.

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

این accounts.shippingSettings منبع به شما امکان می‌دهد تنظیمات ارسال کالا را برای حساب پیشرفته خود و همه حساب‌های فرعی مرتبط بازیابی و به‌روز کنید.

حساب‌های پیشرفته معمولاً توسط یکپارچه‌سازها، تجمیع‌کننده‌ها، و شرکای کانال که فروشگاه‌های آنلاین و خدمات API را برای چندین کسب‌وکار مدیریت می‌کنند، استفاده می‌شود. کسب‌وکارهایی که چندین فروشگاه آنلاین دارند یا نمانام‌هایی که در وب‌سایت‌های جداگانه فروخته می‌شوند نیز می‌توانند انتخاب کنند که حساب‌های فرعی تحت یک حساب پیشرفته داشته باشند.

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

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

برای افزودن یا به‌روز کردن تنظیمات ارسال برای حسابتان، از روش accounts.shippingSettings.insert استفاده کنید.

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

HTTP

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

{
  "etag": "",
  "name": "accounts/{ACCOUNT_ID}/shippingSetting",
  "services": [
    {
      "deliveryCountries": [
        "{COUNTRY_CODE}"
      ],
      "serviceName": "{SERVICE_NAME}",
      "active": false,
      "deliveryTime": {},
      "loyaltyPrograms": [
        {
          "programLabel": "{PROGRAM_LABEL}"
        }
      ],
      "minimumOrderValue": {
        "amountMicros": {PRICE},
        "currencyCode": "{CURRENCY_CODE}"
      },
      "currencyCode": "USD",
      "rateGroups": [
        {
          "applicableShippingLabels": [
            "{SHIPPING_LABEL}"
          ],
          "singleValue": {
            "flatRate": {
              "amountMicros": 10000000,
              "currencyCode": "USD"
            }
          }
        }
      ]
    }
  ]
}

cURL

curl --request POST \
'https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/shippingSettings:insert' \
--header 'Authorization: Bearer {ACCESS_TOKEN}' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"etag":"","name":"accounts/{ACCOUNT_ID}/shippingSetting","services":[{"deliveryCountries":["{COUNTRY_CODE}"],"serviceName":"{SERVICE_NAME}","active":false,"deliveryTime":{},"loyaltyPrograms":[{"programLabel":"{PROGRAM_LABEL}"}],"minimumOrderValue":{"amountMicros":{PRICE},"currencyCode":"{CURRENCY_CODE}"},"currencyCode":"USD","rateGroups":[{"applicableShippingLabels":["{SHIPPING_LABEL}"],"singleValue":{"flatRate":{"amountMicros":10000000,"currencyCode":"USD"}}}]}]}' \
--compressed

جایگزین کردن موارد زیر:

  • ‫{ACCOUNT_ID}: شناسه یکتای حساب Merchant Center شما.
  • ‫{COUNTRY_CODE}: کد CLDR (مخزن داده‌های محلی مشترک) کشوری که این سرویس در آن اعمال می‌شود. باید با قیمت‌های گروه‌های نرخ مطابقت داشته باشد.
  • ‫{SERVICE_NAME}: نام سرویس.
  • ‫{PROGRAM_LABEL}: برچسب برنامه وفاداری در تنظیمات برنامه وفاداری در Merchant Center تنظیم شده است.
  • ‫{SHIPPING_LABEL}: فهرستی از برچسب‌های ارسال کالا که محصولاتی را که این گروه نرخ بر آن‌ها اعمال می‌شود تعریف می‌کند.
  • {PRICE}: قیمت به‌صورت عددی در میکرو. برای مثال، ۱ دلار = ۱۰۰۰۰۰۰ میکرو.
  • ‫{CURRENCY_CODE}: واحد پول قیمت بااستفاده از مخفف‌های سه‌حرفی.

برای اطلاعات بیشتر درباره فیلدهای مشخص‌شده، مستندات مرجع را ببینید.

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

در اینجا نمونه‌ای از پاسخ یک تماس موفق آورده شده است:

{
  "name": "accounts/{ACCOUNT_ID}/shippingSettings",
  "services": [
    {
      "serviceName": "{SERVICE_NAME}",
      "active": false,
      "deliveryCountries": [
        "{COUNTRY_CODE}"
      ],
      "currencyCode": "{CURRENCY_CODE}",
      "rateGroups": [
        {
          "applicableShippingLabels": [
            "{SHIPPING_LABEL}"
          ],
          "singleValue": {
            "flatRate": {
              "amountMicros": "{PRICE}",
              "currencyCode": "{CURRENCY_CODE}"
            }
          }
        }
      ],
      "shipmentType": "LOCAL_DELIVERY",
      "storeConfig": {
        "storeServiceType": "ALL_STORES",
        "cutoffConfig": {
          "localCutoffTime": {
            "hour": "7",
            "minute": "40"
          },
          "noDeliveryPostCutoff": false
        },
        "serviceRadius": {
          "value": "40",
          "unit": "KILOMETERS"
        }
      }
    }
  ],
  "etag": "OAJCTQgBEAAaRwoEdGVzdBIEIgJVUxoDVVNEIggiBggHECgoACoeCAESDwoNCAESCU9WRVJTSVpFRBoJIgcIAhCAwtcvWAWSAQCaAQQIAhAo"
}

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

جاوا

import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.accounts.v1.DeliveryTime;
import com.google.shopping.merchant.accounts.v1.InsertShippingSettingsRequest;
import com.google.shopping.merchant.accounts.v1.RateGroup;
import com.google.shopping.merchant.accounts.v1.Service;
import com.google.shopping.merchant.accounts.v1.Service.ShipmentType;
import com.google.shopping.merchant.accounts.v1.ShippingSettings;
import com.google.shopping.merchant.accounts.v1.ShippingSettingsServiceClient;
import com.google.shopping.merchant.accounts.v1.ShippingSettingsServiceSettings;
import com.google.shopping.merchant.accounts.v1.Value;
import com.google.shopping.type.Price;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;

/** This class demonstrates how to insert a ShippingSettings for a Merchant Center account. */
public class InsertShippingSettingsSample {

  private static String getParent(String accountId) {
    return String.format("accounts/%s", accountId);
  }

  public static void insertShippingSettings(Config config) throws Exception {

    // Obtains OAuth token based on the user's configuration.
    GoogleCredentials credential = new Authenticator().authenticate();

    // Creates service settings using the credentials retrieved above.
    ShippingSettingsServiceSettings shippingSettingsServiceSettings =
        ShippingSettingsServiceSettings.newBuilder()
            .setCredentialsProvider(FixedCredentialsProvider.create(credential))
            .build();

    // Creates parent to identify where to insert the shippingsettings.
    String parent = getParent(config.getAccountId().toString());

    // Calls the API and catches and prints any network failures/errors.
    try (ShippingSettingsServiceClient shippingSettingsServiceClient =
        ShippingSettingsServiceClient.create(shippingSettingsServiceSettings)) {

      InsertShippingSettingsRequest request =
          InsertShippingSettingsRequest.newBuilder()
              .setParent(parent)
              .setShippingSetting(
                  ShippingSettings.newBuilder()
                      // Etag needs to be an empty string on initial insert
                      // On future inserts, call GET first to get the Etag
                      // Then use the retrieved Etag on future inserts.
                      // NOTE THAT ON THE INITIAL INSERT, YOUR SHIPPING SETTINGS WILL
                      // NOT BE STORED, YOU HAVE TO CALL INSERT AGAIN WITH YOUR
                      // RETRIEVED ETAG.
                      // .setEtag("")
                      .setEtag("PPa=")
                      .addServices(
                          Service.newBuilder()
                              .setServiceName("Canadian Postal Service")
                              .setActive(true)
                              .addDeliveryCountries("CA")
                              .setCurrencyCode("CAD")
                              .setDeliveryTime(
                                  DeliveryTime.newBuilder()
                                      .setMinTransitDays(0)
                                      .setMaxTransitDays(3)
                                      .setMinHandlingDays(0)
                                      .setMaxHandlingDays(3)
                                      .build())
                              .addRateGroups(
                                  RateGroup.newBuilder()
                                      .addApplicableShippingLabels("Oversized")
                                      .addApplicableShippingLabels("Perishable")
                                      .setSingleValue(Value.newBuilder().setPricePercentage("5.4"))
                                      .setName("Oversized and Perishable items")
                                      .build())
                              .setShipmentType(ShipmentType.DELIVERY)
                              .setMinimumOrderValue(
                                  Price.newBuilder()
                                      .setAmountMicros(10000000)
                                      .setCurrencyCode("CAD")
                                      .build())
                              .build())
                      .build())
              .build();

      System.out.println("Sending insert ShippingSettings request");
      ShippingSettings response = shippingSettingsServiceClient.insertShippingSettings(request);
      System.out.println("Inserted ShippingSettings Name below");
      System.out.println(response.getName());
      // You can apply ShippingSettings to specific products by using the `shippingLabel` field
      // on the product.
    } catch (Exception e) {
      System.out.println(e);
    }
  }

  public static void main(String[] args) throws Exception {
    Config config = Config.load();

    insertShippingSettings(config);
  }
}

PHP

use Google\ApiCore\ApiException;
use Google\Shopping\Merchant\Accounts\V1\Client\ShippingSettingsServiceClient;
use Google\Shopping\Merchant\Accounts\V1\DeliveryTime;
use Google\Shopping\Merchant\Accounts\V1\InsertShippingSettingsRequest;
use Google\Shopping\Merchant\Accounts\V1\RateGroup;
use Google\Shopping\Merchant\Accounts\V1\Service;
use Google\Shopping\Merchant\Accounts\V1\Service\ShipmentType;
use Google\Shopping\Merchant\Accounts\V1\ShippingSettings;
use Google\Shopping\Merchant\Accounts\V1\Value;
use Google\Shopping\Type\Price;

/**
 * This class demonstrates how to insert a ShippingSettings for a Merchant Center account.
 */
class InsertShippingSettings
{
    /**
     * A helper function to create the parent string.
     *
     * @param string $accountId The account ID.
     * @return string The parent in the format "accounts/{accountId}".
     */
    private static function getParent(string $accountId): string
    {
        return sprintf("accounts/%s", $accountId);
    }

    /**
     * Inserts shipping settings for the specified Merchant Center account.
     *
     * @param array $config The configuration data containing the account ID.
     * @return void
     */
    public static function insertShippingSettings($config)
    {
        // Gets the OAuth credentials to make the request.
        $credentials = Authentication::useServiceAccountOrTokenFile();

        // Creates options config containing credentials for the client to use.
        $options = ['credentials' => $credentials];

        // Creates a client.
        $shippingSettingsServiceClient = new ShippingSettingsServiceClient($options);

        // Creates parent to identify where to insert the shippingsettings.
        $parent = self::getParent($config['accountId']);

        // Calls the API and catches and prints any network failures/errors.
        try {
            $request = (new InsertShippingSettingsRequest())
                ->setParent($parent)
                ->setShippingSetting(
                    (new ShippingSettings())
                        // Etag needs to be an empty string on initial insert
                        // On future inserts, call GET first to get the Etag
                        // Then use the retrieved Etag on future inserts.
                        // NOTE THAT ON THE INITIAL INSERT, YOUR SHIPPING SETTINGS WILL
                        // NOT BE STORED, YOU HAVE TO CALL INSERT AGAIN WITH YOUR
                        // RETRIEVED ETAG.
                        ->setEtag("")
                        ->setServices([
                            (new Service())
                                ->setServiceName("Canadian Postal Service")
                                ->setActive(true)
                                ->setDeliveryCountries(["CA"])
                                ->setCurrencyCode("CAD")
                                ->setDeliveryTime(
                                    (new DeliveryTime())
                                        ->setMinTransitDays(0)
                                        ->setMaxTransitDays(3)
                                        ->setMinHandlingDays(0)
                                        ->setMaxHandlingDays(3)
                                )
                                ->setRateGroups(
                                    [(new RateGroup())
                                        ->setApplicableShippingLabels(["Oversized","Perishable"])
                                        ->setSingleValue((new Value())->setPricePercentage("5.4"))
                                        ->setName("Oversized and Perishable items")]
                                )
                                ->setShipmentType(ShipmentType::DELIVERY)
                                ->setMinimumOrderValue(
                                    (new Price())
                                        ->setAmountMicros(10000000)
                                        ->setCurrencyCode("CAD")
                                )
                        ])
                );

            print "Sending insert ShippingSettings request" . PHP_EOL;
            $response = $shippingSettingsServiceClient->insertShippingSettings($request);
            print "Inserted ShippingSettings below" . PHP_EOL;
            print_r($response);
            // You can apply ShippingSettings to specific products by using the `shippingLabel` field
            // on the product.
        } catch (ApiException $e) {
            print $e->getMessage();
        }
    }

    /**
     * Helper to execute the sample.
     *
     * @return void
     */
    public function callSample(): void
    {
        $config = Config::generateConfig();

        // Makes the call to insert shipping settings for the MC account.
        self::insertShippingSettings($config);
    }
}

// Run the script
$sample = new InsertShippingSettings();
$sample->callSample();

Python

from examples.authentication import configuration
from examples.authentication import generate_user_credentials
from google.shopping.merchant_accounts_v1 import DeliveryTime
from google.shopping.merchant_accounts_v1 import InsertShippingSettingsRequest
from google.shopping.merchant_accounts_v1 import RateGroup
from google.shopping.merchant_accounts_v1 import Service
from google.shopping.merchant_accounts_v1 import ShippingSettings
from google.shopping.merchant_accounts_v1 import ShippingSettingsServiceClient
from google.shopping.merchant_accounts_v1 import Value

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


def insert_shipping_settings():
  """Inserts a ShippingSettings for a Merchant Center account."""

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

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

  # Creates the request.
  request = InsertShippingSettingsRequest(
      parent=_PARENT,
      shipping_setting=ShippingSettings(
          # Etag needs to be an empty string on initial insert
          # On future inserts, call GET first to get the Etag
          # Then use the retrieved Etag on future inserts.
          # NOTE THAT ON THE INITIAL INSERT, YOUR SHIPPING SETTINGS WILL
          # NOT BE STORED, YOU HAVE TO CALL INSERT AGAIN WITH YOUR
          # RETRIEVED ETAG.
          etag="",
          services=[
              Service(
                  service_name="Canadian Postal Service",
                  active=True,
                  delivery_countries=["CA"],
                  currency_code="CAD",
                  delivery_time=DeliveryTime(
                      min_transit_days=0,
                      max_transit_days=3,
                      min_handling_days=0,
                      max_handling_days=3,
                  ),
                  rate_groups=[
                      RateGroup(
                          applicable_shipping_labels=[
                              "Oversized",
                              "Perishable",
                          ],
                          single_value=Value(price_percentage="5.4"),
                          name="Oversized and Perishable items",
                      )
                  ],
                  shipment_type=Service.ShipmentType.DELIVERY,
                  minimum_order_value={
                      "amount_micros": 10000000,
                      "currency_code": "CAD",
                  },
              )
          ],
      ),
  )

  # Makes the request and prints the inserted ShippingSettings name.
  try:
    response = client.insert_shipping_settings(request=request)
    print("Inserted ShippingSettings below")
    print(response)
    # You can apply ShippingSettings to specific products by using the
    # `shippingLabel` field on the product.
  except RuntimeError as e:
    print(e)


if __name__ == "__main__":
  insert_shipping_settings()

بازیابی تنظیمات ارسال

درخواست‌های زیر نشان می‌دهد چگونه می‌توانید تنظیمات ارسال حساب Merchant Center را بازیابی کنید:

HTTP

GET https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/shippingSettings

cURL

curl \
'https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/shippingSettings' \
--header 'Authorization: Bearer {ACCESS_TOKEN}' \
--header 'Accept: application/json' \
--compressed

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

جاوا

import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.accounts.v1.GetShippingSettingsRequest;
import com.google.shopping.merchant.accounts.v1.ShippingSettings;
import com.google.shopping.merchant.accounts.v1.ShippingSettingsName;
import com.google.shopping.merchant.accounts.v1.ShippingSettingsServiceClient;
import com.google.shopping.merchant.accounts.v1.ShippingSettingsServiceSettings;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;

/** This class demonstrates how to get the ShippingSettings for a given Merchant Center account. */
public class GetShippingSettingsSample {

  public static void getShippingSettings(Config config) throws Exception {

    // Obtains OAuth token based on the user's configuration.
    GoogleCredentials credential = new Authenticator().authenticate();

    // Creates service settings using the credentials retrieved above.
    ShippingSettingsServiceSettings shippingSettingsServiceSettings =
        ShippingSettingsServiceSettings.newBuilder()
            .setCredentialsProvider(FixedCredentialsProvider.create(credential))
            .build();

    // Creates ShippingSettings name to identify ShippingSettings.
    String name =
        ShippingSettingsName.newBuilder()
            .setAccount(config.getAccountId().toString())
            .build()
            .toString();

    // Calls the API and catches and prints any network failures/errors.
    try (ShippingSettingsServiceClient shippingSettingsServiceClient =
        ShippingSettingsServiceClient.create(shippingSettingsServiceSettings)) {

      // The name has the format: accounts/{account}/shippingSettings
      GetShippingSettingsRequest request =
          GetShippingSettingsRequest.newBuilder().setName(name).build();

      System.out.println("Sending Get ShippingSettings request:");
      ShippingSettings response = shippingSettingsServiceClient.getShippingSettings(request);

      System.out.println("Retrieved ShippingSettings below");
      System.out.println(response);
    } catch (Exception e) {
      System.out.println(e);
    }
  }

  public static void main(String[] args) throws Exception {
    Config config = Config.load();

    getShippingSettings(config);
  }
}

PHP

use Google\ApiCore\ApiException;
use Google\Shopping\Merchant\Accounts\V1\Client\ShippingSettingsServiceClient;
use Google\Shopping\Merchant\Accounts\V1\GetShippingSettingsRequest;

/**
 * This class demonstrates how to get the ShippingSettings for a given Merchant Center account.
 */
class GetShippingSettings
{

    /**
     * Retrieves the shipping settings for the specified Merchant Center account.
     *
     * @param array $config The configuration data containing the account ID.
     * @return void
     */
    public static function getShippingSettings($config)
    {
        // Gets the OAuth credentials to make the request.
        $credentials = Authentication::useServiceAccountOrTokenFile();

        // Creates options config containing credentials for the client to use.
        $options = ['credentials' => $credentials];

        // Creates a client.
        $shippingSettingsServiceClient = new ShippingSettingsServiceClient($options);

        // Creates ShippingSettings name to identify ShippingSettings.
        // The name has the format: accounts/{account}/shippingSettings
        $name = "accounts/" . $config['accountId'] . "/shippingSettings";


        // Calls the API and catches and prints any network failures/errors.
        try {
            $request = (new GetShippingSettingsRequest())
                ->setName($name);

            print "Sending Get ShippingSettings request:" . PHP_EOL;
            $response = $shippingSettingsServiceClient->getShippingSettings($request);

            print "Retrieved ShippingSettings below" . PHP_EOL;
            print_r($response);
        } catch (ApiException $e) {
            print $e->getMessage();
        }
    }

    /**
     * Helper to execute the sample.
     *
     * @return void
     */
    public function callSample(): void
    {
        $config = Config::generateConfig();
        // Makes the call to get shipping settings for the MC account.
        self::getShippingSettings($config);
    }
}

// Run the script
$sample = new GetShippingSettings();
$sample->callSample();

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()

افزودن تنظیمات انبار

برای افزودن یا به‌روزرسانی تنظیمات انبار که موجودی را برای حساب شما ذخیره و مدیریت می‌کند، از روش accounts.shippingSettings.insert استفاده کنید.

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

  1. برای بازیابی همه shippingsettings و warehouses موجود، بااستفاده از روش accounts.shippingSettings.getShippingSettings درخواست GET کنید.

  2. درخواستی بااستفاده از روش account.shippingSettings.insert ایجاد کنید. منبع shippingsettings را از پاسخ درخواست GET به درخواست درج کپی کنید.

  3. برای افزودن اطلاعات درباره انبارها بااستفاده از تماس درج، جزئیات مربوط به آن را در منبع warehouses در بدنه درخواست تکمیل کنید.

  4. درخواست درج را اجرا کنید.

درخواست نمونه زیر نحوه استفاده از روش accounts.shippingSettings.insert برای به‌روزرسانی تنظیمات انبار برای حساب شما را نشان می‌دهد. درخواست زمان روزی را که سفارش می‌تواند پذیرفته شود و پردازش شروع شود، روزهای رسیدگی، و نشانی ارسال را تنظیم می‌کند.

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

{
  "etag": "",
  "name": "accounts/{ACCOUNT_ID}/shippingSetting",
  "warehouses": [
    {
      "cutoffTime": {
        "hour": 7,
        "minute": 50
      },
      "handlingDays": 7,
      "name": "{WAREHOUSE_NAME}",
      "shippingAddress": {
        "streetAddress": "{ADDRESS}",
        "administrativeArea": "CA",
        "city": "{CITY_NAME}",
        "postalCode": "{POSTAL_CODE}",
        "regionCode": "{REGION_CODE}"
      }
    }
  ]
}

جایگزین کردن موارد زیر:

  • ‫{ACCOUNT_ID}: شناسه یکتای حساب Merchant Center شما.
  • ‫{WAREHOUSE_NAME}: نام انبار.
  • ‫{ADDRESS}: نشانی ارسال کالا انبار.
  • ‫{CITY_NAME}: شهر، شهرک، یا بخش. همچنین می‌تواند شامل مکان‌های وابسته یا مکان‌های فرعی باشد. برای مثال، محله‌ها یا حومه‌ها.
  • {POSTAL_CODE}: کد پستی یا زیپ‌کد. برای مثال، ۹۴۰۴۳.
  • ‫{REGION_CODE}: کد کشور CLDR. برای مثال، «ایالات متحده».

در اینجا نمونه‌ای از پاسخ یک تماس موفق آورده شده است:

{
  "name": "accounts/{ACCOUNT_ID}/shippingSettings",
  "warehouses": [
    {
      "name": "{WAREHOUSE_NAME}",
      "shippingAddress": {
        "streetAddress": "{ADDRESS}",
        "city": "{CITY_NAME}",
        "administrativeArea": "CA",
        "postalCode": "{POSTAL_CODE}",
        "regionCode": "{REGION_CODE}"
      },
      "cutoffTime": {
        "hour": 7,
        "minute": 50
      },
      "handlingDays": "7",
      "businessDayConfig": {
        "businessDays": [
          "MONDAY",
          "TUESDAY",
          "WEDNESDAY",
          "THURSDAY",
          "FRIDAY"
        ]
      }
    }
  ],
  "etag": "OAJiUAjB0au+FBABGgR0ZXN0Ii4KAlVTGgJDQSoKQ2FsaWZvcm5pYWIFOTQwNDNyETExMXcgMzFzdCBTdHJlZXQuKgQIBxAyMAc4ATgCOAM4BDgF"
}

تنظیم گروه‌های کد پستی

از زیر API «حساب‌ها» برای مدیریت مناطق، که postalCodeGroups نامیده می‌شود، برای حساب Merchant Center استفاده کنید.

منبع postalCodeGroups فهرستی از گروه‌بندی‌ها است که در آن هر گروه‌بندی فهرستی از چندین کد پستی است که تنظیمات ارسال یکسانی دارند.

از «میانای برنامه‌سازی کاربردی فروشنده» برای مدیریت postalCodeGroups خود به این روش استفاده کنید:

  1. برای بازیابی همه shippingsettings و postalCodeGroups، تماس get برقرار کنید.

  2. shippingsettings را از فراخوان get به فراخوان update کپی کنید.

  3. اگر از برچسب‌های زمان ترانزیت در سرویس ارسال کالا استفاده نمی‌کنید، ورودی زیر را از بدنه درخواست بردارید.

        "transitTimeLabels": [
        "all other labels"
    ],
    
  4. منطقه‌هایی را که می‌خواهید در بخش postalCodeGroups برای تماس update استفاده کنید تکمیل کنید.

  5. با منابع shippingsettings و postalCodeGroups تماس به‌روزرسانی برقرار کنید.

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

اگر موجودی محلی دارید، می‌توانید از Merchant API برای پیکربندی خدمات ارسال با تحویل در همان روز استفاده کنید. به افزودن اطلاعات فروشگاه به محصولات محلی (addlocalinventory) مراجعه کنید.

خدمات ارسال تحویل در همان روز local_delivery را به‌عنوان shipmentType خود دارند.

موارد زیر باید درنظر گرفته شود:

  • همه خدمات ارسال local_delivery به‌عنوان ارسال در همان روز درنظر گرفته می‌شوند.
  • نمی‌توانید اطلاعات deliveryTime را برای ارسال‌های محلی تغییر دهید.

برای راه‌اندازی ارسال در همان روز برای محصولات موجودی محلی‌تان، از روش accounts.shippingSettings.insert استفاده کنید.

در اینجا درخواست نمونه‌ای ارائه شده است که نوع ارسال، storeConfig (فهرست فروشگاه‌هایی که محصولاتتان از آن‌ها ارسال می‌شود)، و گروه‌های نرخ را تنظیم می‌کند.

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

{
  "etag": "",
  "name": "accounts/{ACCOUNT_ID}/shippingSetting",
  "services": [
    {
      "deliveryCountries": [
        "{COUNTRY_CODE}"
      ],
      "serviceName": "{SERVICE_NAME}",
      "active": false,
      "currencyCode": "{CURRENCY_CODE}",
      "shipmentType": "{SHIPMENT_TYPE}",
      "storeConfig": {
        "cutoffConfig": {
          "localCutoffTime": {
            "hour": 7,
            "minute": 40
          }
        },
        "serviceRadius": {
          "unit": "KILOMETERS",
          "value": 40
        },
        "storeCodes": [],
        "storeServiceType": "ALL_STORES"
      },
      "rateGroups": [
        {
          "applicableShippingLabels": [
            "{SHIPPING_LABEL}"
          ],
          "singleValue": {
            "flatRate": {
              "amountMicros": {PRICE},
              "currencyCode": "{CURRENCY_CODE}"
            }
          }
        }
      ]
    }
  ]
}

جایگزین کردن موارد زیر:

  • ‫{SHIPMENT_TYPE}: نوع مکان‌هایی که این سرویس سفارش‌ها را به آن‌ها ارسال می‌کند شامل:
    • SHIPMENT_TYPE_UNSPECIFIED
    • DELIVERY
    • LOCAL_DELIVERY
    • COLLECTION_POINT
  • ‫{SHIPPING_LABEL}: فهرستی از برچسب‌های ارسال که محصولاتی را که این گروه نرخ بر آن‌ها اعمال می‌شود تعریف می‌کند.

در اینجا نمونه‌ای از پاسخ یک تماس موفق آورده شده است:

{
  "name": "accounts/{ACCOUNT_ID}/shippingSettings",
  "services": [
    {
      "serviceName": "{SERVICE_NAME}",
      "active": false,
      "deliveryCountries": [
        "{COUNTRY_CODE}"
      ],
      "currencyCode": "{CURRENCY_CODE}",
      "rateGroups": [
        {
          "applicableShippingLabels": [
            "{SHIPPING_LABEL}"
          ],
          "singleValue": {
            "flatRate": {
              "amountMicros": "{PRICE}",
              "currencyCode": "{CURRENCY_CODE}"
            }
          }
        }
      ],
      "shipmentType": "{SHIPMENT_TYPE}",
      "storeConfig": {
        "storeServiceType": "ALL_STORES",
        "cutoffConfig": {
          "localCutoffTime": {
            "hour": "7",
            "minute": "40"
          },
          "noDeliveryPostCutoff": false
        },
        "serviceRadius": {
          "value": "40",
          "unit": "KILOMETERS"
        }
      }
    }
  ],
  "etag": "OAJCTQgBEAAaRwoEdGVzdBIEIgJVUxoDVVNEIggiBggHECgoACoeCAESDwoNCAESCU9WRVJTSVpFRBoJIgcIAhCAwtcvWAWSAQCaAQQIAhAo"
}

افزودن تحویل در روز بعد

سفارش‌هایی که پس‌از زمان اتمام تحویل در همان روز ثبت می‌شوند به‌طور پیش‌فرض برای تحویل در روز بعد زمان‌بندی می‌شوند.

برای خاموش کردن تحویل در روز بعد، no_delivery_post_cutoff را روی true تنظیم کنید.

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

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

افزودن خط‌مشی برگرداندن محصولات

اگر محصولات را ازطریق «آگهی‌های Shopping» یا فهرستگان‌های رایگان فهرست می‌کنید، می‌توانید از returnpolicyonline برای ایجاد، مشاهده، ویرایش، یا حذف خط‌مشی‌های برگشت آنلاین با مشخصه‌های زیر استفاده کنید:

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

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

برای افزودن خط‌مشی برگرداندن محصولات می‌توانید از returnpolicyonline.create استفاده کنید. پاسخ شامل خط‌مشی به‌روزشده است.

POST https://merchantapi.googleapis.com/v1/{ACCOUNT_ID}/returnpolicyonline