π QLS: Data Mapping & Synchronisation
This guide details exactly how data flows between your QLS environment and Optiply. It outlines synchronisation schedules, unique configuration options, and the specific logic used to handle stock calculations and order statuses.
β±οΈ 1. Synchronisation Overview
The table below outlines how often Optiply pulls data from (or pushes data to) QLS.
Entity | Sync Direction | Frequency |
Products | QLS β Optiply | Every 30 mins |
Product Stock Only | QLS β Optiply | Every 10 mins |
Product Deletions | QLS β Optiply | N/A (See note below) |
Suppliers | QLS β Optiply | Every 30 mins |
Supplier Products | QLS β Optiply | Every 30 mins |
Sell Orders | QLS β Optiply | Every 30 mins |
Buy Orders (V1 & V2) | QLS β Optiply | Every 30 mins |
Buy Orders (V1 & V2) | Optiply β QLS | Every 15 mins |
Receipt Lines (Item Deliveries) | QLS β Optiply | Every 30 mins |
β οΈ Important Sync Rules & Limitations:
Deleted Products: QLS currently does not flag deleted products via their API. Because we cannot accurately identify them, product deletions are not automatically synced. (We are exploring alternatives to solve this).
Supplier Product Deletions: Supplier Products are deleted in Optiply if they return an empty object in the Suppliers column, or if they disappear entirely from the Products detail array in QLS.
Buy Order Exports: Exporting placed Buy Orders from Optiply to QLS is supported on either the V1 or V2 endpoints.
βοΈ 2. Integration Options & Features
Optiply offers two specific configuration options for your QLS connection to customise your data flow:
Product Stock Only from QLS (
sync_prod_stock_only)Default: False
If enabled, Optiply uses the QLS integration only to pull stock levels. No other product data, supplier data, or order data will be pulled or processed. (Note: This speeds up the stock sync to every 10 minutes).
Supplier Products from QLS (
use_supplier_products)Default: True
Allows you to choose whether Optiply should pull your Supplier Products from QLS. If you manage suppliers elsewhere, you can toggle this off.
πΊοΈ 3. Product & Supplier Mapping
Products Source Path: /fulfilment-products
Optiply Field | QLS Field | Notes |
Article Code |
|
|
Name |
|
|
SKU Code |
|
|
EAN Code |
| Mandatory. Products without an EAN will not be mapped, as it is required to send Buy Orders to QLS. |
Price |
|
|
Assembled |
|
|
Unlimited Stock | Hardcoded | Hardcoded to |
Stock Level | Calculated | Uses the formula: |
Created Date |
|
|
Suppliers
Optiply Field | QLS Field |
Name |
|
Remote ID |
|
Supplier Products Source Path: /fulfilment-products
Optiply Field | QLS Field | Logic / Notes |
Name |
| Multiple suppliers per product are supported. |
SKU Code |
| Mapped by default; can be disabled upon request. |
EAN Code |
|
|
Price |
| Mapped by default. Note: This is mapped from the main product, meaning all suppliers for a product will share the same purchase price. |
Lot Size |
| Maps from |
Article Code |
|
|
π 4. Sell Order Mapping
Optiply Field | QLS Field | Notes |
Total Value | Calculated | Sum of the lines' |
Placed Date |
|
|
Remote ID |
|
|
Sell Order Lines
Product ID:
optiplyWebshopProductArticleCodeQuantity:
amount_orderedSubtotal Value:
price_store*quantity
β οΈ Sell Order Sync Limitation:
Optiply does not sync changes made to Sell Orders after their initial import. Edits to order lines, deleted lines, or new lines added to existing orders in QLS will not be reflected in Optiply.
π¦ 5. Buy Order Mapping (Importing: QLS β Optiply)
Because QLS operates with two different API versions, the mapping logic depends on which version your integration is utilising.
Buy Orders (V1 vs. V2 Logic)
Optiply Field | QLS V1 Field | QLS V2 Field |
ID & Remote ID |
|
|
Supplier ID | Extrapolated from | Extrapolated from |
Placed Date |
|
|
Completed Date | Sets to | Sets to |
Buy Order Lines (V1 vs. V2 Logic)
V1 Sync Rules: Does not sync order line changes after the initial pull.
V2 Sync Rules: Fully syncs Order Line changes (new lines added, quantity edits, and line deletions will update in Optiply).
Optiply Field | QLS V1 Field | QLS V2 Field |
Product ID |
|
|
Quantity |
|
|
Subtotal Value |
|
|
Buy Order ID |
|
|
Receipt Lines / Item Deliveries (V1 vs. V2 Logic)
Note: For V2, Receipt Lines come from the BuyOrderLinesById_v2 endpoint, specifically within the purchase_order_products.purchase_order_label_products tag.
Optiply Field | QLS V1 Field | QLS V2 Field |
Quantity |
|
|
Occurred Date |
|
|
Buy Order Line ID |
|
|
Remote ID |
| N/A |
π€ 6. Exporting Buy Orders (Exporting: Optiply β QLS)
When Optiply pushes a placed Buy Order into QLS, we sort the Buy Order Lines by SKU Code (Ascending). This ensures your lines match easily between the Optiply frontend and the QLS frontend.
Optiply | QLS V1 Destination | QLS V2 Destination |
Order ID |
|
|
Supplier |
|
|
Created Date | N/A |
|
Line Product |
|
|
Line Quantity |
|
|
β 7. Frequently Asked Questions (FAQs)
Why aren't some of my products importing from QLS?
In order to successfully send Buy Orders to QLS, an EAN code is strictly required. If a product does not have an EAN configured in QLS, Optiply will skip mapping it entirely.
If a customer changes their Sell Order in QLS, will Optiply update the stock requirement?
No. Optiply only imports Sell Orders once. If order lines are changed, deleted, or added to an existing Sell Order in QLS later, those changes will not sync to Optiply.
Why is my Buy Order showing as completed in QLS, but not in Optiply?
This depends on your API version. If you are on V1, Optiply marks the order complete when QLS says completed. However, if you are on V2, Optiply waits until the QLS status is officially changed to archived.
