π Tilroy: Data Mapping & Synchronisation
This guide details the data flow between Tilroy and Optiply. It outlines the synchronisation frequency, required configuration parameters, and the specific logic used to map data entities.
β±οΈ Synchronisation General Board
The following table outlines the data entities and their update frequency.
Entity | Direction | Frequency |
Products | Tilroy β Optiply | Every 30 minutes |
Suppliers | Tilroy β Optiply | Every 30 minutes |
Supplier Products | Tilroy β Optiply | Every 30 minutes |
Sell Orders | Tilroy β Optiply | Every 30 minutes |
Buy Orders | Tilroy β Optiply | Every 30 minutes |
Receipt Lines | Tilroy β Optiply | Every 30 minutes |
β οΈ Exclusions:
The following entities are not currently synced:
Product Compositions
Product Deletions
Supplier Deletions
βοΈ Options and Features (Configuration)
Before running the integration, the following parameters must be configured. Please contact Customer Support to adjust these variables.
1. Language Code
Variable:
languageCode(Default:"NL")Description: Controls which language description from Tilroy is used for the Product Name (e.g., NL, FR, EN).
2. Shop Filtering (Stock & Prices)
Variable:
shop_ids(Default:""- Syncs All)Description:
All Shops: If left empty, Optiply syncs stock, prices, and sales from all Tilroy shops/warehouses.
Specific Shops: You can provide specific Shop IDs (e.g.,
1656, 1672). Stock will be aggregated (summed) across these selected shops.
Note: Prices that do not have a specific shop assigned are always included, regardless of this filter.
3. Use Product Details (SKU Logic)
Variable:
use_product_details(Default:false)Description: Switches the integration to a richer data source.
False: Uses internal Tilroy IDs (
colours.skus.tilroyId) as the SKU Code.True: Uses the actual SKU Codes (
colours.skus.code) from Tilroy.
β οΈ Limitation: Enabling this mode restricts the system to support only one supplier per product.
πΊοΈ Data Mapping Details
1. Products
Endpoint: https://api.tilroy.com/product-bulk/production/products
Optiply | Tilroy | Logic / Notes |
Name |
| Uses the configured |
SKU Code |
| Unless |
EAN Code |
| - |
Price | From prices endpoint (type='standard') | If a valid Promo Price < Regular Price, we use Promo. Otherwise, Regular Price. Old/Future prices are ignored. |
Article Code |
| - |
Stock Level |
| Summed across configured |
Remote ID |
| Composite ID. |
2. Suppliers
Endpoint: https://api.tilroy.com/product-bulk/production/suppliers
Optiply | Tilroy | Logic |
Name |
| - |
Remote ID |
| - |
Emails |
| Invalid emails are ignored (supplier created without email). |
Delivery Time |
| A value of 0 is treated as empty. |
3. Supplier Products
Endpoint: https://api.tilroy.com/product-bulk/production/products
Optiply | Tilroy | Notes |
Name |
| The languageCode must be defined in your configuration before use. |
Remote ID |
| Composite identifier. |
SKU Code |
| - |
EAN Code |
| - |
Price |
| - |
Product ID |
| Internal link. |
Supplier ID |
| Internal link. |
Article Code |
| - |
Preferred |
| - |
Note: There is no dedicated endpoint for supplier products. Data is extracted from the products endpoint, which includes supplier information.
4. Sell Orders
Endpoint: https://api.tilroy.com/saleapi/production/export/sales
Optiply | Tilroy | Notes |
Total Value |
| - |
Placed Date |
| - |
Remote ID |
| - |
Shop Filtering: If shop_ids are configured, we only process sales where shop.number matches your list.
β οΈ No Updates: We do not sync changes to existing orders. Line changes, deletions, or additions are ignored after the initial sync.
5. Sell Order Lines
Endpoint: https://api.tilroy.com/saleapi/production/export/sales
Optiply | Tilroy |
Product ID |
|
Quantity |
|
Subtotal Value |
|
6. Buy Orders (Import: Tilroy β Optiply)
Endpoint: https://api.tilroy.com/purchaseapi/production/purchaseorders
Optiply | Tilroy | Logic |
Placed Date |
| - |
Supplier ID |
| - |
Total Value |
| - |
Completed |
| Only set if status is "received". |
Expected Delivery |
| - |
Remote ID |
| - |
7. Buy Order Lines (Import: Tilroy β Optiply)
Endpoint: https://api.tilroy.com/purchaseapi/production/purchaseorders
Optiply | Tilroy |
Remote ID |
|
Product ID |
|
Quantity |
|
Subtotal Value |
|
Expected Delivery |
|
8. Buy Orders (Export: Optiply β Tilroy)
Endpoint: https://api.tilroy.com/purchaseapi/production/import/purchaseorders
Optiply | Tilroy |
Buy Order ID |
|
Placed Date |
|
Expected Delivery |
|
Supplier ID |
|
9. Buy Order Lines (Export: Optiply β Tilroy)
Endpoint: https://api.tilroy.com/purchaseapi/production/import/purchaseorders
Optiply | Tilroy | Notes |
Quantity |
| - |
SKU Code |
| - |
Subtotal Value |
| - |
Expected Delivery |
| - |
Note: Each line must include a warehouse_id. This value can be defined in the configuration and will be used when sending Purchase Orders.
10. Receipt Lines (Item Deliveries)
Endpoint: https://api.tilroy.com/purchaseapi/production/purchaseorders
Optiply | Tilroy |
Quantity |
|
Occurred |
|
Remote ID |
|
Note: Derived from Purchase Order API by tracking delivered lines.
β Frequently Asked Questions (FAQs)
Why are my Sell Order updates not showing?
The integration does not sync changes to sales orders after they are first imported. If you modify an order line, delete a line, or add a new item to an existing order in Tilroy, these changes will not be reflected in Optiply.
What does "Use Product Details" do?
By default (false). We use Tilroy's internal ID as the SKU. If you set this to true, we map the actual SKU code (colours.skus.code).
Warning: Enabling this option restricts you to one supplier per product. If you have multiple suppliers for a single item, keep this setting
false.
How is delivery time handled?
If a supplier's delivery time is set to 0 in Tilroy, Optiply treats this as "empty" or "not configured," rather than instant delivery.
