PRODUCTS & VARIANTS
This page introduces Product and Variant imports in DJUST. It explains the overall logic, the data structure, and the expected format for creating, updating, and managing Products and their Variants.
⚙️ Introduction
This job allows the creation and update of Products and Variants via CSV import or API Connector.
You can:
- Create and update Products
- Create and update Variants linked to Products
- Assign Products to Classification Categories
- Manage product and variant visibility (active/inactive)
- Delete Products and Variants
- Associate Products with Stores
- Map Attributes at both Product and Variant level
📂 Import model
CSV Structure
The CSV file must contain one row per Variant. Multiple rows can belong to the same Product.
TemplateYou can use the following spreadsheet as a template to structure your import:
API Connector
The API Connector sends data as a JSON payload. The JSON must always be a list of objects.
[
{
"productExternalId": "string",
"productNames": "string",
"productDescriptions": "string",
"productBrand": "string",
"productClassificationCategoryId": "string",
"productUnit": "string",
"deletedProduct": false,
"inactiveProduct": false,
"variantNames": "string",
"variantDescriptions": "string",
"variantExternalId": "string",
"variantExternalSku": "string",
"variantEan": "string",
"variantMpn": "string",
"variantMainImageUrl": "string",
"variantAdditionalImageLinks": "string",
"deletedVariant": false,
"inactiveVariant": false,
"storeExternalIds": "string",
"attribute-weight": "string",
"attribute-color": "string"
},
{
"productExternalId": "string",
"variantNames": "string",
"variantExternalId": "string",
"attribute-weight": "string"
},
{
"productExternalId": "string",
"productNames": "string",
"productClassificationCategoryId": "string",
"variantNames": "string",
"variantExternalId": "string"
}
]Each object represents one Variant. Multiple objects can belong to the same Product (same
productExternalId). The second object above illustrates adding a new Variant to an existing Product. The third object illustrates creating a new Product with a first Variant.Attributes are included directly in the payload. The attribute key corresponds to the attribute identifier configured in the Attributes mapping panel of the job (e.g.
attribute-weight,attribute-color).
📋 Fields
| Field | Definition | Required for creation | Required for update | Editable | Default Value |
|---|---|---|---|---|---|
Product External Id | Unique external reference of the Product | ✅ | ✅ | ||
Product Names | Name of the Product | ✅ | ✅ | ✅ | |
Product Descriptions | Description of the Product. Supports HTML tags for text formatting (<br>, <i></i>, <b></b>, <p></p>) | ✅ | ☑️ If previously imported and re-imported empty, existing value is cleared | ||
Product Brand | Brand of the Product | ✅ | ☑️ If previously imported and re-imported empty, existing value is cleared | ||
Product Classification Category Id | Classification category the Product is attached to | ✅ | ✅ | ✅ | |
Product Unit | Base unit of the Product (only Item is currently supported) | ✅ | ☑️ If previously imported and re-imported empty, existing value is cleared | ||
Deleted Product | Set to TRUE to delete the Product | ✅ | FALSE | ||
Inactive Product | Set to TRUE to deactivate the Product without deleting it | ✅ | FALSE | ||
Variant Names | Name of the Variant | ✅ | ✅ | ✅ | |
Variant Descriptions | Description of the Variant. Supports HTML tags for text formatting | ✅ | ☑️ If previously imported and re-imported empty, existing value is cleared | ||
Variant External Id | Unique external reference of the Variant | ✅ | ☑️ If previously imported and re-imported empty, existing value is cleared | ||
Variant External Sku | Secondary external reference for the Variant, specific to your system. Must be unique. | ✅ | ☑️ If previously imported and re-imported empty, existing value is cleared | ||
Variant Ean | EAN / GTIN code of the Variant | ✅ | ☑️ If previously imported and re-imported empty, existing value is cleared | ||
Variant Mpn | Manufacturer Part Number of the Variant | ✅ | ☑️ If previously imported and re-imported empty, existing value is cleared | ||
Variant Main Image Url | URL of the main image for the Variant. Must be a valid public URL | ✅ | ✅ | ✅ | Default image if not provided |
Variant Additional Image Links | Additional image URLs for the Variant. Must be valid public URLs | ✅ | ☑️ If previously imported and re-imported empty, existing value is cleared | ||
Deleted Variant | Set to TRUE to delete the Variant | ✅ | FALSE | ||
Inactive Variant | Set to TRUE to deactivate the Variant without deleting it | ✅ | FALSE | ||
Store External Ids | Store ID(s) the Variant is associated with. Used in multi-store context | ✅ | ☑️ If previously imported and re-imported empty, existing value is cleared | ||
ATTR_[attributeExternalId] | Attribute value for the given attribute. Column name must follow the convention ATTR_ followed by the attribute external ID (e.g. ATTR_weight, ATTR_color). Available on both Products and Variants | ✅ | ☑️ If previously imported and re-imported empty, existing value is cleared |
Conditionally updated — if a value was previously imported and the field is re-imported empty, the existing value is cleared.
🧠 Key Business Rules
- A Product must have at least one Variant.
Product External Idis the key identifier for a Product. If it does not exist, the Product is created. If it exists, it is updated.Variant External Idis the key identifier for a Variant within a Product.- Setting
Deleted ProducttoTRUEpermanently removes the Product and all its Variants. This action is irreversible. - Setting
Inactive ProducttoTRUEdeactivates the Product without deleting it. It will no longer be visible on the platform. - Setting
Deleted VarianttoTRUEpermanently removes the Variant. This action is irreversible. - Setting
Inactive VarianttoTRUEdeactivates the Variant without deleting it. - The classification of a Product can be changed via import without deleting the Product first.
Variant Main Image Urlmust be a publicly accessible URL. If not provided, a default image is used.Variant Additional Image Linksaccepts multiple URLs. In CSV, separate values with|(e.g.url1|url2|url3).- Empty fields in standard columns clear the previously recorded values — unlike Accounts or Offers where empty standard fields preserve existing values.
- Attributes in CSV: use the column naming convention
ATTR_[attributeExternalId](e.g.ATTR_weight,ATTR_color). No mapping is required — attributes are automatically recognised from the column name. - Attributes via API Connector: attributes are configured in the dedicated Attributes mapping panel of the job, not in the JSON payload.
- Decimal separator for numeric values: dot (
.) — e.g.12.50. - Date format:
yyyy-MM-dd— e.g.2026-01-01.
Best Practices✔️ Always provide
Variant Main Image Urlto ensure proper display on the storefront.✔️ Use
ATTR_[attributeExternalId]column naming in CSV — no additional mapping configuration needed.✔️ Be careful with empty fields — unlike other entities, empty values clear existing data on Products and Variants.
✔️ The classification of a Product can be updated at any time without deleting it first.
Updated about 14 hours ago
