Zasób
ShippingSettings
umożliwia pobieranie i aktualizowanie ustawień dostawy na koncie.
Google może automatycznie aktualizować szacowany czas dostawy niektórych produktów. Więcej informacji znajdziesz w artykule Włączanie automatycznych ulepszeń.
Odczytywanie, zapisywanie i aktualizowanie ustawień dostawy
Aby użyć usługi dostawy interfejsu API sprzedawcy, wykonaj te czynności:
- Wyślij
GET, aby pobrać pełne ustawienia dostawy na koncie. - Zmień ustawienia dostawy.
- Wyślij
INSERTżądanie ze zmienionymi ustawieniami dostawy.
ETag
Etag to zakodowany token, który zapobiega asynchronicznym aktualizacjom. Tag ETag zmienia się, gdy zmienią się dane dotyczące ustawień dostawy. Użytkownicy muszą skopiować tag ETag uzyskany z żądania GET do treści żądania INSERT.
Jeśli dane ustawień dostawy zmienią się między żądaniem GET a żądaniem INSERT, otrzymasz komunikat o błędzie z prośbą o kolejne żądanie GET w celu pobrania najnowszego tokena etag. Musisz wywołać żądanie GET, aby pobrać nowy token etag, i skopiować go do treści żądania INSERT.
Dodawanie ustawień dostawy
Użyj ikony shippingsettings.insert, aby dodać lub zaktualizować ustawienia dostawy na koncie. Oto przykładowe żądanie, które aktualizuje wartość maxTransitDays na 7 w przypadku usługi dostawy o nazwie GSA Shipping - Free Ship Over $49.99 na koncie 10.
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"
}
]
}
]
}
Oto przykład, którego możesz użyć do wstawienia ustawienia dostawy:
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()
Ustawianie magazynów
Poniższy przykład JSON pokazuje, jak za pomocą usługi Merchant Shipping Settings zarządzać informacjami o magazynie na koncie 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"
]
}
}
]
Zastąp następujące elementy:
- {street_address}: część adresu magazynu na poziomie ulicy.
- {city}: miasto, miejscowość lub gmina, w której znajduje się magazyn.
- {administrative_area}: podział administracyjny kraju. Na przykład stan.
- {postal_code}: kod pocztowy.
- {region_code}: kod kraju w postaci ciągu znaków.
- {minutes}: część ostatecznego terminu składania zamówień określająca minuty, do których należy złożyć zamówienie, aby zostało ono przetworzone tego samego dnia przez magazyn.
- {handling_days}: liczba dni potrzebnych na spakowanie i wysłanie produktu z tego magazynu.
Zasób warehouses to lista magazynów. Do każdego magazynu można się odwołać za pomocą czasu dostawy opartego na magazynie usługi dostawy za pomocą warehouse.name.
Zarządzanie magazynami
Aby zarządzać magazynami za pomocą interfejsu Merchant API:
- Wyślij
GETżądanie pobrania wszystkich istniejącychshippingsettingsi magazynów. Skopiuj
shippingsettingsz żądaniaGETdo żądaniaUPDATE.Wypełnij magazyny, jeśli chcesz ich użyć w sekcji
warehousesw przypadku żądaniaINSERT.Wyślij żądanie
UPDATE, które zawiera zasobyshippingsettingsiwarehouses.
Oto przykładowy INSERTtreść żądania z hurtownią Hurtownia 1 zaktualizowaną z Nowego Jorku do Mountain View:
{
"services": [
{
"name": "Standard Shipping",
"active": true,
"deliveryCountries": ["US", "UK"],
"currencyCode": "USD",
"deliveryTime": {
"minHandlingDays": 0,
"maxHandlingDays": 1,
"warehouseBasedDeliveryTimes": [
{"carrier": "Fedex"
"carrierService": "ground"
"warehouse": "Warehouse 1"
},
{"carrier": "Fedex"
"carrierService": "2 days"
"warehouse": "Warehouse 2"
}
]
},
"rateGroups": [
{
"singleValue": {
"flatRate": {
"amountMicros": 0,
"currencyCode": "USD"
}
},
"name": "Standard Shipping"
}
],
},
{
"name": "Expedited",
"flatRate": {
"amountMicros": 9990000,
"currencyCode": "USD"
}
},
"name": "Expedited"
}
],
}
],
"warehouses": [
{
"name": "Warehouse1",
"shippingAddress": [
{
"streetAddress": "1111 shoreline street"
"city": "Mountain View",
"administrativeArea": "CA"
}
]
},
{
"name": "Warehouse 2",
"country": "US",
"postalCodeRanges": [
{
"streetAddress": "1111 5th avenue"
"city": "New York",
"administrativeArea": "NY"
}
]
}
]
}
Dodawanie dostawy tego samego dnia
Jeśli masz lokalny asortyment, możesz używać Content API for Shopping do konfigurowania usług dostawy tego samego dnia. Usługi dostawy tego samego dnia mają local_delivery jako shipment_type. Wszystkie usługi dostawy local_delivery są obecnie traktowane jako dostawy tego samego dnia.
W przypadku dostaw lokalnych nie możesz zmienić informacji o delivery_time. Użyj
shippingsettings.insert, aby skonfigurować dostawę tego samego dnia w przypadku produktów z lokalnego asortymentu.
Oto przykładowa treść żądania, która dodaje usługę dostawy tego samego dnia do wszystkich sklepów na Twoim koncie:
{
"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"
}
}
}
]
}
Dodawanie dostawy następnego dnia
Zamówienia złożone po ostatecznym terminie składania zamówień z dostawą tego samego dnia są domyślnie zaplanowane na dostawę następnego dnia. Aby wyłączyć dostawę następnego dnia, ustaw pole no_delivery_post_cutoff na wartość „true”. Jeśli wyłączysz dostawę następnego dnia, Twoje usługi dostawy będą widoczne tylko przed ostatecznym terminem składania zamówień każdego dnia.
Dostawa następnego dnia jest dostępna tylko wtedy, gdy shipment_type jest local_delivery.
Więcej informacji
Więcej informacji o migracji z Content API for Shopping znajdziesz w artykule Migracja zarządzania ustawieniami dostawy.