शिपिंग की सेटिंग के बारे में खास जानकारी

ShippingSettings संसाधन की मदद से, अपने खाते की शिपिंग सेटिंग देखी और अपडेट की जा सकती हैं.

Google, कुछ प्रॉडक्ट के लिए डिलीवरी के अनुमानित समय को अपने-आप अपडेट कर सकता है. ज़्यादा जानकारी के लिए, अपने-आप होने वाले सुधारों की सुविधा चालू करना लेख पढ़ें.

शिपिंग सेटिंग देखना, उनमें बदलाव करना या उन्हें अपडेट करना

Merchant API की शिपिंग सेवा का इस्तेमाल करने के लिए, यह तरीका अपनाएं:

  1. GET अनुरोध करके, अपने खाते की पूरी शिपिंग सेटिंग वापस पाएं.
  2. शिपिंग सेटिंग में बदलाव करें.
  3. बदली गई शिपिंग सेटिंग के साथ INSERT अनुरोध करें.

Etag

Etag, एनकोड किया गया एक टोकन होता है. इसका इस्तेमाल, एसिंक्रोनस अपडेट से बचने के लिए किया जाता है. शिपिंग सेटिंग के किसी भी डेटा में बदलाव होने पर, etag बदल जाता है. उपयोगकर्ताओं को GET अनुरोध से मिला etag, INSERT अनुरोध के मुख्य हिस्से में कॉपी करना होता है.

अगर GET अनुरोध और INSERT अनुरोध के बीच शिपिंग सेटिंग के डेटा में बदलाव होता है, तो आपको एक गड़बड़ी का मैसेज मिलता है. इसमें, सबसे हाल ही का etag टोकन वापस पाने के लिए, एक और GET अनुरोध करने के लिए कहा जाता है. आपको नया etag टोकन वापस पाने के लिए, GET अनुरोध करना होगा. इसके बाद, नए etag टोकन को INSERT अनुरोध के मुख्य हिस्से में कॉपी करना होगा.

शिपिंग सेटिंग जोड़ना

अपने खाते के लिए शिपिंग सेटिंग जोड़ने या अपडेट करने के लिए, shippingsettings.insert का इस्तेमाल करें. यहां एक सैंपल अनुरोध दिया गया है. इसमें, खाते 10 के तहत GSA Shipping - Free Ship Over $49.99 नाम की शिपिंग सेवा के लिए, maxTransitDays को 7 पर अपडेट किया गया है.

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

शिपिंग सेटिंग जोड़ने के लिए, इस सैंपल का इस्तेमाल किया जा सकता है:

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

वेयरहाउस सेट अप करना

यहां JSON का एक सैंपल दिया गया है. इससे पता चलता है कि Merchant Center खाते के लिए, वेयरहाउस की जानकारी मैनेज करने के लिए, 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"
      ]
    }
  }
]

इनकी जगह ये डालें:

  • {street_address}: वेयरहाउस के पते का स्ट्रीट-लेवल वाला हिस्सा.
  • {city}: वह शहर, कस्बा या कम्यून जहां वेयरहाउस मौजूद है.
  • {administrative_area}: देश का प्रशासनिक सबडिविज़न. उदाहरण के लिए, कोई राज्य.
  • {postal_code}: पिन कोड या ज़िप कोड.
  • {region_code}: स्ट्रिंग में देश का कोड.
  • {minutes}: कटऑफ़ समय का मिनट वाला हिस्सा. इस समय तक ऑर्डर मिलने पर, वेयरहाउस से उसी दिन ऑर्डर प्रोसेस किया जा सकता है.
  • {handling_days}: इस वेयरहाउस से किसी आइटम को पैक और शिप करने में लगने वाले दिनों की संख्या.

warehouses संसाधन, वेयरहाउस की सूची होती है. हर वेयरहाउस को, warehouse.name के ज़रिए, शिपिंग सेवा के वेयरहाउस के आधार पर डिलीवरी के समय से रेफ़र किया जा सकता है.

अपने वेयरहाउस मैनेज करना

Merchant API का इस्तेमाल करके, अपने वेयरहाउस मैनेज करने का तरीका यहां दिया गया है:

  1. GET अनुरोध करके, अपने सभी मौजूदा shippingsettings और वेयरहाउस वापस पाएं.
  2. GET अनुरोध से मिले shippingsettings को, UPDATE अनुरोध में कॉपी करें.

    shippingsettings
  3. अगर आपको INSERT अनुरोध के लिए, warehouses सेक्शन में वेयरहाउस का इस्तेमाल करना है, तो उन्हें भरें.

  4. UPDATE अनुरोध करें. इसमें shippingsettings और warehouses संसाधन शामिल होने चाहिए.

यहां INSERT अनुरोध के मुख्य हिस्से का एक सैंपल दिया गया है. इसमें Warehouse 1 के लिए, न्यूयॉर्क से माउंटेन व्यू तक अपडेट किया गया वेयरहाउस शामिल है:

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

ऑर्डर वाले दिन डिलीवरी की सुविधा जोड़ना

अगर आपके पास स्थानीय इन्वेंट्री है, तो Content API for Shopping का इस्तेमाल करके, ऑर्डर वाले दिन डिलीवरी करने वाली शिपिंग सेवाएं कॉन्फ़िगर की जा सकती हैं. ऑर्डर वाले दिन डिलीवरी करने वाली शिपिंग सेवाओं के लिए, shipment_type के तौर पर local_delivery होता है. फ़िलहाल, local_delivery वाली सभी शिपिंग सेवाओं को, ऑर्डर वाले दिन डिलीवरी करने वाली सेवाएं माना जाता है.

स्थानीय डिलीवरी के लिए, delivery_time की जानकारी में बदलाव नहीं किया जा सकता. स्थानीय इन्वेंट्री वाले प्रॉडक्ट के लिए, ऑर्डर वाले दिन डिलीवरी की सुविधा सेट अप करने के लिए, shippingsettings.insert का इस्तेमाल करें.

यहां अनुरोध के मुख्य हिस्से का एक सैंपल दिया गया है. इसमें, आपके खाते के सभी स्टोर के लिए, ऑर्डर वाले दिन डिलीवरी करने वाली सेवा जोड़ी गई है:

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

अगले दिन डिलीवरी की सुविधा जोड़ना

ऑर्डर वाले दिन डिलीवरी के कटऑफ़ समय के बाद किए गए ऑर्डर, डिफ़ॉल्ट रूप से अगले दिन डिलीवरी के लिए शेड्यूल किए जाते हैं. अगले दिन डिलीवरी की सुविधा बंद करने के लिए, no_delivery_post_cutoff फ़ील्ड को 'सही' पर सेट करें. अगर आपने अगले दिन डिलीवरी की सुविधा बंद कर दी है, तो आपकी शिपिंग सेवाएं हर दिन सिर्फ़ कटऑफ़ समय से पहले दिखेंगी.

अगले दिन डिलीवरी की सुविधा सिर्फ़ तब उपलब्ध होती है, जब shipment_type के तौर पर local_delivery हो.

ज़्यादा जानें

Content API for Shopping से माइग्रेट करने के बारे में जानने के लिए, शिपिंग सेटिंग के मैनेजमेंट को माइग्रेट करना लेख पढ़ें.