Tổng quan về chế độ cài đặt thông tin vận chuyển

Tài nguyên ShippingSettings cho phép bạn truy xuất và cập nhật chế độ cài đặt thông tin vận chuyển của tài khoản.

Google có thể tự động cập nhật thời gian giao hàng dự kiến cho một số sản phẩm. Để biết thêm thông tin, hãy xem bài viết Bật tính năng cải thiện tự động.

Đọc, ghi hoặc cập nhật chế độ cài đặt thông tin vận chuyển

Để sử dụng dịch vụ vận chuyển Merchant API, hãy làm như sau:

  1. Tạo yêu cầu GET để truy xuất toàn bộ chế độ cài đặt thông tin vận chuyển của tài khoản.
  2. Sửa đổi chế độ cài đặt thông tin vận chuyển.
  3. Tạo yêu cầu INSERT với chế độ cài đặt thông tin vận chuyển đã sửa đổi.

Etag

Etag là một mã thông báo được mã hoá để tránh các bản cập nhật không đồng bộ. Etag thay đổi khi có bất kỳ dữ liệu nào trong chế độ cài đặt thông tin vận chuyển thay đổi. Người dùng cần sao chép etag mà họ nhận được từ yêu cầu GET vào nội dung yêu cầu INSERT.

Nếu dữ liệu chế độ cài đặt thông tin vận chuyển thay đổi giữa yêu cầu GET và yêu cầu INSERT, bạn sẽ nhận được thông báo lỗi yêu cầu một yêu cầu GET khác để truy xuất mã thông báo etag mới nhất. Bạn cần gọi yêu cầu GET để truy xuất mã thông báo etag mới và sao chép mã thông báo etag mới vào nội dung yêu cầu INSERT.

Thêm chế độ cài đặt thông tin vận chuyển

Sử dụng shippingsettings.insert để thêm hoặc cập nhật chế độ cài đặt thông tin vận chuyển cho tài khoản. Dưới đây là yêu cầu mẫu cập nhật maxTransitDays thành 7 cho Dịch vụ vận chuyển có tên là GSA Shipping - Free Ship Over $49.99 trong tài khoản 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"
        }
      ]
    }
  ]
}

Dưới đây là mẫu mà bạn có thể dùng để chèn chế độ cài đặt thông tin vận chuyển:

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

Thiết lập kho hàng

Mẫu JSON sau đây cho biết cách bạn có thể sử dụng dịch vụ cài đặt thông tin vận chuyển của Merchant để quản lý thông tin kho hàng cho tài khoản 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"
      ]
    }
  }
]

Thay thế nội dung sau:

  • {street_address}: Phần địa chỉ ở cấp đường phố của kho hàng.
  • {city}: Thành phố, thị trấn hoặc xã nơi kho hàng toạ lạc.
  • {administrative_area}: Đơn vị hành chính của quốc gia. Ví dụ: tiểu bang.
  • {postal_code}: Mã bưu chính.
  • {region_code}: Mã quốc gia ở dạng chuỗi.
  • {minutes}: Phần phút của thời hạn đặt hàng mà trước đó một đơn đặt hàng phải được thực hiện để kho hàng xử lý trong cùng một ngày.
  • {handling_days}: Số ngày mà kho hàng này cần để đóng gói và vận chuyển một mặt hàng.

Tài nguyên warehouses là danh sách các kho hàng. Bạn có thể tham chiếu đến từng kho hàng theo thời gian giao hàng dựa trên kho hàng của dịch vụ vận chuyển thông qua warehouse.name.

Quản lý kho hàng

Dưới đây là cách sử dụng Merchant API để quản lý kho hàng:

  1. Tạo yêu cầu GET để truy xuất tất cả shippingsettings và kho hàng hiện có.
  2. Sao chép shippingsettings từ yêu cầu GET sang yêu cầu UPDATE.

  3. Điền thông tin về kho hàng nếu bạn muốn sử dụng kho hàng trong phần warehouses cho yêu cầu INSERT.

  4. Tạo yêu cầu UPDATE chứa các tài nguyên shippingsettingswarehouses.

Dưới đây là nội dung yêu cầu INSERT mẫu có kho hàng cho Kho hàng 1 được cập nhật từ New York thành 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"
        }
      ]
    }
  ]
}

Thêm dịch vụ giao hàng trong ngày

Bạn có thể sử dụng Content API for Shopping để thiết lập các dịch vụ vận chuyển giao hàng trong ngày nếu có kho hàng tại địa phương. Các dịch vụ vận chuyển giao hàng trong ngày có local_deliveryshipment_type. Tất cả các dịch vụ vận chuyển local_delivery đều được coi là dịch vụ giao hàng trong ngày tại thời điểm này.

Bạn không thể thay đổi thông tin delivery_time cho dịch vụ giao hàng tại địa phương. Sử dụng shippingsettings.insert để thiết lập dịch vụ giao hàng trong ngày cho các sản phẩm trong kho hàng tại địa phương.

Dưới đây là nội dung yêu cầu mẫu thêm dịch vụ giao hàng trong ngày cho tất cả cửa hàng trong tài khoản của bạn:

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

Thêm dịch vụ giao hàng vào ngày tiếp theo

Theo mặc định, các đơn đặt hàng được thực hiện sau thời hạn đặt hàng giao hàng trong ngày sẽ được lên lịch giao hàng vào ngày tiếp theo. Để tắt dịch vụ giao hàng vào ngày tiếp theo, hãy đặt trường no_delivery_post_cutoff thành true. Nếu bạn tắt dịch vụ giao hàng vào ngày tiếp theo, thì các dịch vụ vận chuyển của bạn chỉ hiển thị trước thời hạn đặt hàng mỗi ngày.

Dịch vụ giao hàng vào ngày tiếp theo chỉ có khi shipment_typelocal_delivery.

Tìm hiểu thêm

Để tìm hiểu về cách di chuyển từ Content API for Shopping, hãy xem bài viết Di chuyển quy trình quản lý chế độ cài đặt thông tin vận chuyển.