Skip to main content

Product Feed

Introduction

The Product Feed is a GET /products/feed endpoint that you implement on your platform. Simpler calls this endpoint to pull your entire product catalog for synchronization and caching, enabling fast product lookups during checkout.

How is this different from the Products API?

The Products API is called per-checkout to retrieve details for specific products in real time. The Product Feed, on the other hand, is called periodically to sync your full catalog with Simpler. Both endpoints return similar product data, but the feed returns all products at once.

The feed response is a JSON object containing a products array. Each product is either a simple product (a standalone item) or a variable product (a parent product with multiple variations, such as different sizes or colours).

For the full API specification, see the API Reference.


Field Reference

The following table describes all available fields for products in the feed.

FieldRequiredTypeDescriptionExample
idYesstringYour product's unique identifier"123456"
skuYesstringStock Keeping Unit. GTIN/EAN is acceptable if unique across your catalog"NIKE-AM90-BLK-42"
titleYesstringProduct display title"Nike Air Max 90"
descriptionYesstringPlain-text product description"Comfortable running shoe..."
image_urlYesstringPublic URL to product image (HTTPS recommended)"https://mystore.com/img/shoe.jpg"
price_centsYesintegerUnit price in the smallest currency unit (cents)2000 (= EUR 20.00)
shippableYesbooleantrue for physical products, false for virtual/digitaltrue
stockYesintegerExact quantity available. 0 = out of stock. -1 = backorders allowed15
categoriesNostring[]Your store's own category names — no predefined list["Shoes", "Running"]
urlNostringCanonical product page URL on your storefront"https://mystore.com/products/shoe"
Handling Money

Whenever you see the _cents suffix, transform your values to their integer cents equivalent. For example: EUR 20.00 = 2000, EUR 9.99 = 999, EUR 0.50 = 50.


Frequently Asked Questions

Which fields are mandatory?

All fields marked "Required" in the table above: id, sku, title, description, image_url, price_cents, shippable, and stock.

Stock: do you need the exact number, or just "in stock"/"out of stock"?

We need the exact quantity as an integer. Use 0 when the product is out of stock, and a positive number (e.g. 15) for available stock. If your store allows backorders, use -1 to indicate unlimited stock.

Can SKU be the GTIN?

Yes. If you do not maintain a separate SKU, you may use the product's GTIN or EAN as the sku value, as long as it is unique across your entire catalog.

What format is price_cents?

An integer representing the price in the smallest currency unit (cents). For example:

  • EUR 20.00 = 2000
  • EUR 9.99 = 999
  • EUR 150.50 = 15050

Shippable: is it "yes"/"no" or something else?

It is a JSON boolean: true for physical products that require shipping, false for virtual or digital products.

Categories: which are available? Where should we pick from?

There is no predefined list. Use your store's own category names as strings. For example: ["Electronics", "Laptops"] or ["Apparel", "T-Shirts"]. If a product has no categories, omit the field or pass an empty array [].


Complete Example: Simple Product

A simple product is a standalone item with no size/colour variations.

{
"products": [
{
"id": "789012",
"sku": "BASIC-TEE-BLK",
"title": "Basic T-Shirt Black",
"description": "A comfortable everyday cotton t-shirt in black.",
"image_url": "https://www.mystore.com/assets/img/basic-tee-black.jpg",
"stock": 50,
"price_cents": 1999,
"shippable": true,
"categories": ["Apparel", "T-Shirts"],
"url": "https://www.mystore.com/products/basic-tee-black"
}
]
}

Complete Example: Variable Product

A variable product has a parent entry with options (the available attributes like size and colour) and variations (each specific combination with its own stock, price, and SKU).

Variable products

Learn more about how options and variations work in the Product Options & Variations tutorial.

{
"products": [
{
"id": "123456",
"sku": "HEJ-JACKET",
"title": "Hyperion Elements Jacket",
"description": "Lightweight jacket with wind resistance.",
"image_url": "https://www.mystore.com/assets/img/hej-jacket.jpg",
"stock": 3,
"price_cents": 5100,
"shippable": true,
"categories": ["Apparel", "Jackets"],
"url": "https://www.mystore.com/products/hej-jacket",
"options": [
{
"id": "attr_color",
"title": "Color",
"values": [
{ "id": "val_black", "title": "Black" },
{ "id": "val_white", "title": "White" }
]
},
{
"id": "attr_size",
"title": "Size",
"values": [
{ "id": "val_s", "title": "S" },
{ "id": "val_m", "title": "M" }
]
}
],
"variations": [
{
"id": "1234567",
"sku": "HEJ-JACKET-S-BLK",
"title": "Hyperion Elements Jacket - S / Black",
"stock": 2,
"description": "Lightweight jacket with wind resistance. Size S, Black.",
"image_url": "https://www.mystore.com/assets/img/hej-jacket-s-black.jpg",
"price_cents": 5100,
"shippable": true,
"attributes": {
"attr_size": "val_s",
"attr_color": "val_black"
}
},
{
"id": "12345678",
"sku": "HEJ-JACKET-M-BLK",
"title": "Hyperion Elements Jacket - M / Black",
"stock": 3,
"description": "Lightweight jacket with wind resistance. Size M, Black.",
"image_url": "https://www.mystore.com/assets/img/hej-jacket-m-black.jpg",
"price_cents": 5100,
"shippable": true,
"attributes": {
"attr_size": "val_m",
"attr_color": "val_black"
}
},
{
"id": "123456789",
"sku": "HEJ-JACKET-S-WHT",
"title": "Hyperion Elements Jacket - S / White",
"stock": 0,
"description": "Lightweight jacket with wind resistance. Size S, White.",
"image_url": "https://www.mystore.com/assets/img/hej-jacket-s-white.jpg",
"price_cents": 5300,
"shippable": true,
"attributes": {
"attr_size": "val_s",
"attr_color": "val_white"
}
},
{
"id": "1234567890",
"sku": "HEJ-JACKET-M-WHT",
"title": "Hyperion Elements Jacket - M / White",
"stock": 0,
"description": "Lightweight jacket with wind resistance. Size M, White.",
"image_url": "https://www.mystore.com/assets/img/hej-jacket-m-white.jpg",
"price_cents": 5300,
"shippable": true,
"attributes": {
"attr_size": "val_m",
"attr_color": "val_white"
}
}
]
}
]
}

Each variation must include an attributes object mapping the option IDs to the selected value IDs. In this example, the variation HEJ-JACKET-S-BLK maps attr_size -> val_s and attr_color -> val_black, corresponding to the options defined in the parent product.


Full Feed Example

A complete feed response can contain a mix of simple and variable products:

{
"products": [
{
"id": "789012",
"sku": "BASIC-TEE-BLK",
"title": "Basic T-Shirt Black",
"description": "A comfortable everyday cotton t-shirt in black.",
"image_url": "https://www.mystore.com/assets/img/basic-tee-black.jpg",
"stock": 50,
"price_cents": 1999,
"shippable": true,
"categories": ["Apparel", "T-Shirts"],
"url": "https://www.mystore.com/products/basic-tee-black"
},
{
"id": "123456",
"sku": "HEJ-JACKET",
"title": "Hyperion Elements Jacket",
"description": "Lightweight jacket with wind resistance.",
"image_url": "https://www.mystore.com/assets/img/hej-jacket.jpg",
"stock": 3,
"price_cents": 5100,
"shippable": true,
"categories": ["Apparel", "Jackets"],
"url": "https://www.mystore.com/products/hej-jacket",
"options": [
{
"id": "attr_color",
"title": "Color",
"values": [
{ "id": "val_black", "title": "Black" },
{ "id": "val_white", "title": "White" }
]
},
{
"id": "attr_size",
"title": "Size",
"values": [
{ "id": "val_s", "title": "S" },
{ "id": "val_m", "title": "M" }
]
}
],
"variations": [
{
"id": "1234567",
"sku": "HEJ-JACKET-S-BLK",
"title": "Hyperion Elements Jacket - S / Black",
"stock": 2,
"description": "Lightweight jacket with wind resistance. Size S, Black.",
"image_url": "https://www.mystore.com/assets/img/hej-jacket-s-black.jpg",
"price_cents": 5100,
"shippable": true,
"attributes": { "attr_size": "val_s", "attr_color": "val_black" }
},
{
"id": "12345678",
"sku": "HEJ-JACKET-M-BLK",
"title": "Hyperion Elements Jacket - M / Black",
"stock": 3,
"description": "Lightweight jacket with wind resistance. Size M, Black.",
"image_url": "https://www.mystore.com/assets/img/hej-jacket-m-black.jpg",
"price_cents": 5100,
"shippable": true,
"attributes": { "attr_size": "val_m", "attr_color": "val_black" }
},
{
"id": "123456789",
"sku": "HEJ-JACKET-S-WHT",
"title": "Hyperion Elements Jacket - S / White",
"stock": 0,
"description": "Lightweight jacket with wind resistance. Size S, White.",
"image_url": "https://www.mystore.com/assets/img/hej-jacket-s-white.jpg",
"price_cents": 5300,
"shippable": true,
"attributes": { "attr_size": "val_s", "attr_color": "val_white" }
},
{
"id": "1234567890",
"sku": "HEJ-JACKET-M-WHT",
"title": "Hyperion Elements Jacket - M / White",
"stock": 0,
"description": "Lightweight jacket with wind resistance. Size M, White.",
"image_url": "https://www.mystore.com/assets/img/hej-jacket-m-white.jpg",
"price_cents": 5300,
"shippable": true,
"attributes": { "attr_size": "val_m", "attr_color": "val_white" }
}
]
}
]
}