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

# Product sync

> How Indigo 8 styles become Omneo Products, with one variant for each colour and size.

Every Indigo 8 style created or changed on the current day or the previous day is imported as an Omneo Product on each scheduled run. Products are imported before invoices, so invoice lines can be linked to the right Product variant by barcode.

## Product fields

| Omneo field | Source in the Indigo 8 style |
| - | - |
| `external_id` | `Style_Number`. This is the unique key: a style Omneo has already imported updates the existing Product. |
| `title` | `Style_Description`. |
| `handle` | `Style_ID`. Set when the Product is created and not changed afterwards. |
| `brand` | `Brand`, then `Brand2`, then `Unknown` when the style has neither. |
| `images` | `Image_URL`, as the only image. Omitted when the style has no image. |
| `variants` | One per colour and size. See [Variant fields](#variant-fields). |

## Variant fields

Indigo 8 lists each style's colours, and each colour's sizes. Omneo creates one variant for every colour and size pair.

| Omneo field | Source in the Indigo 8 style |
| - | - |
| `title` | The style description, the colour, and the size description, separated by `/`. For example, `Linen Shirt / Navy / M`. |
| `external_id` | The size's `Barcode`, or its `SKU` when there is no barcode. |
| `sku` | `SKU`. |
| `barcode` | `Barcode`. |
| `price` | `RRP_IncTax` from the style's first price. `0` when the style has no price. |
| `price_discounted` | `Discount_Price_IncTax` from the style's first price. `0` when the style has no price. |
| `position` | The size's position within its colour, starting at 0. |

A size with no barcode or no SKU is skipped, because an invoice line could not be matched to it.

On a later import, each variant is matched to an existing variant of the same Product by SKU, barcode, or `external_id` and updated. Variants that are no longer in Indigo 8 are kept.

Custom `product` and `productVariant` mappings are applied after these fields. See [Custom field mapping](/extensions/indigo8/transaction-mapping#custom-field-mapping).

## Related

* [Indigo 8 overview](/extensions/indigo8/overview)
* [Products](/concepts/commerce/products)
* [Transaction mapping](/extensions/indigo8/transaction-mapping)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.