Visão geral das configurações de frete

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:

  1. Faça uma solicitação GET para extrair as configurações de frete completas da sua conta.
  2. Modifique as configurações de frete.
  3. 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:

  1. Faça uma solicitação GET para recuperar todos os shippingsettings e armazém.
  2. Copie o shippingsettings da solicitação GET para a solicitação UPDATE.

  3. Preencha os armazéns se quiser usá-los na seção warehouses da solicitação INSERT.

  4. Faça uma solicitação UPDATE que contenha recursos shippingsettings e 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

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.