Descripción general de la configuración de envío

El ShippingSettings recurso 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.

Cómo 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:

  1. Realiza una solicitud GET para recuperar la configuración de envío completa de tu cuenta.
  2. Modifica la configuración de envío.
  3. Realiza una solicitud INSERT con la configuración de envío modificada.

ETag

ETag es un token codificado para evitar actualizaciones asíncronas. El ETag cambia cuando se modifican los datos de la configuración de envío. Los usuarios deben copiar el ETag que obtuvieron de la solicitud GET al 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 solicitará que realices otra solicitud GET para recuperar el token ETag más reciente. Debes llamar a la solicitud GET para recuperar el nuevo token ETag y copiarlo en el cuerpo de la solicitud INSERT.

Cómo agregar 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 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"
        }
      ]
    }
  ]
}

Este es 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()

Cómo configurar 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}: Es la ciudad, el pueblo o la comuna en la que 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 del país en formato de cadena.
  • {minutes}: Es la parte de la hora límite que corresponde a los minutos hasta los 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 empacar y enviar un artículo.

El recurso warehouses es una lista de almacenes. Se puede hacer referencia a cada almacén mediante el tiempo de entrega basado en el almacén del servicio de envío a través de warehouse.name.

Cómo administrar tus almacenes

Para usar la API de Merchant y administrar tus almacenes, haz lo siguiente:

  1. Realiza una solicitud GET para recuperar todos tus shippingsettings y almacenes existentes.
  2. Copia los shippingsettings de la solicitud GET a la solicitud UPDATE.

  3. Completa los almacenes si quieres usarlos en la sección warehouses para la solicitud INSERT.

  4. Realiza una solicitud UPDATE que contenga los recursos shippingsettings y warehouses.

Este es un ejemplo del cuerpo de una solicitud INSERT con el almacén Warehouse 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"
        }
      ]
    }
  ]
}

Cómo agregar la entrega el mismo día

Puedes usar Content API for Shopping para configurar servicios de envío con 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 shipment_type. Por el momento, todos los servicios de envío 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 para tus productos de inventario local.

Este es un ejemplo del cuerpo de una solicitud 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"
        }
      }
    }
  ]
}

Cómo agregar la entrega al día siguiente

Los pedidos realizados después de la hora límite de entrega el mismo día se programan 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 en verdadero. Si desactivas la entrega al día siguiente, tus servicios de envío solo serán visibles antes de la hora límite de cada día.

La entrega al día siguiente solo está disponible cuando el shipment_type es local_delivery.

Más información

Para obtener información sobre la migración desde Content API for Shopping, consulta Cómo migrar la administración de la configuración de envío.