אפשר להשתמש ב-Accounts sub-API כדי לנהל את הגדרות המשלוח של כל המוצרים בחשבון ושל כל חשבונות המשנה המשויכים.
השינויים שתבצעו בהגדרות המשלוח יחולו על כל המוצרים. כדי לעדכן את המשלוח של מוצרים ספציפיים, משתמשים ב-Merchant Products API.
מידע נוסף זמין במאמר בנושא הגדרת משלוחים.
סקירה כללית של הגדרות משלוח
המשאב
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 [YOUR_ACCESS_TOKEN]' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"name":"SHIPPING_SETTING_NAME","services":[{"serviceName":"SERVICE_NAME","currencyCode":"CURRENCY_CODE","rateGroups":[{"applicableShippingLabels":["SHIPPING_LABEL"],"carrierRates":[{"name":"new","carrier":"CARRIER_NAME","carrierService":"CARRIER_SERVICE","originPostalCode":"ZIPCODE"}],"singleValue":{"flatRate":{"amountMicros":10000000,"currencyCode":"USD"}}}],"deliveryCountries":["COUNTRY_CODE"],"deliveryTime":{"maxHandlingDays":2,"minHandlingDays":1},"minimumOrderValue":{"amountMicros":50000000,"currencyCode":"USD"},"active":false}]}' \
--compressed
מחליפים את מה שכתוב בשדות הבאים:
- ACCOUNT_ID: המזהה הייחודי של חשבון Merchant Center.
- COUNTRY_CODE: קוד CLDR (מאגר נתונים משותף של לוקאלים) של המדינה שבה השירות הזה חל. הערך חייב להיות זהה לערך של המחירים בקבוצות המחירים.
- SERVICE_NAME: שם השירות.
- CARRIER_NAME: שם חברת התובלה. לדוגמה, UPS ו-Fedex.
- CARRIER_SERVICE: השירות הנתמך של חברת התובלה.
הרשימה המלאה של שירותי חברות התובלה זמינה במאמר בנושא תעריף של חברת התובלה (אוסטרליה, גרמניה, בריטניה וארה"ב בלבד).
- 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"
}
הנה דוגמה שאפשר להשתמש בה כדי לעדכן את הגדרות המשלוח של חשבון מסוים באמצעות ספריות הלקוח:
Java
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 [YOUR_ACCESS_TOKEN]' \
--header 'Accept: application/json' \
--compressed
הנה דוגמה שאפשר להשתמש בה כדי לאחזר את פרטי הגדרות המשלוח של חשבון מסוים באמצעות ספריות הלקוח:
Java
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 כדי לנהל את המחסנים:
כדי לאחזר את כל ה-
shippingsettings
ו-warehouses
הקיימים, שולחים בקשתGET
באמצעות ה-methodaccounts.shippingSettings.getShippingSettings
.יוצרים בקשה באמצעות method
account.shippingSettings.insert
. מעתיקים אתshippingsettings
resource מהתגובה של בקשתGET
לבקשת ההוספה.כדי להוסיף מידע על מחסנים באמצעות קריאת הוספה, מאכלסים את הפרטים במשאב
warehouses
בגוף הבקשה.מריצים את בקשת ההוספה.
בדוגמה הבאה של בקשה אפשר לראות איך משתמשים בשיטה 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"
}
הגדרת קבוצות של מיקודים
אפשר להשתמש ב-sub-API של Accounts כדי לנהל אזורים, שנקראים postalCodeGroups, בחשבון Merchant Center.
המשאב postalCodeGroups הוא רשימה של קבוצות, כאשר כל קבוצה היא רשימה של כמה מספרי מיקוד שחולקים את אותן הגדרות משלוח.
אפשר להשתמש ב-Merchant API כדי לנהל את postalCodeGroups באופן הבא:
מבצעים קריאת get כדי לאחזר את כל shippingsettings ו-postalCodeGroups.
מעתיקים את shippingsettings מהקריאה get לקריאה update.
אם אתם לא משתמשים בתוויות של זמן מעבר בשירות המשלוחים, צריך להסיר את הרשומה הבאה מגוף הבקשה.
"transitTimeLabels": [ "all other labels" ],
ממלאים את האזורים שרוצים להשתמש בהם בקטע postalCodeGroups בקריאה update.
מבצעים קריאה ל-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].
הוספה של מדיניות החזרת מוצרים
אם אתם מפרסמים מוצרים באמצעות מודעות שופינג או כרטיסי מוצר אורגניים, אתם יכולים להשתמש במאפיין returnpolicyonline כדי ליצור, להציג, לערוך או למחוק מדיניות החזרת מוצרים אונליין עם המאפיינים הבאים:
- מדינות יעד – איך מגדירים מדיניות החזרת מוצרים במודעות שופינג ובכרטיסי מוצר חינמיים
- עמלות חידוש מלאי
- שיטות החזרה
- מצב הפריט המוחזר
- קטגוריה של סיבת החזרה
- כתובות URL של מדיניות החזרת מוצרים, אפשר לעיין במאמר איך מגדירים מדיניות החזרת מוצרים במודעות שופינג ובכרטיסי מוצר חינמיים.
לא נדרש לציין כתובת להחזרת מוצרים שנמכרים דרך מודעות שופינג או כרטיסי מוצר אורגניים.
פרטים נוספים זמינים במאמר בנושא הגדרת מדיניות החזרת מוצרים במודעות שופינג ובכרטיסי מוצר אורגניים.
אפשר להשתמש בשיטה returnpolicyonline.create כדי להוסיף מדיניות החזרת מוצרים. התשובה כוללת את המדיניות המעודכנת.
POST https://merchantapi.googleapis.com/v1/{ACCOUNT_ID}/returnpolicyonline