π NetSuite: Data Mapping & Synchronisation
This guide details the exact data flow and schema mapping between your NetSuite environment and Optiply. It outlines the synchronisation schedule, configuration options, and provides the specific logic used for every data entity.
β±οΈ Synchronisation General Board
The following table outlines the data entities and their update frequencies.
Entity | Direction | Frequency |
Products | NetSuite β Optiply | Every 60 min |
Product Compositions | NetSuite β Optiply | Every 60 min |
Suppliers | NetSuite β Optiply | Every 60 min |
Supplier Products | NetSuite β Optiply | Every 60 min |
Supplier Products Deletions | NetSuite β Optiply | Every 60 min |
Stocks | NetSuite β Optiply | Every 60 min |
Buy Orders | NetSuite β Optiply | Every 60 min |
Buy Orders (Export) | Optiply β NetSuite | Every 10 min |
Sell Orders | NetSuite β Optiply | Every 60 min |
Receipt Lines (Item Deliveries) | NetSuite β Optiply | Every 60 min |
βοΈ Options and Features (Configuration)
The following settings are available to customise how Optiply interacts with your NetSuite locations. These options are not visible in the front-end interface. Please contact Customer Support to adjust these variables.
1. Stock Locations Filter
Variable:
stock_location_ids(Default:null)Description: Defines a specific list of NetSuite
locationIds from which Optiply will retrieve thestockLevel.Logic: By default (
null), we pull and sum stock from all location IDs. If populated, we only count stock from the specified locations.
2. Buy Order Destination Location
Variable:
send_locationId(Default:null)Description: Defines a specific NetSuite
locationIdwhere Optiply will send Buy Orders when exporting them from Optiply to NetSuite.
πΊοΈ Data Mapping Details
1. Products
Source Paths: /Item (for Product data), /Inventory_Item_Locations (for stock levels), /Item_Prices (for price).
Optiply | NetSuite | Logic / Notes |
Remote ID |
| - |
Name |
| - |
SKU Code |
| - |
Article Code |
| - |
Price |
| - |
EAN Code |
| - |
Stock Level |
| Pulled from all locations or specific |
Status |
| IF status = OTHERWISE β |
Created At |
| - |
Not Being Bought |
| IF status is in OTHERWISE β |
Assembled |
| IF status = OTHERWISE β Note: Products that are composed (parentitem in kit item) will also be set with |
β οΈ Filter Rule: Optiply will only sync Items where itemtype="InvtPart" or itemtype="Kit".
2. Product Compositions
Source Path: /kit_item_members
Optiply | NetSuite |
Composed Product ID |
|
Part Product ID |
|
Part Quantity |
|
Remote ID |
|
3. Suppliers
Source Path: /Vendor
Optiply | NetSuite |
Name |
|
Remote ID |
|
Fixed Costs |
|
Delivery Time |
|
β οΈ Filter Rule: We will only sync Vendors where Active is true.
4. Supplier Products
Source Path: /item_vendor
Optiply | NetSuite | Logic / Notes |
Name |
| - |
Remote ID | Calculated |
|
Price |
| - |
Article Code |
| - |
Status |
| Hardcoded. |
Lot Size |
| - |
Delivery Time |
| - |
Preferred |
| - |
5. Sell Orders
Source Path: /sales_orders
Optiply | NetSuite |
Total Value |
|
Remote ID |
|
Placed Date |
|
Completed Date |
|
β οΈ Filter Rule: We will only sync transactions where type="SalesOrd".
6. Sell Order Lines
Source Path: /sales_order_lines
Optiply | NetSuite | Logic |
Article Code |
| Maps to |
Quantity |
| Takes the absolute value. |
Subtotal Value |
| Takes the absolute value. |
Remote ID |
| - |
β οΈ Filter Rule: We will only sync transactions where recordtype="SalesOrd".
7. Buy Orders (Import: NetSuite β Optiply)
Source Path: /purchase_orders
Optiply | NetSuite | Logic / Notes |
Remote ID |
| - |
Total Value |
| Takes the absolute value. |
Placed Date |
| - |
Completed Date | Calculated | Logic: IF
β |
Expected Delivery |
| - |
Supplier Remote ID |
| Maps to |
β οΈ Filter Rule: We will only sync transactions where type="PurchOrd".
8. Buy Order Lines (Import: NetSuite β Optiply)
Source Path: /purchase_order_lines
Optiply | NetSuite | Logic |
Product Remote ID |
| Maps to |
Quantity |
| Takes the absolute value. |
Subtotal Value |
| Takes the absolute value. |
Remote ID |
| - |
Expected Delivery |
| - |
β οΈ Filter Rule: We will only sync transactions where recordtype="PurchOrd".
9. Buy Orders (Export: Optiply β NetSuite)
Optiply | NetSuite | Notes |
Buy Order ID |
| Maps from |
Supplier ID |
| Maps from |
Placed Date |
| - |
Expected Delivery |
| - |
10. Buy Order Lines (Export: Optiply β NetSuite)
Optiply | NetSuite | Logic / Notes |
Product ID |
| Maps from |
Quantity |
| - |
Unit Price |
| Calculated: |
11. Receipt Lines (Import: NetSuite β Optiply)
Source Path: /item_receipt_lines
Optiply | NetSuite |
Quantity |
|
Occurred Date |
|
Remote ID |
|
β Frequently Asked Questions (FAQs)
Why aren't some of my products syncing into Optiply?
Optiply uses a strict filter for NetSuite items. We only pull items where the itemtype is set to "InvtPart" (Inventory Part) or "Kit". Ensure your missing items are categorised correctly in NetSuite.
Why aren't all my Vendors showing up?
Optiply only synchronises Suppliers (Vendors) where the Active flag is set to true in NetSuite. Inactive vendors are ignored.
How does Optiply know a Buy Order is closed?
Optiply maps the completed date using the lastmodifieddate of the order, but only when the NetSuite order status changes to one of the following: "Purchase Order : Fully Billed", "Purchase Order : Pending Bill", or "Purchase Order : Closed".
