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 ulteriori informazioni, consulta Attivare i miglioramenti automatici.

Leggere, scrivere o aggiornare le impostazioni di spedizione

Per utilizzare il servizio di spedizione dell'API Merchant:

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

ETag

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, riceverai 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 del tuo account. Ecco una richiesta di esempio che aggiorna maxTransitDays a 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 warehouse

Il seguente esempio JSON mostra come utilizzare il servizio delle impostazioni di spedizione di Merchant per gestire le informazioni sui warehouse del 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 warehouse a livello di strada.
  • {city}: la città, il paese o il comune in cui si trova il warehouse.
  • {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 warehouse.
  • {handling_days}: il numero di giorni necessari a questo warehouse per imballare e spedire un articolo.

La risorsa warehouses è un elenco di warehouse. A ogni warehouse è possibile fare riferimento tramite il tempo di consegna basato sul warehouse del servizio di spedizione tramite warehouse.name.

Gestire i warehouse

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

  1. Effettua una richiesta GET per recuperare tutti i shippingsettings e i warehouse esistenti.
  2. Copia i shippingsettings dalla richiesta GET alla richiesta UPDATE.

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

  4. Effettua una richiesta UPDATE che contenga le risorse shippingsettings e warehouses.

Ecco un corpo della richiesta INSERT di esempio con il warehouse per 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 prodotti del tuo inventario locale.

Ecco un corpo della richiesta di esempio che aggiunge un servizio di consegna in giornata a tutti i negozi del 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"
        }
      }
    }
  ]
}

Aggiungere 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 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 Migrare la gestione delle impostazioni di spedizione.