OFFER
This page introduces Offer imports in DJUST. It explains the overall logic, the data structure, and the expected fields. format for creating and updating Offer Stocks and Offer Prices
⚙️ Introduction
This job allows the creation and update of Offers (stocks and prices) via CSV import or API Connector.
You can:
- Create and update Offer Stocks
- Create and update Offer Prices
- Deactivate or delete stocks and prices
- Define pricing rules including price ranges and offer types
📂 Import model
CSV Structure
The CSV file must contain one row per Offer Stock / Offer Price combination.
Template CSVYou can use the following spreadsheet as a template to structure your import:
API Connector
When using the API Connector, DJUST does not receive a JSON payload directly. Instead, the job executes a 3-step file generation flow:
- Call 1 — File generation (
POST /offer/file/generate): triggers the generation of a CSV file on the external system. AsinceUpdateDateTimeparameter can be passed to retrieve only records updated since the last job execution. - Call 2 — Status polling (
GET /offer/file/status): polls the external system until the file is ready. The job retries until thestatusFileattribute returnsAVAILABLE. - Call 3 — File download (
GET $.urlFile): retrieves the URL returned by Call 2 and downloads the CSV file for processing.
NoteThe API Connector processes the same CSV format as the SFTP import. The difference lies only in how the file is retrieved — via API calls rather than from an FTP server.
📋 Fields
| Field | Definition | Required for creation | Required for update | Editable | Default Value |
|---|---|---|---|---|---|
Stock External Id | Unique external identifier of the Offer Stock | ✅ | ✅ | ||
Stock Variant Id | External identifier of the product variant associated with the stock | ✅ | ✅ | ||
Supplier External Id | External identifier of the supplier associated with the stock | ✅ | ✅ | ||
Stock Number | Available stock quantity | ✅ | ✅ | ✅ | |
Quantity Per Pack | Number of units per pack | ✅ | |||
Currency | Currency code for the offer (e.g. EUR, USD) | ✅ | EUR | ||
Minimum Order Quantity | Minimum quantity that can be ordered | ✅ | |||
Maximum Order Quantity | Maximum quantity that can be ordered | ✅ | |||
Lead Time To Ship | Processing time before the order is shipped | ✅ | |||
Minimum Shipping Price | Minimum shipping cost for this stock | ✅ | |||
Minimum Shipping Price Additional | Additional minimum shipping fees | ✅ | |||
Minimum Stock Alert | Stock quantity threshold that triggers a low-stock alert | ✅ | |||
Minimum Shipping Type | Minimum shipping method associated with this stock | ✅ | |||
Minimum Shipping Zone | Minimum shipping zone associated with this stock | ✅ | |||
Packing Type | Packaging type (e.g. BOX, UNIT) | ✅ | |||
Delete Stock | Deletes the Offer Stock | ✅ | FALSE | ||
Active Stock | Activates or deactivates the Offer Stock | ✅ | TRUE | ||
Stock Available Start Date | Start date of the stock availability period | ✅ | |||
Stock Available End Date | End date of the stock availability period | ✅ | |||
Enable Quote Requests | Allows quote requests to be made on this stock | ✅ | |||
Price External Id | Unique external identifier of the Offer Price | ✅ | ✅ | ||
Price Quantity Per Item | Reference quantity used for unit price calculation | ✅ | |||
Price Ranges | Price tiers defining graduated pricing by ordered quantity. Must include a range for quantity 1 | ✅ | ✅ | ✅ | |
Offer Type | Defines the pricing audience: PUBLIC, ACCOUNT, or GROUP | ✅ | |||
Customer Account External Id | External identifier of the account targeted by the price. ☑️ Required if Offer Type = ACCOUNT | ☑️ | ✅ | ||
Customer Tag | Customer tag targeted by the price. ☑️ Required if Offer Type = GROUP | ☑️ | ✅ | ||
Delete Price | Deletes the Offer Price | ✅ | FALSE | ||
Active Price | Activates or deactivates the Offer Price | ✅ | TRUE |
Conditionally required
Required Custom FieldsAny custom fields configured as required in DJUST must also be included.
🧠 Key Business Rules
- An Offer is composed of two linked objects: an Offer Stock (identified by
Stock External Id) and an Offer Price (identified byPrice External Id). An Offer Price must always be linked to an existing Offer Stock. Price Rangesmust always include a range for quantity1. Graduated pricing (volume discounts) can be defined by adding additional ranges.Offer Typedetermines the pricing audience:PUBLICapplies to all buyers;ACCOUNTrestricts the price to a specific customer account (Customer Account External Idrequired);GROUPrestricts the price to a customer tag (Customer Tagrequired).- Setting
Delete StocktoTRUEremoves the Offer Stock and all associated Offer Prices. - Setting
Delete PricetoTRUEremoves only the targeted Offer Price, without affecting the stock. - Setting
Active StocktoFALSEdeactivates the stock and makes it invisible to buyers without deleting it. - Empty fields in standard columns do not delete recorded values.
- Empty fields in Custom Fields delete the recorded values.
Price Ranges Format
The priceRanges column uses a pipe-separated (|) format to define pricing tiers and (||) to separate ranges
Required: creation + update
Standard price:
quantity|unitPrice||quantity|unitPrice
Example: 1|100 → 1 unit, price 100
With discount price:
quantity|unitPrice|discountPrice||quantity|unitPrice|discountPrice
Empty Field Behavior
The OFFER import uses a conditional update approach: only fields that are explicitly provided are modified.
Offer Stock
| Field | If column is empty |
|---|---|
Stock External Id | ❌ Error — line rejected |
Stock Variant Id | ❌ Error — line rejected |
Supplier External Id | ❌ Error — line rejected |
Stock Number | ❌ Error — line rejected |
Quantity Per Pack | Preserved (unchanged) |
Currency | Preserved (default: EUR) |
Minimum Order Quantity | Preserved |
Maximum Order Quantity | Preserved |
Lead Time To Ship | Preserved |
Minimum Shipping Price | Preserved |
Minimum Shipping Price Additional | Preserved |
Minimum Stock Alert | Preserved |
Minimum Shipping Type | Preserved |
Minimum Shipping Zone | Preserved |
Packing Type | Preserved |
Delete Stock | Empty = FALSE (stock not deleted) |
Active Stock | Empty = TRUE (stock active) |
Stock Available Start Date | Preserved |
Stock Available End Date | Preserved |
Enable Quote Requests | Preserved |
Offer Price
| Field | If column is empty |
|---|---|
Price External Id | ❌ Error — line rejected |
Price Quantity Per Item | Preserved |
Price Ranges | ⚠️ Clears all price ranges |
Offer Type | Preserved |
Customer Account External Id | Preserved |
Customer Tag | Preserved |
Delete Price | Empty = FALSE (price not deleted) |
Active Price | Empty = TRUE (price active) |
Best Practices✔️ Always include a
Price Rangefor quantity1to avoid import errors.✔️ Ensure
Customer Account External IdorCustomer Tagis provided when usingACCOUNTorGROUPoffer types.
Updated 25 days ago
