Product Data Format
ACP’s product data model has two layers: Product (the item) and Variant (specific SKUs). Each Product must contain at least one Variant.2.1 Feed Header (Data Source Identifier)
Every data file or API call must include a Feed Header identifying the data source:| Field | Type | Required | Description |
|---|---|---|---|
feed_id | string | Yes | Unique identifier for the data feed |
account_id | string | Yes | Merchant account ID |
target_merchant | string | Yes | Target merchant identifier |
target_country | string | Yes | Target country (ISO 3166-1 alpha-2, e.g., “US”, “GB”) |
2.2 Product Object
| Field | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Unique product identifier — must remain stable throughout its lifecycle |
title | string | No | Product title |
description | Description | No | Product description (supports multiple formats) |
url | URI string | No | Product page URL |
media | Media[] | No | Product images/videos |
variants | Variant[] | Yes | At least 1 variant |
2.3 Variant Object
Each Variant represents a specific configuration of a product (e.g., a color/size combination):| Field | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Unique variant identifier, must be stable |
title | string | Yes | Variant title |
description | Description | No | Variant-specific description |
url | URI string | No | Variant-specific page URL |
barcodes | Barcode[] | No | Barcodes (GTIN, etc.) |
price | Price | No | Current selling price |
list_price | Price | No | Original / strikethrough price |
unit_price | UnitPrice | No | Unit price (by weight/volume, etc.) |
availability | Availability | No | Stock status |
categories | Category[] | No | Product categories |
condition | string[] | No | Product condition: new or secondhand |
variant_options | VariantOption[] | No | Specification options (color, size, etc.) |
media | Media[] | No | Variant-specific images (first one is the primary image) |
seller | Seller | No | Seller information (for marketplace merchants) |
2.4 Price Object
All prices use ISO 4217 minor currency units (cents):| Field | Type | Required | Constraint |
|---|---|---|---|
amount | integer | Yes | Greater than or equal to 0, in minor currency units |
currency | string | Yes | ISO 4217 three-letter code (e.g., “USD”, “EUR”) |
7999 in ACP. Japanese yen and other zero-decimal currencies use the face value directly.
2.5 Description Object
Provide at least one format. Plain text is recommended:| Field | Type | Description |
|---|---|---|
plain | string | Plain text format (recommended) |
html | string | HTML format |
markdown | string | Markdown format |
2.6 Availability Object
| Field | Type | Values |
|---|---|---|
available | boolean | true/false |
status | string | in_stock / backorder / preorder / out_of_stock / discontinued |
is_eligible_search=false or omit the product from the next full catalog snapshot.
2.7 Media Object
| Field | Type | Required |
|---|---|---|
type | string | Yes (image or video) |
url | URI string | Yes |
alt_text | string | No |
width | integer | No (pixels) |
height | integer | No (pixels) |
type: "image" will be used as the primary image displayed by ChatGPT.
2.8 Category Object
| Field | Type | Description |
|---|---|---|
value | string | Category name |
taxonomy | string | Classification system: merchant / google_product_category / shopify |
- merchant: Merchant-defined custom categories
- google_product_category: Google Product Category standard
- shopify: Shopify category standard
2.9 VariantOption Object
Used to describe user-facing specification dimensions of a variant:2.10 Seller Object (for Marketplace Merchants)
| Field | Type | Description |
|---|---|---|
name | string | Seller name |
links | Link[] | Seller-related links |
type enum: privacy_policy / terms_of_service / refund_policy / shipping_policy / faq
Use durable public URLs: Seller links must be stable, long-lived public URLs.
2.11 Barcode Object
2.12 Complete Product Example
Next chapter: File Upload Integration — SFTP push specifications, file format requirements, and sharding strategy