Skip to main content

NetSuite - Data Mapping & Syncronisation

A comprehensive technical guide to the NetSuite integration with Optiply. Covers synchronisation frequencies, backend configuration variables, and detailed field mappings for inventory, sales, and purchasing data.

Written by Carla Domingos
Updated over 2 weeks ago

πŸ”— 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 the stockLevel.

  • 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 locationId where 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

Id

-

Name

fullname

-

SKU Code

custitem_cl_sku

-

Article Code

vendorname

-

Price

Inventory_Item_Locations.price

-

EAN Code

upccode

-

Stock Level

quantityavailable

Pulled from all locations or specific stock_location_ids.

Status

custitem_cl_item_status

IF status = "Prepare" β†’ "disabled".

OTHERWISE β†’ "enabled".

Created At

createddate

-

Not Being Bought

custitem_cl_item_status

IF status is in ["Ending", "Ending (Supplier)", "Offline / Order Item"] β†’ "true".

OTHERWISE β†’ "false".

Assembled

custitem_cl_item_status

IF status = "Warranty/Part" β†’ "true".

OTHERWISE β†’ "false".
​

Note: Products that are composed (parentitem in kit item) will also be set with assembled:true.

⚠️ 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

parentitem

Part Product ID

item

Part Quantity

quantity

Remote ID

id

3. Suppliers

Source Path: /Vendor

Optiply

NetSuite

Name

companyname

Remote ID

Id

Fixed Costs

custentity_cl_shipping_amount

Delivery Time

custentity_cl_lead_time

⚠️ Filter Rule: We will only sync Vendors where Active is true.

4. Supplier Products

Source Path: /item_vendor

Optiply

NetSuite

Logic / Notes

Name

item.fullname

-

Remote ID

Calculated

Concat(item + vendor)

Price

purchaseprice

-

Article Code

vendorcode

-

Status

"enabled"

Hardcoded.

Lot Size

item.reordermultiple

-

Delivery Time

item.leadtime

-

Preferred

preferredvendor

-

5. Sell Orders

Source Path: /sales_orders

Optiply

NetSuite

Total Value

foreigntotal

Remote ID

id

Placed Date

createddate

Completed Date

closedate

⚠️ Filter Rule: We will only sync transactions where type="SalesOrd".

6. Sell Order Lines

Source Path: /sales_order_lines

Optiply

NetSuite

Logic

Article Code

item

Maps to optiplyWebshopProductArticleCode.

Quantity

absolut(quantity)

Takes the absolute value.

Subtotal Value

absolut(netamount)

Takes the absolute value.

Remote ID

uniquekey

-

⚠️ 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

id

-

Total Value

absolut(foreigntotal)

Takes the absolute value.

Placed Date

createddate

-

Completed Date

Calculated

Logic: IF status is in ["Purchase Order : Fully Billed", "Purchase Order : Pending Bill", "Purchase Order : Closed"]


​

β†’ completed = lastmodifieddate.

Expected Delivery

duedate

-

Supplier Remote ID

entity

Maps to optiplySupplierRemoteID.

⚠️ 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

item

Maps to optiplyWebshopProductRemoteID.

Quantity

absolut(quantity)

Takes the absolute value.

Subtotal Value

absolut(netamount)

Takes the absolute value.

Remote ID

uniquekey

-

Expected Delivery

duedate

-

⚠️ Filter Rule: We will only sync transactions where recordtype="PurchOrd".

9. Buy Orders (Export: Optiply β†’ NetSuite)

Optiply

NetSuite

Notes

Buy Order ID

memo

Maps from optiplyBuyOrderId.

Supplier ID

vendor.id

Maps from optiplySupplierId.

Placed Date

tranDate

-

Expected Delivery

dueDate

-

10. Buy Order Lines (Export: Optiply β†’ NetSuite)

Optiply

NetSuite

Logic / Notes

Product ID

item.id

Maps from optiplyWebshopProductId.

Quantity

quantity

-

Unit Price

UnitPrice

Calculated: subtotalValue / quantity.

11. Receipt Lines (Import: NetSuite β†’ Optiply)

Source Path: /item_receipt_lines

Optiply

NetSuite

Quantity

quantity

Occurred Date

linecreateddate

Remote ID

uniquekey


❓ 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".

Did this answer your question?