The multi-source inventory feature allows you to add multiple locations for stocking inventory, fulfilling orders, and selling products. This feature allows you to map NetSuite locations to corresponding Magento sources. The mapping is supported only in the following ways:
- One to one: one NetSuite location to one Magento source, or
- Many to one: map a group of NetSuite locations to a single Magento source.
Notes:
- This feature is supported only with Magento v 2.3.0 and above, ensure to verify your Magento 2 version in the General tab. When you run the “NetSuite Fulfillment to Magento Shipment” flow, the mapping is based on the location selected in the “Map NetSuite locations with Magento 2 Sources” setting and not the location specified in the NetSuite fulfillment record.
- If you did not map any location in the “Map NetSuite locations with Magento 2 Sources” setting, your inventory is sent to the default source of the Magento 2 instance.
- If you enable the multi-source inventory feature, the end-point for the "NetSuite Inventory to Magento Inventory Add/Update" flow is changed from "V1/products/{{{encodeURI SKU}}}/stockItems/{{ItemId}}" to "V1/inventory/source-items". You will not be able to revert back to the previous end-point.
- If you want to get the matrix child items, in NetSuite edit the "Celigo Magento 2 Inventory Export Search" saved search, in the SKU column enter the value as: "CASE NVL({parent},'0') WHEN '0' THEN{displayname} ELSE SUBSTR({itemid}, INSTR({itemid}, ' : ', -1) + 3) END".
How to use the “Map NetSuite locations with Magento 2 Sources” setting
- For a single location setup in Magento 2 account: If all your NetSuite locations should map to a single source in Magento for fulfilling all items, it is recommended to use the Use Custom Default Value option. Select this option and select the appropriate Magento source from the "Default Lookup Value" drop-down list.
- Notes:
- The other options such as “Fail Record”, “Use Empty String as Default Value”, and “Use Null as Default Value” are not applicable for this feature.
- The location in this drop-down list is pre-populated by the Integration App, if not click Refresh to see the location in the Default Lookup Value drop-down list.
- For multiple locations setup in Magento 2 account: In the General section - Multi Source Inventory tab, use the “Map NetSuite locations with Magento 2 Sources” option to map NetSuite locations and Magento source. As mentioned above, you can choose to map locations as one to one (1:1) or many to one (many:1).
To map multiple locations to Magento source, perform the following steps:
- In integrator.io,
- Expand “Map NetSuite locations with Magento 2 Sources” option.
- On the left side, select the appropriate NetSuite location from the drop-down list and on the right side, select the appropriate Magento source from the drop-down list to which the NetSuite location has to be mapped.
- Click Save.
- Go to Settings > Integration Flows > Inventory > Advanced Settings.
- From the “NetSuite Saved Search for syncing inventory levels” drop-down list, select the appropriate saved search.
- Click Save.
- In NetSuite,
- Open the saved search selected in integrator.io (step 1.5)
- Click Edit this Search.
- Go to the Results tab.
- Add a new row and in the Field column, search for “Inventory Location Fields”.
- A new window “Saved Item Search” automatically opens. In the “Inventory Location Field” drop-down list, select Internal ID. After you select, in the Field column the entry must be “Inventory Location: Internal ID”.
- In the Summary Type column, select Group.
- In the custom label column, enter location_id.
- Click Save.
- In Integratori.io, either run the “NetSuite Inventory to Magento Inventory” or “NetSuite Kit Inventory to Magento Inventory” flow.
The below images will help you understand how the inventory quantity from NetSuite is mapped to the Magento source.
Comments
take note that SKU should match. When there are matrix child items, use the following formula for the SKU column in the search.
CASE NVL({parent},'0') WHEN '0' THEN{displayname} ELSE SUBSTR({itemid}, INSTR({itemid}, ' : ', -1) + 3) END
@sStein Chu Thank you for letting us know. I have included the point you mentioned as a Note in the article.
Please sign in to leave a comment.