> For the complete documentation index, see [llms.txt](https://developer.emporix.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.emporix.io/agentic-commerce-intelligence/agentic-engineering/skill-library/emporix-product-data.md).

# Emporix Product Data

Use the emporix-product-data skill to onboard and sync products, categories, availability, prices, and media.

Use the **emporix-product-data** skill to onboard or sync a catalog into Emporix. A sellable product is assembled from the Product, Category, Catalog, Availability, Price, and Media services. There is no single import call.

{% hint style="info" %}
This page explains when to use the skill and how to work with it. For the product model and related setup, see [Products](/user-guides/core-commerce/product-user-guide.md), [Availability and Stock Levels](/user-guides/core-commerce/product-user-guide/availabilities.md), and [Pricing](/user-guides/core-commerce/pricing-v2.md).
{% endhint %}

## Skill details

| Property     | Value                                                |
| ------------ | ---------------------------------------------------- |
| Skill name   | `emporix-product-data`                               |
| Package path | `skills/emporix-product-data/` (contains `SKILL.md`) |

Install it once using [Installing skills](/agentic-commerce-intelligence/agentic-engineering/skill-library.md#installing-skills).

## When to use it

Use this skill when you need to:

* Import a catalog from a PIM or ERP
* Create products or variants, including the choice between dynamic and template variants
* Set stock and availability, prices or price lists, and product images
* Assign products to categories
* Diagnose availability, stock, or prices that do not show on the storefront

{% hint style="info" %}
For tokens and scopes, use the [Emporix Auth](/agentic-commerce-intelligence/agentic-engineering/skill-library/emporix-auth.md) skill. For custom fields on products, use the [Emporix Extensibility](/agentic-commerce-intelligence/agentic-engineering/skill-library/emporix-extensibility.md) skill. For the exact endpoint or schema, use the [Emporix Docs Navigation](/agentic-commerce-intelligence/agentic-engineering/skill-library/emporix-docs-navigation.md) skill.
{% endhint %}

## How it works

Create records in reference order. Configuration that other calls point at comes first, then the product, then the services that reference the product id.

```mermaid
---
config:
  layout: fixed
  theme: base
  look: classic
  themeVariables:
    background: transparent
    lineColor: "#9CBBE3"
    arrowheadColor: "#9CBBE3"
    edgeLabelBackground: "#FFC128"
    edgeLabelTextColor: "#4C5359"
---
flowchart TD
  A["Site, currency,<br>tax, price model"]
  B["Categories<br>and catalog"]
  C["Product"]
  D["Availability and stock<br>on a real site"]
  E["Prices"]
  F["Media"]

  A --> B --> C --> D --> E --> F

  style A fill:#F2F6FA,stroke:#4C5359,color:#4C5359
  style B fill:#DDE6EE,stroke:#4C5359,color:#4C5359
  style C fill:#A1BDDC,stroke:#4C5359,color:#4C5359
  style D fill:#F2F6FA,stroke:#4C5359,color:#4C5359
  style E fill:#DDE6EE,stroke:#4C5359,color:#4C5359
  style F fill:#A1BDDC,stroke:#4C5359,color:#4C5359

  A@{ shape: rounded}
  B@{ shape: rounded}
  C@{ shape: rounded}
  D@{ shape: rounded}
  E@{ shape: rounded}
  F@{ shape: rounded}
```

Base URL: `https://api.emporix.io`. Tenant names are lowercase.

For stock and variants to appear on the storefront, use these rules:

* Write availability to a real site code. `main` is a read-only aggregator and does not hold per-site stock.
* For a PIM-led sync, use `DYNAMIC_VARIANT`, then a recalculation job. Template variants force parent-template edits before children can load.

## Prerequisites

Before you use this skill, make sure you have:

* A custom API key with the manage scopes for the services in the pipeline – do not guess scope names
* At least one site whose code is not `main`
* A currency, a tax configuration with tax classes, and a price model for priced products
* A service access token – see [Emporix Auth](/agentic-commerce-intelligence/agentic-engineering/skill-library/emporix-auth.md)

## How to use it

After install, work in your AI tool with natural-language requests. Examples:

> Import this product into tenant `mytenant` on site `store-de`, with stock, a gross price, and one image.

> Why is imported stock invisible on the storefront when the availability call returned 201?

> Should this PIM catalog use dynamic variants or template variants?

Provide the tenant name, the real site code, and the scopes on your token.

## Usage notes

* Never write availability to `main`. If `main` already holds stock rows, contact Emporix staff. Do not try to repair it with another POST.
* After a dynamic-variant bulk import, run product recalculation and wait until the job is finished before you read the parent `variants` map.
* Send `Content-Language` when you create localized product fields. Without it, the API returns 400.
* A price that does not match is usually a site, currency, or location restriction, or a price list that overrides the catalog price.
* Key `taxClasses` on a configured country code, such as `DE`, not on a language code.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://developer.emporix.io/agentic-commerce-intelligence/agentic-engineering/skill-library/emporix-product-data.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
