Tổng quan về Merchant Products API

Trang này giải thích cách bạn có thể tải sản phẩm lên và quản lý sản phẩm bằng cách lập trình. Khi sử dụng Merchant Products API, bạn có thể chèn hoặc cập nhật sản phẩm trong một nguồn dữ liệu, truy xuất sản phẩm từ tài khoản của bạn và xoá sản phẩm khỏi một nguồn dữ liệu.

Merchant Products API chứa hai tài nguyên.

  • productInputs đại diện cho các phần đầu vào của sản phẩm.
  • products đại diện cho các sản phẩm đã xử lý được tạo từ các phần đầu vào.

productInputs có thể là chính và bổ sung, tuỳ thuộc vào việc bạn tải tệp lên nguồn dữ liệu chính hay nguồn dữ liệu bổ sung. Mỗi product sẽ được tạo từ một productInput chính và bất kỳ số lượng productInputs bổ sung nào.

Bạn có thể sử dụng Merchant Products API để tạo danh mục cửa hàng trực tuyến hoặc tại cửa hàng địa phương. Đây là những sản phẩm có thể xuất hiện trên nhiều vị trí mua sắm. Bạn có thể sử dụng tài nguyên productInputs sau khi tạo tài khoản Merchant Center, thiết lập nguồn dữ liệu đầu tiên và sẵn sàng tải một nhóm sản phẩm ban đầu lên thông qua API.

Mặc dù người bán có thể tải sản phẩm lên bằng tệp có tên là PrimaryProductDataSource, nhưng việc tạo và xoá sản phẩm bằng Merchant API có một số ưu điểm. Những lợi thế này bao gồm thời gian phản hồi nhanh hơn và khả năng cập nhật sản phẩm theo thời gian thực mà không cần quản lý các tệp lớn. Có thể mất đến vài giờ để các thay đổi đối với sản phẩm do lệnh gọi API thực hiện xuất hiện trong cơ sở dữ liệu Mua sắm.

Điều kiện tiên quyết

Nếu bạn chưa có nguồn dữ liệu, hãy tạo nguồn dữ liệu bằng Merchant DataSources API hoặc Merchant Center.

Nếu đã tạo một nguồn dữ liệu bằng giao diện người dùng Merchant Center hoặc bằng API, thì bạn có thể sử dụng Merchant Products API để thêm sản phẩm. Nếu bạn đang sử dụng Content API for Shopping để thêm sản phẩm, hãy tham khảo hướng dẫn di chuyển để tìm hiểu cách bắt đầu sử dụng Merchant Products API.

Bạn có trách nhiệm tuân thủ các chính sách về quảng cáo Mua sắmtrang thông tin miễn phí. Quảng cáo Mua sắm có quyền thực thi các chính sách này và phản hồi thích đáng nếu phát hiện nội dung hoặc hành vi vi phạm các chính sách này.

Tài nguyên

Tài nguyên products cho phép bạn truy xuất thông tin sản phẩm từ cơ sở dữ liệu Mua sắm.

Tài nguyên productInput đại diện cho dữ liệu đầu vào mà bạn gửi cho một sản phẩm. Lớp này cũng cung cấp các phương thức cho phép bạn cập nhật hoặc xoá từng thông tin sản phẩm hoặc nhiều thông tin sản phẩm cùng một lúc ở chế độ hàng loạt. Tài nguyên productInput phải có các trường sau:

  • channel: Kênh của sản phẩm.
  • offerId: Giá trị nhận dạng duy nhất của sản phẩm.
  • contentLanguage: Mã ngôn ngữ ISO 639-1 gồm hai chữ cái cho sản phẩm.
  • feedLabel: Nhãn nguồn cấp dữ liệu cho sản phẩm.

Tải dữ liệu đầu vào về sản phẩm lên tài khoản

Để tải dữ liệu đầu vào về sản phẩm lên tài khoản, hãy sử dụng phương thức accounts.productInputs.insert. Bạn phải truyền giá trị nhận dạng duy nhất của nguồn dữ liệu chính hoặc bổ sung.

Yêu cầu mẫu sau đây cho biết cách bạn có thể sử dụng phương thức accounts.productInputs.insert để tải dữ liệu đầu vào về sản phẩm lên tài khoản người bán. Yêu cầu này đặt giá vận chuyển và khu vực, cũng như các thuộc tính tuỳ chỉnh như ngày sản xuất và kích thước.

POST https://merchantapi.googleapis.com/products/v1beta/accounts/{ACCOUNT_ID}/productInputs:insert?dataSource={DATASOURCE}

{
  "name": "{PRODUCT_TITLE}",
  "versionNumber": {VERSION_NUMBER},
  "contentLanguage": "{CONTENT_LANGUAGE}",
  "feedLabel": "{FEED_LABEL}",
  "offerId": "{OFFER_ID}",
  "channel": "ONLINE",
  "attributes": {
    "availability": "in stock",
    "imageLink": "{IMAGE_LINK}",
    "link": "{PRODUCT_LINK}",
    "brand": "{BRAND_NAME}",
    "price": {
      "currencyCode": "{CURRENCY_CODE}",
      "amountMicros": {PRICE}
    },
    "color": "red",
    "productWeight": {
      "value": 320,
      "unit": "g"
    },
    "adult": false,
    "shipping": [
      {
        "country": "GB",
        "price": {
          "amountMicros": {SHIPPING_COST},
          "currencyCode": "{CURRENCY_CODE_SHIPPING}"
        },
        "postalCode": "{SHIPPING_POSTALCODE}",
        "service": "",
        "region": "{SHIPPING_REGION}",
        "maxHandlingTime": "{MAX_HANDLING_TIME}",
        "minHandlingTime": "{MIN_HANDLING_TIME}",
        "maxTransitTime": "{MAX_TRANSIT_TIME}",
        "minTransitTime": "{MIN_TRANSIT_TIME}"
      }
    ],
    "gender": "Female"
  },
  "customAttributes": [
    {
      "name": "size",
      "value": "Large"
    },
    {
      "name": "Date of Manufacturing",
      "value": "2024-05-05"
    }
  ]
}

Thay thế nội dung sau:

  • {ACCOUNT_ID}: Giá trị nhận dạng duy nhất của tài khoản Merchant Center.
  • {DATASOURCE}: Giá trị nhận dạng duy nhất của nguồn dữ liệu. Mã này phải ở định dạng accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID}.
  • {PRODUCT_TITLE}: Tên sản phẩm.
  • {VERSION_NUMBER}: Số phiên bản của sản phẩm. Không bắt buộc.
  • {CONTENT_LANGUAGE}: Mã ngôn ngữ ISO 639-1 gồm hai chữ cái cho sản phẩm. Bắt buộc.
  • {FEED_LABEL}: Mã lãnh thổ CLDR cho vùng mà bạn muốn bán sản phẩm. Nếu giá trị được cung cấp cho feedLabel không hợp lệ, thì trường targetCountry sẽ không được điền.
  • {OFFER_ID}: Giá trị nhận dạng duy nhất của sản phẩm. Bắt buộc.
  • {IMAGE_LINK}: Đường liên kết đến hình ảnh của sản phẩm trên trang web của bạn. Không bắt buộc.
  • {PRODUCT_LINK}: Đường liên kết đến sản phẩm trên trang web của bạn. Không bắt buộc.
  • {CURRENCY_CODE}: Đơn vị tiền tệ của giá bán sử dụng chữ viết tắt gồm ba chữ cái theo ISO 4217. Không bắt buộc.
  • {PRICE}: Giá của sản phẩm được biểu thị dưới dạng số theo micro. Không bắt buộc.
  • {SHIPPING_COST}: Giá vận chuyển cố định được biểu thị dưới dạng số. Không bắt buộc.
  • {SHIPPING_POSTALCODE}: Phạm vi mã bưu chính áp dụng mức phí vận chuyển. Không bắt buộc.
  • {MAX_HANDLING_TIME}: Thời gian xử lý tối đa tính theo ngày làm việc, từ khi nhận được đơn đặt hàng đến khi giao hàng. Không bắt buộc.
  • {MIN_HANDLING_TIME}: Thời gian xử lý tối thiểu tính theo ngày làm việc, từ khi nhận được đơn đặt hàng đến khi giao hàng. Giá trị 0 có nghĩa là đơn đặt hàng được giao trong cùng ngày nhận được đơn đặt hàng. Không bắt buộc.
  • {MAX_TRANSIT_TIME}: Thời gian vận chuyển tối đa tính theo ngày làm việc, từ khi đơn đặt hàng được vận chuyển đến khi đơn đặt hàng được giao. Không bắt buộc.
  • {MIN_TRANSIT_TIME}: Thời gian vận chuyển tối thiểu tính theo ngày làm việc từ khi đơn đặt hàng được vận chuyển đến khi đơn đặt hàng được giao. Giá trị 0 có nghĩa là đơn đặt hàng được giao trong cùng ngày với ngày vận chuyển. Không bắt buộc.

Khi yêu cầu chạy thành công, bạn sẽ thấy phản hồi sau:

{
  "name": "{PRODUCT_NAME}",
  "product": "{PRODUCT_ID}",
  "channel": "ONLINE",
  "offerId": "{OFFER_ID}",
  "contentLanguage": "{CONTENT_LANGUAGE}",
  "feedLabel": "{FEED_LABEL}",
  "versionNumber": "{VERSION_NUMBER}",
  "attributes": {
    "link": "{PRODUCT_LINK}",
    "imageLink": "{IMAGE_LINK}",
    "adult": false,
    "availability": "in stock",
    "brand": "{BRAND_NAME}",
    "color": "red",
    "gender": "Female",
    "price": {
      "amountMicros": "{PRICE}",
      "currencyCode": "{CURRENCY_CODE}"
    },
    "shipping": [
      {
        "price": {
          "amountMicros": "{SHIPPING_COST}",
          "currencyCode": "{CURRENCY_CODE}"
        },
        "country": "{SHIPPING_COUNTRY}",
        "region": "{SHIPPING_REGION}",
        "postalCode": "{SHIPPING_POSTALCODE}",
        "minHandlingTime": "{MIN_HANDLING_TIME}",
        "maxHandlingTime": "{MAX_HANDLING_TIME}",
        "minTransitTime": "{MIN_TRANSIT_TIME}",
        "maxTransitTime": "{MAX_TRANSIT_TIME}"
      }
    ],
    "productWeight": {
      "value": 320,
      "unit": "g"
    }
  },
  "customAttributes": [
    {
      "name": "Size",
      "value": "Large"
    },
    {
      "name": "Date of Manufacturing",
      "value": "2024-05-05"
    }
  ]
}

Truy xuất sản phẩm đã xử lý từ tài khoản của bạn

Để truy xuất một sản phẩm đã xử lý từ tài khoản của bạn, hãy sử dụng phương thức accounts.products.get. Có thể mất vài phút thì sản phẩm đã xử lý mới xuất hiện sau khi chèn.

Bạn có thể lấy tên tài nguyên của sản phẩm đã xử lý từ trường product trong phản hồi của accounts.productInputs.insert

Xoá thông tin sản phẩm khỏi tài khoản

Để xoá dữ liệu đầu vào về sản phẩm khỏi tài khoản, hãy sử dụng phương thức accounts.productInputs.delete. Bạn phải truyền giá trị nhận dạng duy nhất của nguồn dữ liệu chính hoặc bổ sung mà sản phẩm thuộc về để xoá sản phẩm bằng Merchant Products API.

Liệt kê sản phẩm trong tài khoản

Để liệt kê các sản phẩm đã xử lý trong tài khoản, hãy sử dụng phương thức accounts.products.list.