Kargo ayarlarına genel bakış

ShippingSettings kaynağı, hesabınızın kargo ayarlarını almanıza ve güncellemenize olanak tanır.

Google, bazı ürünlerin tahmini teslimat süresini otomatik olarak güncelleyebilir. Daha fazla bilgi için Otomatik iyileştirmeleri etkinleştirme başlıklı makaleyi inceleyin.

Kargo ayarlarını okuma, yazma veya güncelleme

Merchant API kargo hizmetini kullanmak için aşağıdakileri yapın:

  1. Hesabınızın kargo ayarlarının tamamını almak için GET isteğinde bulunun.
  2. Kargo ayarlarını değiştirin.
  3. Değiştirilen kargo ayarlarıyla INSERT isteğinde bulunun.

Etag

Etag, eşzamansız güncellemeleri önlemek için kodlanmış bir jetondur. Kargo ayarları verilerinden herhangi biri değiştiğinde etag değişir. Kullanıcıların GET isteğinden aldıkları etag'i INSERT istek gövdesine kopyalaması gerekir.

GET isteği ile INSERT isteği arasında kargo ayarları verileri değişirse en son etag jetonunu almak için başka bir GET isteği göndermenizi isteyen bir hata mesajı alırsınız. Yeni etag jetonunu almak için GET isteğini çağırmanız ve yeni etag jetonunu INSERT isteği gövdesine kopyalamanız gerekir.

Kargo ayarlarınızı ekleme

Hesabınızın kargo ayarlarını eklemek veya güncellemek için shippingsettings.insert simgesini kullanın. Aşağıda, 10 numaralı hesapta GSA Shipping - Free Ship Over $49.99 adlı bir kargo hizmeti için maxTransitDays değerini 7 olarak güncelleyen örnek bir istek verilmiştir.

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

Kargo ayarı eklemek için kullanabileceğiniz bir örneği aşağıda bulabilirsiniz:

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

Depo ayarlama

Aşağıdaki JSON örneğinde, Merchant Center hesabınızın depo bilgilerini yönetmek için Merchant Shipping ayarları hizmetini nasıl kullanabileceğiniz gösterilmektedir:

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

Aşağıdakini değiştirin:

  • {street_address}: Deponun adresinin sokak düzeyindeki kısmı.
  • {city}: Deponun bulunduğu şehir, kasaba veya komün.
  • {administrative_area}: Ülkenin idari alt bölümü. Örneğin, bu bir eyalet olabilir.
  • {postal_code}: Posta kodu.
  • {region_code}: Dizedeki ülke kodu.
  • {minutes}: Siparişin aynı gün içinde depoda işleme alınabilmesi için verilmesi gereken son sipariş saatinin dakika kısmı.
  • {handling_days}: Bu deponun bir öğeyi paketleyip göndermesi için gereken gün sayısı.

warehouses kaynağı, depoların listesidir. Her depo, warehouse.name aracılığıyla kargo hizmetinin depoya dayalı teslimat süresiyle belirtilebilir.

Depolarınızı yönetme

Depolarınızı yönetmek için Merchant API'yi nasıl kullanacağınız aşağıda açıklanmıştır:

  1. Mevcut tüm GET ve depolarınızı almak için shippingsettings isteğinde bulunun.
  2. shippingsettings isteğindeki shippingsettings değerini UPDATE isteğine kopyalayın.GET

  3. warehouses bölümünde kullanmak istiyorsanız depoları INSERT isteği için doldurun.

  4. UPDATE ve warehouses kaynaklarını içeren bir UPDATE isteği gönderin.shippingsettings

Depo 1 için New York'tan Mountain View'a güncellenen depo içeren örnek bir INSERT istek gövdesini aşağıda bulabilirsiniz:

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

Aynı gün teslimat ekleme

Yerel envanteriniz varsa aynı gün teslimatlı kargo hizmetlerini yapılandırmak için Content API for Shopping'i kullanabilirsiniz. Aynı gün teslimatlı kargo hizmetlerinin local_delivery olarak shipment_type vardır. Şu anda tüm local_delivery kargo hizmetleri aynı gün teslimat olarak kabul edilmektedir.

Yerel teslimatlar için delivery_time bilgilerini değiştiremezsiniz. Yerel envanter ürünleriniz için aynı gün teslimatı ayarlamak üzere shippingsettings.insert kullanın.

Aşağıda, hesabınızdaki tüm mağazalara aynı gün teslimat hizmeti ekleyen örnek bir istek gövdesi verilmiştir:

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

Ertesi gün teslimat ekleme

Aynı gün teslimat için son sipariş saatinden sonra verilen siparişler varsayılan olarak sonraki gün teslim edilecek şekilde planlanır. Sonraki gün teslimatı devre dışı bırakmak için no_delivery_post_cutoff alanını doğru olarak ayarlayın. Sonraki gün teslimat özelliğini devre dışı bırakırsanız kargo hizmetleriniz her gün yalnızca son sipariş saatinden önce görünür.

Sonraki gün teslimat yalnızca shipment_type olduğunda kullanılabilir. local_delivery

Daha fazla bilgi

Content API for Shopping'den geçiş yapma hakkında bilgi edinmek için Kargo ayarları yönetimini taşıma başlıklı makaleyi inceleyin.