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 CSV

You can use the following spreadsheet as a template to structure your import:

Offers - Template


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:

  1. Call 1 — File generation (POST /offer/file/generate): triggers the generation of a CSV file on the external system. A sinceUpdateDateTime parameter can be passed to retrieve only records updated since the last job execution.
  2. Call 2 — Status polling (GET /offer/file/status): polls the external system until the file is ready. The job retries until the statusFile attribute returns AVAILABLE.
  3. Call 3 — File download (GET $.urlFile): retrieves the URL returned by Call 2 and downloads the CSV file for processing.
💡

Note

The 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

FieldDefinitionRequired for creationRequired for updateEditableDefault Value
Stock IdUnique external identifier of the Offer Stock
Stock Variant IdExternal identifier of the product variant associated with the stock
Supplier IdExternal identifier of the supplier associated with the stock
Stock NumberAvailable stock quantity
Quantity Per PackNumber of units per pack
CurrencyCurrency code for the offer (e.g. EUR, USD)EUR
Minimum Order QuantityMinimum quantity that can be ordered
Maximum Order QuantityMaximum quantity that can be ordered
Lead Time To ShipProcessing time before the order is shipped
Minimum Shipping PriceMinimum shipping cost for this stock
Minimum Shipping Price AdditionalAdditional minimum shipping fees
Minimum Stock AlertStock quantity threshold that triggers a low-stock alert
Minimum Shipping TypeMinimum shipping method associated with this stock
Minimum Shipping ZoneMinimum shipping zone associated with this stock
Packing TypePackaging type (e.g. BOX, UNIT)
Delete StockDeletes the Offer StockFALSE
Active StockActivates or deactivates the Offer StockTRUE
Stock Available Start DateStart date of the stock availability period
Stock Available End DateEnd date of the stock availability period
Enable Quote RequestsAllows quote requests to be made on this stock
Price IdUnique external identifier of the Offer Price
Price Quantity Per ItemReference quantity used for unit price calculation
Price RangesPrice tiers defining graduated pricing by ordered quantity. Must include a range for quantity 1
Offer TypeDefines the pricing audience: PUBLIC, ACCOUNT, or GROUP
Customer Account External IdExternal identifier of the account targeted by the price. ☑️ Required if Offer Type = ACCOUNT☑️
Customer TagCustomer tag targeted by the price. ☑️ Required if Offer Type = GROUP☑️
Delete PriceDeletes the Offer PriceFALSE
Active PriceActivates or deactivates the Offer PriceTRUE
☑️

Conditionally required

⚠️

Required Custom Fields

Any 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 Id) and an Offer Price (identified by Price Id). An Offer Price must always be linked to an existing Offer Stock.
  • Price Ranges must always include a range for quantity 1. Graduated pricing (volume discounts) can be defined by adding additional ranges.
  • Offer Type determines the pricing audience: PUBLIC applies to all buyers; ACCOUNT restricts the price to a specific customer account (Customer Account External Id required); GROUP restricts the price to a customer tag (Customer Tag required).
  • Setting Delete Stock to TRUE removes the Offer Stock and all associated Offer Prices.
  • Setting Delete Price to TRUE removes only the targeted Offer Price, without affecting the stock.
  • Setting Active Stock to FALSE deactivates 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.
📌

Best Practices

✔️ Always include a Price Range for quantity 1 to avoid import errors.

✔️ Ensure Customer Account External Id or Customer Tag is provided when using ACCOUNT or GROUP offer types.