El recurso ShippingSettings te permite recuperar y actualizar la configuración de envío de tu cuenta.
Google puede actualizar automáticamente el tiempo de entrega estimado de algunos productos. Para obtener más información, consulta Habilita las mejoras automáticas.
Leer, escribir o actualizar la configuración de envío
Para usar el servicio de envío de la API de Merchant, haz lo siguiente:
- Realiza una solicitud
GETpara recuperar la configuración de envío completa de tu cuenta. - Modifica la configuración de envío.
- Realiza una solicitud
INSERTcon la configuración de envío modificada.
ETag
Etag es un token codificado para evitar actualizaciones asíncronas. La etag cambia cuando se modifica cualquiera de los datos de la configuración de envío. Los usuarios deben copiar la etag que
obtuvieron de la solicitud GET en el cuerpo de la solicitud INSERT.
Si los datos de la configuración de envío cambian entre la solicitud GET y la solicitud INSERT,
recibirás un mensaje de error en el que se te pedirá otra solicitud GET para
recuperar el token de etag más reciente. Debes llamar a la solicitud GET para
recuperar el nuevo token de etag y copiarlo en el cuerpo de la solicitud
INSERT.
Agrega tu configuración de envío
Usa shippingsettings.insert para agregar o actualizar la configuración de envío de tu
cuenta. Esta es una solicitud de ejemplo que actualiza el maxTransitDays a 7 para un
servicio de envío llamado GSA Shipping - Free Ship Over $49.99, en la cuenta
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"
}
]
}
]
}
Aquí tienes un ejemplo que puedes usar para insertar un parámetro de configuración de envío:
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()
Establece almacenes
En el siguiente ejemplo de JSON, se muestra cómo puedes usar el servicio de configuración de envío de Merchant para administrar la información del almacén de tu cuenta de 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"
]
}
}
]
Reemplaza lo siguiente:
- {street_address}: Es la parte de la dirección del almacén que corresponde a la calle.
- {city}: Ciudad, localidad o comuna donde se encuentra el almacén.
- {administrative_area}: Es la subdivisión administrativa del país. Por ejemplo, un estado.
- {postal_code}: Es el código postal.
- {region_code}: Es el código de país en formato de cadena.
- {minutes}: Es la parte de los minutos del horario límite hasta el que se debe realizar un pedido para que el almacén lo procese el mismo día.
- {handling_days}: Es la cantidad de días que tarda este almacén en empaquetar y enviar un artículo.
El recurso warehouses es una lista de almacenes. Se puede hacer referencia a cada almacén
por medio del tiempo de entrega basado en el almacén del servicio de envío a través de
warehouse.name.
Administra tus almacenes
A continuación, se explica cómo usar la API de Merchant para administrar tus almacenes:
- Realiza una solicitud
GETpara recuperar todos tusshippingsettingsy almacenes existentes. Copia el
shippingsettingsde la solicitudGETa la solicitudUPDATE.Completa los almacenes si quieres usarlos en la sección
warehousespara la solicitudINSERT.Realiza una solicitud
UPDATEque contenga recursosshippingsettingsywarehouses.
Este es un cuerpo de solicitud INSERT de ejemplo con el almacén para el Almacén 1 actualizado
de Nueva York a 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"
}
]
}
]
}
Agregar entregas en el mismo día
Puedes usar Content API for Shopping para configurar los servicios de entrega el mismo día si tienes un inventario local. Los servicios de envío con entrega el mismo día tienen local_delivery como su shipment_type. Por el momento, todos los servicios de envío de local_delivery se consideran entregas el mismo día.
No puedes cambiar la información de delivery_time para las entregas locales. Usa
shippingsettings.insert para configurar la entrega el mismo día de tus productos
del inventario local.
Este es un cuerpo de solicitud de ejemplo que agrega un servicio de entrega el mismo día a todas las tiendas de tu cuenta:
{
"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"
}
}
}
]
}
Agregar entrega al día siguiente
Los pedidos que se realicen después del horario límite para la entrega el mismo día se programarán para la entrega
al día siguiente de forma predeterminada. Para desactivar la entrega al día siguiente, establece el campo no_delivery_post_cutoff como verdadero. Si desactivas la entrega al día siguiente, tus
servicios de envío solo serán visibles antes del horario límite de cada día.
La entrega al día siguiente solo está disponible cuando el atributo shipment_type es
local_delivery.
Más información
Para obtener información sobre cómo migrar desde Content API for Shopping, consulta Migra la administración de la configuración de envío.