> ## Documentation Index
> Fetch the complete documentation index at: https://docs.usenash.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Product Catalog Examples

> Sample product payloads for common product types to help you structure your catalog data correctly.

This guide provides ready-to-use sample payloads for the [Create or Update Products](/api-reference/store-catalog/create-or-update-products) endpoint (`POST /v1/products`). Each example covers a common product type you'll encounter when building your catalog.

<Note>
  Before sending products, review the required and optional fields in the [Pick and Pack overview](/api-reference/store-catalog/pick-and-pack#product-catalog).
</Note>

***

## Required fields checklist

Every product **must** include the following fields:

| Field         | Type      | Description                                           |
| ------------- | --------- | ----------------------------------------------------- |
| `name`        | string    | Display name of the product                           |
| `categories`  | string\[] | Category hierarchy (e.g., `["Dairy & Eggs", "Milk"]`) |
| `weight`      | number    | Total weight in kilograms                             |
| `dimensions`  | object    | `depth`, `width`, `height` in centimeters             |
| `identifiers` | array     | At least one identifier (e.g., UPC barcode)           |

**Commonly used optional fields:**

| Field                           | Type      | Description                                                    |
| ------------------------------- | --------- | -------------------------------------------------------------- |
| `imageUrls`                     | string\[] | Product image URLs, shown to pickers during fulfillment        |
| `sku`                           | string    | Your internal SKU                                              |
| `externalIdentifier`            | string    | Your system's unique product ID                                |
| `description`                   | string    | Product description                                            |
| `details.sizeSpecification`     | object    | Size value and unit (e.g., `200.0` / `"G"`)                    |
| `details.packSizeSpecification` | object    | Pack description (e.g., `"140g x 4 Pack"`)                     |
| `attributes`                    | string\[] | Special attributes like `"WEIGHTED"` for variable-weight items |

***

## Fixed-weight packaged goods

Standard shelf products sold at a fixed weight — canned goods, boxed items, packaged proteins, etc.

**What to look for:**

* `weight` reflects the total packaged weight (not just the net contents)
* `details.sizeSpecification` captures the labeled net weight (e.g., 200g)
* A single UPC identifier is typically sufficient

```json theme={"dark"}
{
  "products": [
    {
      "name": "Skinless & Boneless Salmon 200g",
      "description": "Skinless & Boneless Salmon 200g",
      "sku": "3001012",
      "externalIdentifier": "3001012",
      "imageUrls": [
        "https://cdn.example.com/products/3001012/main.jpg"
      ],
      "categories": [
        "Pantry",
        "Canned & Prepared Meals",
        "Canned Fish"
      ],
      "weight": 0.225,
      "dimensions": {
        "depth": 3.5,
        "width": 10.2,
        "height": 7.8
      },
      "identifiers": [
        {
          "type": "UPC",
          "value": "9300657100810"
        }
      ],
      "details": {
        "sizeSpecification": {
          "value": 200.0,
          "description": "G"
        }
      }
    }
  ]
}
```

<Tip>
  For fixed-weight items, `weight` (in kg) should include packaging. The `sizeSpecification` value represents the labeled net contents.
</Tip>

***

## Count / piece items (EA)

Products sold by count or number of pieces — tea bags, tablets, individual items, etc.

**What to look for:**

* `details.sizeSpecification` uses `"EA"` (each) as the unit
* `details.packSizeSpecification` describes the pack (e.g., `"25 Pack"`)
* Multiple `imageUrls` can be provided for different product views

```json theme={"dark"}
{
  "products": [
    {
      "name": "English Breakfast Tea Bags 25 Pack",
      "description": "English Breakfast Tea Bags 25 Pack",
      "sku": "3002023",
      "externalIdentifier": "3002023",
      "imageUrls": [
        "https://cdn.example.com/products/3002023/main.jpg",
        "https://cdn.example.com/products/3002023/side.jpg"
      ],
      "categories": [
        "Pantry",
        "Tea & Coffee",
        "Tea"
      ],
      "weight": 0.095,
      "dimensions": {
        "depth": 7.0,
        "width": 8.5,
        "height": 13.0
      },
      "identifiers": [
        {
          "type": "UPC",
          "value": "70177020095"
        }
      ],
      "details": {
        "sizeSpecification": {
          "value": 25.0,
          "description": "EA"
        },
        "packSizeSpecification": {
          "value": "25 Pack",
          "description": "pack size"
        }
      }
    }
  ]
}
```

***

## Multi-pack products

Bundled products containing multiple individual units — yoghurt packs, drink multipacks, snack boxes, etc.

**What to look for:**

* `details.sizeSpecification` reflects the **total** combined weight/volume (e.g., 4 x 140g = 560g)
* `details.packSizeSpecification` describes the bundle (e.g., `"140g x 4 Pack"`)
* Multiple UPC `identifiers` may be needed — one for the outer packaging and one for the individual units
* `weight` is the total weight of the entire multi-pack including packaging

```json theme={"dark"}
{
  "products": [
    {
      "name": "Greek Yoghurt Strawberry 140g x 4 Pack",
      "description": "Greek Yoghurt Strawberry 140g x 4 Pack",
      "sku": "3003034",
      "externalIdentifier": "3003034",
      "imageUrls": [
        "https://cdn.example.com/products/3003034/main.jpg",
        "https://cdn.example.com/products/3003034/back.jpg",
        "https://cdn.example.com/products/3003034/nutrition.jpg"
      ],
      "categories": [
        "Dairy & Eggs",
        "Yoghurt",
        "Multipacks"
      ],
      "weight": 0.612,
      "dimensions": {
        "depth": 7.5,
        "width": 24.0,
        "height": 9.0
      },
      "identifiers": [
        {
          "type": "UPC",
          "value": "9343587000824"
        },
        {
          "type": "UPC",
          "value": "9343587000831"
        }
      ],
      "details": {
        "sizeSpecification": {
          "value": 560.0,
          "description": "G"
        },
        "packSizeSpecification": {
          "value": "140g x 4 Pack",
          "description": "pack size"
        }
      }
    }
  ]
}
```

<Warning>
  For multi-packs, always include the outer package barcode as an identifier. If the individual units have a different barcode, include that as a second identifier — this helps pickers scan either code during fulfillment.
</Warning>

***

## Liquid / volume-based products

Products where the primary measurement is volume — milk, juice, cleaning products, etc.

**What to look for:**

* `details.sizeSpecification` uses volume units (`"ML"` or `"L"`) instead of weight
* `weight` still reflects the physical weight in kg (important for delivery logistics)
* For liquids, weight will typically be close to the volume (1L of water \~ 1kg) plus packaging

```json theme={"dark"}
{
  "products": [
    {
      "name": "Full Cream Milk 2L",
      "description": "Full Cream Milk 2L",
      "sku": "3005034",
      "externalIdentifier": "3005034",
      "imageUrls": [
        "https://cdn.example.com/products/3005034/main.jpg"
      ],
      "categories": [
        "Dairy & Eggs",
        "Milk",
        "Full Cream"
      ],
      "weight": 2.06,
      "dimensions": {
        "depth": 9.5,
        "width": 9.5,
        "height": 27.0
      },
      "identifiers": [
        {
          "type": "UPC",
          "value": "9310073000206"
        }
      ],
      "details": {
        "sizeSpecification": {
          "value": 2.0,
          "description": "L"
        }
      }
    }
  ]
}
```

***

## Size specification units reference

Use the correct `description` value in `sizeSpecification` for your product type:

| Unit        | Description Value | Use For                                   |
| ----------- | ----------------- | ----------------------------------------- |
| Grams       | `"G"`             | Solid food, packaged goods                |
| Kilograms   | `"KG"`            | Bulk or heavy items                       |
| Millilitres | `"ML"`            | Small liquid products                     |
| Litres      | `"L"`             | Large liquid products                     |
| Each        | `"EA"`            | Count-based items (bags, tablets, pieces) |

***

## Common mistakes to avoid

<AccordionGroup>
  <Accordion title="Missing or incorrect weight">
    `weight` must be in **kilograms** and reflect the total packaged weight. A 200g product should have `"weight": 0.2`, not `"weight": 200`. This field is critical for delivery logistics and bag packing optimization.
  </Accordion>

  <Accordion title="Missing dimensions">
    The `dimensions` object is required. Provide all three fields (`depth`, `width`, `height`) in **centimeters**. These are used for delivery capacity planning.
  </Accordion>

  <Accordion title="Empty imageUrls">
    Include at least one image URL. Images are shown to pickers during fulfillment — without them, pickers cannot visually verify they have the correct product.
  </Accordion>

  <Accordion title="Flat categories">
    Categories should form a hierarchy from broad to specific (e.g., `["Dairy & Eggs", "Yoghurt", "Multipacks"]`). This powers search and browse functionality in the storefront.
  </Accordion>

  <Accordion title="Confusing sizeSpecification with weight">
    `sizeSpecification` is the **labeled product size** customers see (e.g., 2L, 500g, 25 pack). `weight` is the **physical weight in kg** for logistics. These serve different purposes.
  </Accordion>
</AccordionGroup>

***

## Next steps

<CardGroup cols={2}>
  <Card title="Create or Update Products" icon="upload" href="/api-reference/store-catalog/create-or-update-products">
    Send your product catalog via the API
  </Card>

  <Card title="Store Inventory" icon="warehouse" href="/api-reference/store-catalog/pick-and-pack#store-inventory">
    Set up per-store availability and pricing
  </Card>
</CardGroup>
