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ę
INSERTz 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
shippingsettingsi magazyny, wyślijGET. Skopiuj
shippingsettingsz prośbyGETdo prośbyUPDATE.Wypełnij pola z danymi o magazynach, jeśli chcesz ich użyć w sekcji
warehousesprośbyINSERT.Prześlij żądanie
UPDATEzawierające zasobyshippingsettingsiwarehouses.
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.