Panoramica delle impostazioni di spedizione

La risorsa ShippingSettings 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 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 vengono modificati i 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, ricevi 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.

Aggiungere 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 a 7 per un servizio di spedizione chiamato 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 Impostazioni di spedizione di Merchant 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}: la 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 formato stringa.
  • {minutes}: la parte dei minuti dell'orario limite entro il quale deve essere effettuato un ordine per essere elaborato nello stesso giorno dal magazzino.
  • {handling_days}: il numero di giorni necessari a questo magazzino per imballare e spedire un articolo.

La risorsa warehouses è un elenco di magazzini. A ogni magazzino può essere fatto riferimento tramite i tempi di consegna basati sul magazzino del servizio di spedizione tramite warehouse.name.

Gestire i magazzini

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

  1. Invia una richiesta GET per recuperare tutti i tuoi shippingsettings e 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. Invia una richiesta UPDATE che contenga le risorse shippingsettings e warehouses.

Ecco un esempio di corpo della richiesta INSERT con il warehouse Warehouse 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"
        }
      ]
    }
  ]
}

Aggiungere 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 con consegna in giornata hanno local_delivery come shipment_type. Al momento, tutti i servizi di spedizione local_delivery sono 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 tuoi prodotti con 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

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

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

Scopri di più

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