La ressource
ShippingSettings
vous permet de récupérer et de mettre à jour les paramètres de livraison de votre compte.
Google peut automatiquement mettre à jour le délai de livraison estimé pour certains produits. Pour en savoir plus, consultez la section Activer les améliorations automatiques.
Lire, écrire ou mettre à jour les paramètres de livraison
Pour utiliser le service de livraison de l'API Merchant, procédez comme suit :
- Effectuez une requête
GETpour récupérer l'ensemble des paramètres de livraison de votre compte. - Modifiez les paramètres de livraison.
- Effectuez une requête
INSERTavec les paramètres de livraison modifiés.
ETag
L'ETag est un jeton encodé qui permet d'éviter les mises à jour asynchrones. L'ETag change lorsque l'une des données des paramètres de livraison est modifiée. Les utilisateurs doivent copier l'ETag qu'ils ont obtenu à partir de la requête GET dans le corps de la requête INSERT.
Si les données des paramètres de livraison sont modifiées entre la requête GET et la requête INSERT, un message d'erreur s'affiche et vous demande d'effectuer une autre requête GET pour récupérer le jeton ETag le plus récent. Vous devez appeler la requête GET pour récupérer le nouveau jeton ETag et le copier dans le corps de la requête INSERT.
Ajouter vos paramètres de livraison
Utilisez shippingsettings.insert pour ajouter ou mettre à jour les paramètres de livraison de votre compte. Voici un exemple de requête qui définit maxTransitDays sur 7 pour un
service de livraison appelé GSA Shipping - Free Ship Over $49.99 pour le compte
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"
}
]
}
]
}
Voici un exemple que vous pouvez utiliser pour insérer un paramètre de livraison :
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()
Définir des entrepôts
L'exemple JSON suivant montre comment utiliser le service de paramètres de livraison Merchant pour gérer les informations sur les entrepôts de votre compte 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"
]
}
}
]
Remplacez les éléments suivants :
- {street_address} : partie de l'adresse de l'entrepôt au niveau de la rue.
- {city} : ville, village ou commune où se trouve l'entrepôt.
- {administrative_area} : subdivision administrative du pays. Par exemple, l'État.
- {postal_code} : code postal.
- {region_code} : code pays sous forme de chaîne.
- {minutes} : partie en minutes de l'heure limite jusqu'à laquelle une commande doit être passée pour être traitée le jour même par l'entrepôt.
- {handling_days} : nombre de jours nécessaires à cet entrepôt pour emballer et expédier un article.
La ressource warehouses est une liste d'entrepôts. Chaque entrepôt peut être référencé par le délai de livraison basé sur l'entrepôt du service de livraison via warehouse.name.
Gérer vos entrepôts
Voici comment utiliser l'API Merchant pour gérer vos entrepôts :
- Effectuez une requête
GETpour récupérer tous vosshippingsettingset entrepôts existants. Copiez les
shippingsettingsde la requêteGETdans la requêteUPDATE.Renseignez les entrepôts si vous souhaitez les utiliser dans la section
warehousesde la requêteINSERT.Effectuez une requête
UPDATEcontenant les ressourcesshippingsettingsetwarehouses.
Voici un exemple de corps de requête INSERT avec l'entrepôt Warehouse 1 (Entrepôt 1) dont l'adresse est passée de New York à 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"
}
]
}
]
}
Ajouter la livraison le même jour
Content API for Shopping vous permet de configurer des services de livraison le même jour si vous disposez d'un inventaire en magasin. Pour les services de livraison le même jour, la valeur shipment_type est définie sur local_delivery. Actuellement, tous les services de livraison local_delivery sont considérés comme des livraisons le même jour.
Vous ne pouvez pas modifier les informations delivery_time pour les livraisons locales. Utilisez shippingsettings.insert pour configurer la livraison le même jour pour les produits de votre inventaire en magasin.
Voici un exemple de corps de requête qui ajoute un service de livraison le même jour à tous les magasins de votre compte :
{
"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"
}
}
}
]
}
Ajouter la livraison le lendemain
Les commandes passées après l'heure limite pour la livraison le même jour sont programmées pour être livrées le jour suivant par défaut. Pour désactiver la livraison le jour suivant, définissez le champ no_delivery_post_cutoff sur "true". Si vous désactivez la livraison le jour suivant, vos services de livraison ne sont visibles qu'avant l'heure limite pour commander chaque jour.
La livraison le jour suivant n'est disponible que lorsque shipment_type est défini sur local_delivery.
En savoir plus
Pour savoir comment migrer depuis Content API for Shopping, consultez Migrer la gestion des paramètres de livraison.