إدارة إعدادات الشحن

استخدِم واجهة برمجة التطبيقات الفرعية Accounts لإدارة إعدادات الشحن لجميع المنتجات ضمن حسابك وجميع الحسابات الفرعية المرتبطة به.

ستسري التغييرات التي تجريها على إعدادات الشحن على جميع المنتجات. لتعديل إعدادات الشحن لمنتجات فردية، استخدِم Merchant Products API.

لمزيد من المعلومات، يُرجى الاطّلاع على مقالة ضبط إعدادات الشحن.

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

يتيح لك مورد accounts.shippingSettings استرداد إعدادات الشحن لحسابك المتقدّم وجميع الحسابات الفرعية المرتبطة به وتعديلها.

عادةً ما يستخدم الحسابات المتقدّمة المدمجون والمجمّعون وشركاء القنوات الذين يديرون متاجر إلكترونية وخدمات واجهة برمجة التطبيقات لعدة مؤسسات. يمكن للمؤسسات التي لديها متاجر على الإنترنت أو علامات تجارية متعددة تُباع على مواقع إلكترونية منفصلة أن تختار أيضًا الحصول على حسابات فرعية ضمن حساب بامتيازات متقدّمة واحد.

يمكن أن تعدّل 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}: السعر ممثلاً برقم بالوحدات الصغيرة على سبيل المثال، 1 دولار أمريكي = 1,000,000 وحدة صغيرة
  • {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 الحالية، أرسِل طلب GET باستخدام طريقة accounts.shippingSettings.getShippingSettings.

  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}: الرمز البريدي مثلاً، 94043
  • {REGION_CODE}: رمز بلد CLDR على سبيل المثال، "US"

في ما يلي نموذج ردّ من طلب ناجح:

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

ضبط مجموعات الرموز البريدية

استخدِم واجهة برمجة التطبيقات الفرعية Accounts لإدارة المناطق، التي تُعرف باسم postalCodeGroups، لـ حساب على Merchant Center.

مورد postalCodeGroups هو قائمة بالتجميعات، حيث يكون كل تجميع عبارة عن قائمة برموز بريدية متعددة تشترك في إعدادات الشحن نفسها.

استخدِم Merchant API لإدارة postalCodeGroups على النحو التالي:

  1. أرسِل طلب get لاسترداد جميع shippingsettings وpostalCodeGroups.

  2. انسخ shippingsettings من طلب get إلى طلب update.

  3. إذا كنت لا تستخدم تصنيفات وقت النقل في خدمة الشحن، أزِل الإدخال التالي من نص الطلب.

        "transitTimeLabels": [
        "all other labels"
    ],
    
  4. املأ المناطق التي تريد استخدامها في قسم postalCodeGroups لطلب update.

  5. أرسِل طلب update باستخدام موارد 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 لإنشاء سياسات الإرجاع على الإنترنت أو عرضها أو تعديلها أو حذفها باستخدام السمات التالية:

لا تتطلب المنتجات التي يتم بيعها من خلال "إعلانات Shopping" أو البيانات المجانية عنوان إرجاع.

لمزيد من التفاصيل، اطّلِع على مقالة إعداد سياسات الإرجاع لإعلانات Shopping والبيانات المجانية.

يمكنك استخدام returnpolicyonline.create لإضافة سياسة إرجاع. يتضمّن الردّ السياسة المعدَّلة.

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