Zasób ShippingSettings
umożliwia pobieranie i aktualizowanie ustawień dostawy na koncie.
Google może automatycznie aktualizować przewidywany czas dostawy niektórych produktów. Więcej informacji znajdziesz w artykule Włączanie automatycznych ulepszeń.
odczytywanie, zapisywanie i aktualizowanie ustawień dostawy;
Aby korzystać z usługi dostawy w Merchant API, wykonaj te czynności:
- Aby pobrać pełne ustawienia dostawy z konta, wyślij żądanie
GET
. - Zmień ustawienia dostawy.
- Prześlij prośbę
INSERT
z zmienionymi ustawieniami dostawy.
ETag
Etag to zakodowany token, który zapobiega asynchronicznym aktualizacjom. Etag zmienia się, gdy zmieni się dowolne ustawienie dostawy. Użytkownicy muszą skopiować tag otrzymany z prośby GET
do treści prośby INSERT
.
Jeśli dane ustawień dostawy zmienią się między żądaniem GET
a INSERT
, otrzymasz komunikat o błędzie z prośbą o kolejne żądanie GET
w celu pobrania najnowszego tokenu e-tag. Aby pobrać nowy token eTag, musisz wywołać żądanie GET
i skopiować nowy token eTag do treści żądania INSERT
.
Dodawanie ustawień dostawy
Aby dodać lub zaktualizować ustawienia dostawy na koncie, kliknij shippingsettings.insert
. Oto przykładowa prośba, która aktualizuje wartość parametru maxTransitDays
na 7 w przypadku usługi dostawy o nazwie GSA Shipping – bezpłatna dostawa przy zamówieniach powyżej 49,99 USD 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ładowy kod, który możesz użyć do wstawienia 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
Ten przykładowy dokument JSON pokazuje, jak za pomocą usługi ustawień dostawy dla sprzedawców możesz 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 odpowiadająca ulicy.
- {city}: miasto lub gmina, w której znajduje się magazyn.
- {administrative_area}: jednostka administracyjna kraju. Na przykład stan.
- {postal_code}: kod pocztowy.
- {region_code}: kod kraju w postaci ciągu znaków.
- {minutes}: minuty stanowiące część ostatniego terminu, do którego należy złożyć zamówienie, aby zostało ono przetworzone tego samego dnia przez magazyn.
- {handling_days}: liczba dni potrzebnych magazynowi na zapakowanie i wysłanie produktu.
Zasób warehouses
to lista magazynów. Każde centrum danych może być określane przez czas dostawy na podstawie centrum danych usługi dostawy za pomocą funkcji warehouse.name
.
Zarządzanie magazynami
Oto jak zarządzać magazynami za pomocą interfejsu Merchant API:
- Aby pobrać wszystkie istniejące
shippingsettings
i magazyny, wyślijGET
. Skopiuj
shippingsettings
z prośbyGET
do prośbyUPDATE
.Wypełnij pola z danymi o magazynach, jeśli chcesz ich użyć w sekcji
warehouses
prośbyINSERT
.Prześlij żądanie
UPDATE
zawierające zasobyshippingsettings
iwarehouses
.
Oto przykładowy INSERT
z danymi o hurtowni Warehouse 1 z aktualizowaną lokalizacją z Nowego Jorku na 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"
}
]
}
]
}
Dodaj dostawę 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
. Obecnie wszystkie usługi dostawy local_delivery
są uznawane za dostawy tego samego dnia.
Nie możesz zmienić informacji delivery_time
w przypadku dostaw lokalnych. Aby skonfigurować dostawę tego samego dnia dla produktów z lokalnego asortymentu, użyj opcji shippingsettings.insert
.
Oto przykładowy tekst żądania, który 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"
}
}
}
]
}
Dodaj dostawę następnego dnia
Zamówienia złożone po ostatecznym terminie dostawy tego samego dnia są domyślnie planowane do dostawy 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, usługi dostawy będą widoczne tylko przed ostatecznym terminem każdego dnia.
Dostawa następnego dnia jest dostępna tylko wtedy, gdy shipment_type
to
local_delivery
.
Więcej informacji
Więcej informacji o migracji z Content API for Shopping znajdziesz w artykule Przenoszenie zarządzania ustawieniami dostawy.