An item group is an item type in NetSuite that is a single unit made up of several individual items (components). You can create an item group with various other item types such as inventory, matrix, and kit/package items. The item group price is always dependent on its member components. The integration flows can support item groups of any configurations such as:
- An item group with inventory, non-inventory, and matrix child items as member components
- A single item in NetSuite can belong to multiple item groups.
- An item group that has different or equal quantities of member components contributing to the item group.
Important: You can sync item group data only on the premium edition of the integration app.
The integration app supports to sync item type: item group only using the following flows:
- “Shopify Order to NetSuite Order Add” and “Shopify Order to NetSuite Order/CashSale Add”
- NetSuite Fulfillment to Shopify Fulfillment Add
-
NetSuite Kit and Item Group Inventory to Shopify Inventory Add/Update
Note: Using this flow you can sync item group data only if you have a premium subscription to the integration app.
You can manage the behavior of item groups using the Manage NetSuite item groups using setting (in the integration app > Settings > General):
- If you select the Member component, the price, quantity, and tax are equally considered on all the available components in the item group.
- If you select the Master component, the price, quantity, and tax are considered only on the selected master component. When you select the master component, the price, taxes, and quantity is not considered on the remaining components in the group.
- The product SKU must match between Shopify and NetSuite.
- The item ID maps should be created on the NetSuite item group.
- The item IDs should have matching Inventory Item ID and Variant ID.
Sync item group orders
A product has a single SKU in Shopify and it does not have a concept like NetSuite item groups. After you run the “Shopify Order to NetSuite Order Add” flow (real-time and scheduled), if the product is an item group in NetSuite, it is expanded and lists the individual member components. The price from Shopify is proportionally applied to the item group components as per the NetSuite native pricing or applied completely on the master component based on the option selected in the Manage NetSuite item groups using setting. An “eTail order line ID” is generated for each component of the item group.
Important: The integration flow syncs cash sales only if the item group does not have any inventory detail (Lot Numbered and Serialized items).
The below table outlines the behavior of each Order element wrt to the Manage NetSuite item groups using setting.
Shopify Order to NetSuite Order Add (real-time and scheduled) |
||
Order Element |
Member component set up |
Master component set up |
Price |
|
The entire Shopify SKU price is synced to only the master component. Note: In this scenario, the price on all the remaining member components is 0. |
Taxes |
The same tax rate is applicable for all the member components |
The tax rate is applicable only to the master component. In this scenario, the remaining member components are not considered/ignored. |
Line-level discounts |
In the integration app > Settings > Order section > Discount tab, in the Bring Shopify line-level discounts into NetSuite as setting, if you select:
|
In the integration app > Settings > Order section > Discount tab, in the Bring Shopify line-level discounts into NetSuite as setting, if you select:
|
Cart-level discounts |
The cart-level discount is applied to the item group. |
The cart-level discount is applied to the item group. |
Price calculation logic for a member component
The weight is calculated per member component. If an item group “Lunch box” has three member components such as Box, Spoon, and Bag. If the price of:
- Box is 100
- Bag is 50
- Spoon is 20
The price of the item is
Weighted average = (100 (box) x 100) / (100 + 50 + 20)
Similarly when you calculate for all three member components, the
- The weight of the item Box is 58.23
- The weight of the item Bag is 28.23
- The weight of item Spoon is 12.54
If Shopify's price is 120 then when it comes to NetSuite price is divided to the component according to the weight. The sale price for the item Box is calculated as
(120 * Weighted average/100)
Orders member components set up
The “Shopify Order to NetSuite Order Add” flow syncs item group data based on the option selected in the Manage NetSuite item groups using setting. If you select a member component, the price and taxes are equally considered by all the member components. An “eTail Line Order ID” is generated for each member component in the <Item group ID>_memberitem_<num> format. For more details, see the image below.
Shopify order
NetSuite order with member component
Order with a master component set up
The price and tax are considered from the master component and other member components are not considered and marked as 0 on the sales order. As per the below image, “CPU” is selected as the master component, and the price, quantity, and tax is calculated only for the master component. An “eTail Line Order ID” is generated for each member component in the <Item group ID>_memberitem_<num> format. Similarly, for the master component, it is generated in the <Item group ID>_masteritem_<num> format. For more details, see the image below.
NetSuite order with a master component
Sync item group order fulfillment
You can only fulfill the components and not the item group. The “NetSuite Fulfillment to Shopify Fulfillment Add” flow supports to sync full and partially fulfilled item group orders. The “NetSuite Fulfillment to Shopify Fulfillment Add” flow syncs the comma-separated tracking numbers only after the item group is completely fulfilled. It is recommended that you add the tracking numbers of the previous fulfillment to the final fulfillment.
Limitation: In case of partial fulfillment, the “NetSuite Fulfillment to Shopify Fulfillment Add” flow does not sync the tracking numbers of the previous fulfillment.
Example: An item group “Lunch box” has four member components
- Box with quantity 3
- Bag with quantity 2
- Spoon with quantity 1
- Mini box with quantity 1
First fulfillment: Box (2), Bag (1), and Mini box(1).
Second fulfillment: Box (1), Bag (1), and Spoon (1).
The sum of two fulfillments is Box(3), Bag(2), Spoon(1), and Mini box(1).
- In the Manage NetSuite item groups using setting, if you select Member component: After the first fulfillment, as the item group is not completely fulfilled, when you run the “NetSuite Fulfillment to Shopify Fulfillment Add” flow no information is synced to Shopify. Even if individually, the member component Mini box is fulfilled, no information is synced to Shopify. After the second fulfillment, as the entire item group with all components are fulfilled, the flow changes the Shopify order status as “Fulfilled.” As per the above example scenario, the flow syncs the comma-separated tracking numbers only in the second and final fulfillment. You can also include the previous fulfillment tracking numbers if required.
- In the Manage NetSuite item groups using setting, if you select Master component, as Mini box in the eTail Master component field, after the first fulfillment, the “NetSuite Fulfillment to Shopify Fulfillment Add” flow changes the Shopify order status as “Fulfilled.” In this scenario, the flow does not consider the other member component's fulfillment. The comma-separated tracking numbers are synced only for the master component (Minibox).
Note: In the Manage NetSuite item groups using setting, if you select Master component, and in the eTail Master component field if you do not select any member component, the flow does not sync fulfillment information to Shopify.
Sync item group order inventory
The item group quantity and inventory is managed at the component level. The behavior of the item group inventory is similar to the kit inventory.
NetSuite Kit and Item Group Inventory to Shopify Inventory Add/Update |
||
Member |
Master item |
|
Quantity calculation |
The minimum quantity of among all the member components is considered and synced to Shopify. |
The selected master component quantity is considered and synced to Shopify. |
Many to one |
Example:
In this scenario, the sum of the quantity of the item Box is calculated for all the three locations (California, Texas, and Florida). Similarly, the sum of items Bag and Spoon are also calculated. Whichever item’s sum is minimum, that is considered and synced to Shopify. |
Example:
In this scenario, the sum of item Bag is calculated for all the three locations and synced to Shopify. |
One to one - NetSuite location |
Example:
In this scenario, the minimum of the three items that is either Box, Bag, and Spoon are calculated for the California location and are synced to Shopify. Similar calculation is performed for Texas and Florida locations. |
Example:
In this scenario, the item Bag quantity is synced to the locations California, Texas, and Florida. |
Configure your NetSuite saved search
Prerequisite: Before you run the “NetSuite Kit and Item Group Inventory to Shopify Inventory Add/Update” flow, configure the NetSuite saved search.
- Login to your NetSuite account.
- In the global search bar, enter Celigo Shopify kit inventory and item group export.
- From the search results, select the appropriate saved search.
- On the “Celigo Shopify kit inventory and item group export [<account name>]” page, click Edit this Search.
-
Go to Criteria > Standard
- Click on the Type row.
- Next to the Type drop-down list, click Expand.
- On the “Saved Item Search” window, select Item Group and Kit/Package.
-
Click Set.
Filter
Description
Type
Is any of Item Group, Kit/Package
- Go to Results > Columns.
-
Add the following records:
-
For “Member item : Internal ID”
- Click to add a new row.
- Enter Member Item Fields…
- On the “Saved Search Item” window, from the “Member Item Field” drop-down list, select Internal ID.
- In the Custom label column, enter member_item_id.
-
For “eTail master component : Internal ID”
-
Repeat steps i to v from the previous section.
Field
Custom label
Member item : Internal ID
member_item_id
eTail master component : Internal ID
Note: In this field, select “eTail master component” only if you select Master component the Manage NetSuite item groups using integration app setting. If you select the Member component in the integration app setting, do not select any value in this NetSuite field.
master_component_id
-
Repeat steps i to v from the previous section.
-
For “Member item : Internal ID”
- Click Save.
- The item group does not support the lot numbered, and serialized as member components.
- You cannot have item groups with a combination of member and master component setup. In the Manage NetSuite item groups using setting, you cannot select the member component option while and in NetSuite, in the eTail Master component field, you cannot select the master component at the same time.
- On a few specific item prices, as we are unable to sync the exact item price, due to internal calculations, you might see 0.01 or 0.02 variance on the item price.
Comments
Small thing - the screen shots that are intended to show the price allocation results are blurry and illegible. Also, the box, bag and spoon calculations don't look correct. Close, but not correct.
https://docs.celigo.com/hc/en-us/articles/360050696312-Sync-NetSuite-item-groups suggests that Orders and Fulfillments can support item groups
How are these records imported into Shopify in the first place?
Please sign in to leave a comment.