Panoramica delle impostazioni di spedizione

La risorsa ShippingSettings ti consente di recuperare e aggiornare le impostazioni di spedizione del tuo account.

Google può aggiornare automaticamente il tempo di consegna stimato per alcuni prodotti. Per saperne di più, consulta Attivare i miglioramenti automatici.

Leggere, scrivere o aggiornare le impostazioni di spedizione

Per utilizzare il servizio di spedizione dell'API Merchant:

  1. Invia una richiesta a GET per recuperare le impostazioni di spedizione complete del tuo account.
  2. Modifica le impostazioni di spedizione.
  3. Invia una richiesta INSERT con le impostazioni di spedizione modificate.

ETag

L'Etag è un token codificato per evitare aggiornamenti asincroni. L'etag cambia quando viene modificato uno dei dati delle impostazioni di spedizione. Gli utenti devono copiare l'etag ottenuto dalla richiesta GET nel corpo della richiesta INSERT.

Se i dati delle impostazioni di spedizione cambiano tra la richiesta GET e la richiesta INSERT, viene visualizzato un messaggio di errore che richiede un'altra richiesta GET per recuperare il token etag più recente. Devi chiamare la richiesta GET per recuperare il nuovo token etag e copiarlo nel corpo della richiesta INSERT.

Aggiungi le impostazioni di spedizione

Utilizza shippingsettings.insert per aggiungere o aggiornare le impostazioni di spedizione per il tuo account. Ecco una richiesta di esempio che aggiorna maxTransitDays su 7 per un servizio di spedizione denominato GSA Shipping - Free Ship Over $49.99 nell'account 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"
        }
      ]
    }
  ]
}

Ecco un esempio che puoi utilizzare per inserire un'impostazione di spedizione:

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

Impostare i magazzini

Il seguente esempio JSON mostra come utilizzare il servizio di impostazioni di spedizione per i commercianti per gestire le informazioni sul magazzino per il tuo account 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"
      ]
    }
  }
]

Sostituisci quanto segue:

  • {street_address}: parte dell'indirizzo del magazzino a livello stradale.
  • {city}: città, paese o comune in cui si trova il magazzino.
  • {administrative_area}: la suddivisione amministrativa del paese. Ad esempio, uno stato.
  • {postal_code}: il codice postale.
  • {region_code}: il codice paese in stringa.
  • {minutes}: parte in minuti dell'orario limite entro il quale deve essere effettuato un ordine affinché venga elaborato lo stesso giorno dal magazzino.
  • {handling_days}: il numero di giorni necessari per imballare e spedire un articolo in questo magazzino.

La risorsa warehouses è un elenco di magazzini. Ogni magazzino può essere indicato tramite il tempo di consegna basato sul magazzino del servizio di spedizione tramite warehouse.name.

Gestire i magazzini

Ecco come utilizzare l'API Merchant per gestire i magazzini:

  1. Invia una richiesta GET per recuperare tutti i tuoi shippingsettings e i magazzini esistenti.
  2. Copia shippingsettings dalla richiesta GET alla richiesta UPDATE.

  3. Compila i magazzini se vuoi utilizzarli nella sezione warehouses per la richiesta INSERT.

  4. Fai una richiesta UPDATE contenente risorse shippingsettings e warehouses.

Ecco un corpo della richiesta INSERT di esempio con il magazzino per Magazzino 1 aggiornato da New 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"
        }
      ]
    }
  ]
}

Aggiungi la consegna in giornata

Se hai un inventario locale, puoi utilizzare l'API Content for Shopping per configurare i servizi di spedizione con consegna in giornata. I servizi di spedizione in giornata hanno come shipment_type local_delivery. Al momento, tutti i local_delivery servizi di spedizione vengono considerati consegne in giornata.

Non puoi modificare le informazioni delivery_time per le consegne locali. Utilizza shippingsettings.insert per configurare la consegna in giornata per i prodotti del tuo inventario locale.

Ecco un corpo della richiesta di esempio che aggiunge un servizio di consegna in giornata a tutti i negozi per il tuo account:

{
  "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"
        }
      }
    }
  ]
}

Aggiungi la consegna il giorno successivo

Per impostazione predefinita, gli ordini effettuati dopo l'orario limite per la consegna in giornata vengono programmati per la consegna il giorno successivo. Per disattivare la consegna il giorno successivo, imposta il campo no_delivery_post_cutoff su true. Se disattivi la consegna il giorno successivo, i servizi di spedizione sono visibili solo prima dell'orario limite di ogni giorno.

La consegna il giorno successivo è disponibile solo se shipment_type è local_delivery.

Scopri di più

Per scoprire di più sulla migrazione dall'API Content for Shopping, consulta Eseguire la migrazione della gestione delle impostazioni di spedizione.