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 GETpara recuperar as configurações de frete completas da sua conta.
- Modifique as configurações de frete.
- Faça uma solicitação INSERTcom 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/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"
        }
      ]
    }
  ]
}
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_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()
Definir armazéns
O exemplo de JSON abaixo mostra como usar o serviço de configurações de frete do Merchant para gerenciar informações de depósito na sua conta do 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"
      ]
    }
  }
]
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 GETpara recuperar todos osshippingsettingse armazém.
- Copie o - shippingsettingsda solicitação- GETpara a solicitação- UPDATE.
- Preencha os armazéns se quiser usá-los na seção - warehousesda solicitação- INSERT.
- Faça uma solicitação - UPDATEque contenha recursos- shippingsettingse- warehouses.
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
Os pedidos feitos após o horário limite para entrega no mesmo dia são programados para entrega no dia seguinte por padrão. 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.