Versandeinstellungen

Mit der Ressource ShippingSettings können Sie die Versandeinstellungen Ihres Kontos abrufen und aktualisieren.

Google kann die voraussichtliche Lieferdauer für einige Produkte automatisch aktualisieren. Weitere Informationen finden Sie unter Automatische Verbesserungen aktivieren.

Versandeinstellungen lesen, schreiben oder aktualisieren

So verwenden Sie den Versanddienst der Merchant API:

  1. Senden Sie eine GET-Anfrage, um die vollständigen Versandeinstellungen Ihres Kontos abzurufen.
  2. Ändern Sie die Versandeinstellungen.
  3. Stellen Sie eine INSERT-Anfrage mit den geänderten Versandeinstellungen.

ETag

„Etag“ ist ein codiertes Token, um asynchrone Aktualisierungen zu vermeiden. Die ETag ändert sich, wenn sich die Daten der Versandeinstellungen ändern. Nutzer müssen die ETag, die sie aus der GET-Anfrage erhalten haben, in den INSERT-Anfragetext kopieren.

Wenn sich die Daten der Versandeinstellungen zwischen der GET-Anfrage und der INSERT-Anfrage ändern, erhalten Sie eine Fehlermeldung, in der Sie aufgefordert werden, eine weitere GET-Anfrage zu senden, um das aktuelle ETag-Token abzurufen. Sie müssen den GET-Aufruf ausführen, um das neue ETag-Token abzurufen und in den INSERT-Anfragetext zu kopieren.

Versandeinstellungen hinzufügen

Mit shippingsettings.insert können Sie die Versandeinstellungen für Ihr Konto hinzufügen oder aktualisieren. Hier sehen Sie eine Beispielanfrage, mit der die maxTransitDays für den Versanddienst GSA Shipping – Free Ship Over $49.99 unter Konto 10 auf 7 aktualisiert wird.

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

Hier ist ein Beispiel, wie Sie eine Versandeinstellung einfügen können:

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

Warehouses festlegen

Das folgende JSON-Beispiel zeigt, wie Sie mit dem Dienst für Händlereinstellungen für den Versand Lagerinformationen für Ihr Merchant Center-Konto verwalten können:

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

Ersetzen Sie Folgendes:

  • {street_address}: Der Teil der Lageradresse, der sich auf Straßenebene befindet.
  • {city}: Stadt, Gemeinde oder Kommune, in der sich das Lager befindet.
  • {administrative_area}: Die administrative Unterteilung des Landes. Zum Beispiel ein Bundesland.
  • {postal_code}: Die Postleitzahl.
  • {region_code}: Der Ländercode als String.
  • {minutes}: Minutenanteil des Annahmeschlusses, bis zu dem eine Bestellung aufgegeben werden muss, damit sie noch am selben Tag vom Lager bearbeitet wird.
  • {handling_days}: Die Anzahl der Tage, die dieses Lager benötigt, um einen Artikel zu verpacken und zu versenden.

Die warehouses-Ressource ist eine Liste von Warehouses. Auf jedes Lager kann über die lagerbasierte Lieferdauer des Versandservices mit warehouse.name verwiesen werden.

Warehouses verwalten

So verwalten Sie Ihre Lager mit der Merchant API:

  1. Stellen Sie eine GET-Anfrage, um alle vorhandenen shippingsettings und Warehouses abzurufen.
  2. Kopieren Sie die shippingsettings aus der GET-Anfrage in die UPDATE-Anfrage.

  3. Füllen Sie die Data Warehouses aus, wenn Sie sie im Abschnitt warehouses für die INSERT-Anfrage verwenden möchten.

  4. Stellen Sie eine UPDATE-Anfrage, die shippingsettings- und warehouses-Ressourcen enthält.

Hier sehen Sie ein Beispiel für einen INSERT-Anfragetext, in dem das Warehouse für Warehouse 1 von New York nach Mountain View aktualisiert wird:

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

Lieferung am selben Tag hinzufügen

Sie können die Content API for Shopping verwenden, um Versandservices für die Lieferung am selben Tag zu konfigurieren, wenn Sie lokales Inventar haben. Versandservices für die Lieferung am selben Tag haben local_delivery als shipment_type. Alle local_delivery-Versandservices gelten derzeit als Lieferungen am selben Tag.

Sie können die delivery_time-Informationen für lokale Lieferungen nicht ändern. Mit shippingsettings.insert können Sie die Lieferung am selben Tag für Ihre Produkte mit lokalem Inventar einrichten.

Hier ist ein Beispiel für einen Anfragetext, mit dem allen Geschäften in Ihrem Konto ein Dienst für die Lieferung am selben Tag hinzugefügt wird:

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

Lieferung am nächsten Tag hinzufügen

Bestellungen, die nach dem Annahmeschluss für die Lieferung am selben Tag eingehen, werden standardmäßig für die Lieferung am nächsten Tag geplant. Wenn Sie die Lieferung am nächsten Tag deaktivieren möchten, setzen Sie das Feld no_delivery_post_cutoff auf „true“. Wenn Sie die Lieferung am nächsten Tag deaktivieren, sind Ihre Versandservices nur vor dem täglichen Annahmeschluss sichtbar.

Die Lieferung am nächsten Tag ist nur verfügbar, wenn shipment_type local_delivery ist.

Weitere Informationen

Weitere Informationen zur Migration von der Content API for Shopping