O recurso
ShippingSettings
permite recuperar e atualizar as configurações de frete da sua conta.
O Google pode atualizar automaticamente o tempo de entrega estimado de alguns produtos. Para mais informações, consulte Ativar melhorias automáticas.
Ler, gravar ou atualizar as configurações de frete
Para usar o serviço de frete da API Merchant, faça o seguinte:
- Faça uma solicitação
GET
para extrair as configurações de frete completas da sua conta. - Modifique as configurações de frete.
- Faça uma solicitação
INSERT
com as configurações de frete modificadas.
ETag
A ETag é um token codificado para evitar atualizações assíncronas. O etag muda quando
qualquer um dos dados das configurações de frete muda. Os usuários precisam copiar o etag
obtido da solicitação GET
para o corpo da solicitação INSERT
.
Se os dados das configurações de frete mudarem entre a solicitação GET
e a INSERT
, você vai receber uma mensagem de erro solicitando outra solicitação GET
para
extrair o token etag mais recente. É necessário chamar a solicitação GET
para
extrair o novo token etag e copiá-lo para o corpo da solicitação
INSERT
.
Adicionar as configurações de frete
Use shippingsettings.insert
para adicionar ou atualizar as configurações de frete da sua
conta. Confira um exemplo de solicitação que atualiza o maxTransitDays
para 7 em um serviço de frete chamado GSA Shipping - Free Ship Over $49.99, na conta 10.
POST https://merchantapi.googleapis.com/accounts/v1beta/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"
}
]
}
]
}
Confira um exemplo que você pode usar para inserir uma configuração de frete:
Python
from examples.authentication import configuration
from examples.authentication import generate_user_credentials
from google.shopping.merchant_accounts_v1beta import GetShippingSettingsRequest
from google.shopping.merchant_accounts_v1beta 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()
Definir armazéns
O exemplo de JSON abaixo mostra como usar o serviço de configurações de frete do comerciante para gerenciar informações de depósito na sua conta de comerciante:
"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"
]
}
}
]
Substitua:
- {street_address}: parte do endereço do armazém no nível da rua.
- {city}: cidade, município ou comuna onde o depósito está localizado.
- {administrative_area}: a subdivisão administrativa do país. Por exemplo, um estado.
- {postal_code}: o código postal ou CEP.
- {region_code}: o código do país em string.
- {minutes}: minutos do horário limite até o qual um pedido precisa ser feito para ser processado no mesmo dia pelo depósito.
- {handling_days}: o número de dias necessários para que esse armazém embale e envie um item.
O recurso warehouses
é uma lista de armazéns. Cada depósito pode ser
referenciado pelo tempo de entrega do depósito do serviço de frete usando
warehouse.name
.
Gerenciar seus armazéns
Saiba como usar a API Merchant para gerenciar seus armazéns:
- Faça uma solicitação
GET
para recuperar todos osshippingsettings
e armazém. Copie o
shippingsettings
da solicitaçãoGET
para a solicitaçãoUPDATE
.Preencha os armazéns se quiser usá-los na seção
warehouses
da solicitaçãoINSERT
.Faça uma solicitação
UPDATE
que contenha recursosshippingsettings
ewarehouses
.
Confira um exemplo de corpo de solicitação INSERT
com o warehouse para Warehouse 1 atualizado
de Nova York para 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"
}
]
}
]
}
Adicionar entrega no mesmo dia
Se você tiver um inventário local, use a API Content for Shopping para configurar serviços de frete com entrega no mesmo dia. Os serviços de frete com entrega no mesmo dia têm
local_delivery
como shipment_type
. No momento, todos os serviços de envio
local_delivery
são considerados entregas no mesmo dia.
Não é possível mudar as informações de delivery_time
para entregas locais. Use
shippingsettings.insert
para configurar a entrega no mesmo dia para os produtos do seu inventário
local.
Confira um exemplo de corpo de solicitação que adiciona um serviço de entrega no mesmo dia a todas as lojas da sua conta:
{
"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"
}
}
}
]
}
Adicionar entrega no dia seguinte
Por padrão, os pedidos feitos após o horário limite para entrega no mesmo dia são programados para entrega no dia seguinte. Para desativar a entrega no dia seguinte, defina o
campo no_delivery_post_cutoff
como verdadeiro. Se você desativar a entrega no dia seguinte, seus
serviços de frete só vão aparecer antes do horário limite de cada dia.
A entrega no dia seguinte só está disponível quando o shipment_type
é
local_delivery
.
Saiba mais
Para saber como migrar da API Content for Shopping, consulte Migrar o gerenciamento de configurações de frete.