Product Management
Author:
Fluent Commerce
Changed on:
14 Nov 2023
Overview
Product Master in Fluent OMS is defined in this hierarchy:
- Categories
- Standard Product
- Variant Product
The UPSERT_PRODUCT event will help the user to manage the product-related entities in the OMS.
Key points
- Standard Product Management outlines the features that are available in the reference workflows to manage any Standard Products within a Product Catalogue.
- When a Standard Product is updated there is a step specifically that will update the categories associated with that Standard Product. This is in the same flow as the Update Product, however, there is a distinct step in the flow where the category associations are updated.
- When a Variant Product payload is sent into the Product Catalogue via a UPSERT_PRODUCT event, the workflow will identify whether that Product exists or not and create a new Product if the given Product doesn't exist.
Standard Product Management
Standard Product Management outlines the features that are available in the reference workflows to manage any Standard Products within a Product Catalogue.
Create Standard Product
When a Standard Product payload is sent into the Product Catalogue via a UPSERT_PRODUCT event, the workflow will identify whether that Product exists or not and create a new Product if the given Product doesn't exist.
The workflow follows the below steps to create a Standard Product:
- The workflow checks the payload to ensure it is a valid Standard Product.
- It will check if the Product already exists. If it does it will update the Product, otherwise:
- The Product will be created
- The Product will be set to active or inactive depending on the status of the payload
Once this Product is created it can now be used as a parent Product for any Variant Products as well will now be updated when it is sent into the UPSERT_PRODUCT ruleset again.
Update Standard Product
When a Standard Product payload is sent into the Product Catalogue via a UPSERT_PRODUCT event, the workflow will identify whether that Product exists or not and update the existing Product if the given Product already exists.
The workflow follows the below steps to update a Standard Product:
- The workflow checks the payload to ensure it is a valid Standard Product.
- It will check if the Product already exists. If it doesn't it will create the Product, otherwise:
- The Product will be updated, and any values sent as part of the payload will be overwritten to the new values
- Any category association changes will be made, adding or removing categories based on the new contents in the payload
- The Product will be set to active or inactive depending on the status of the payload
The Product has now been updated, any category changes that were made to the Product will be reflected in Virtual Position calculations at the next batch upload.
Update Categories associated with Standard Product
When a Standard Product is updated there is a step specifically that will update the categories associated with that Standard Product. This is in the same flow as the Update Product, however, there is a distinct step in the flow where the category associations are updated.
In the workflow under the ruleset
`UpdateStandardProduct,`
- As part of the payload for updating a Product, we accept an array of strings which are the associated category references
- The rule will get the current associated categories and compare them to the new payload to find differences
- If there are no differences it will exit, otherwise:
- Any categories that are in the new payload and not in the old payload will be added via a mutation
- Also, any categories that are in the old payload and not in the new payload will be removed via a mutation
- This will end with the current associated categories being the same as the array passed in the current workflow payload
Updating categories allows for category controls to be applied to the correct Products and their Virtual Positions.
Standard Product Management outlines the features that are available in the reference workflows to manage any Standard Products within a Product Catalogue.
Create Variant Product
When a Variant Product payload is sent into the Product Catalogue via a UPSERT_PRODUCT event, the workflow will identify whether that Product exists or not and create a new Product if the given Product doesn't exist.
The workflow follows the below steps to create a Variant Product:
- The workflow checks the payload to ensure it is a valid Variant Product
- It will check if the Product already exists. If it does it will update the Product, otherwise:
- The Product will be created, including associated with any Standard Products
- The Product will be set to active or inactive depending on the status in the payload
- Once this is down, the Inventory Catalogue will be notified to update the Inventory Positions associated with the Variant Product.
Once the Product is created it can be updated via the UPSERT_PRODUCT event and will trigger Inventory Position updates.
Update Variant Product
When a Variant Product payload is sent into the Product Catalogue via a UPSERT_PRODUCT event, the workflow will identify whether that Product exists or not and update the existing Product if the given Product already exists.
The workflow follows the below steps to update a Variant Product:
- The workflow checks the payload to ensure it is a valid Variant Product.
- It will check if the Product already exists. If it doesn't it will create the Product, otherwise:
- The Product will be updated, and any values sent as part of the payload will be overwritten to the new values, including parent Product associations
- Any category association changes will be made, adding or removing categories based on the new contents in the payload
- The Product will be set to active or inactive depending on the status in the payload
- The Inventory Catalogue will be notified of this update to trigger any required changes in Inventory Positions
The Product has now been updated, any category changes that were made to the Product will be reflected in Virtual Position calculations at the next batch upload.
Update Categories associated with Variant Product
When a Variant Product is updated there is a step specifically that will update the categories associated with that Variant Product. This is in the same flow as the Update Product, however, there is a distinct step in the flow where the category associations are updated.
In the workflow under the ruleset
`UpdateVariantProduct`
- As part of the payload for updating a Product, we accept an array of strings which are the associated category references
- The rule will get the current associated categories and compare them to the new payload to find differences
- If there are no differences it will exit, otherwise:
- Any categories that are in the new payload and not in the old payload will be added via a mutation
- Also, any categories that are in the old payload and not in the new payload will be removed via a mutation
- This will end with the current associated categories being the same as the array passed in the current workflow payload
Updating categories allows for category controls to be applied to the correct Products and their Virtual Positions.
The Global Inventory Module includes as part of the Product Catalogue workflow the ability to create and update categories to be associated with Products.
Create Category
When a Category payload is sent into the Product Catalogue via the
`UPSERT_CATEGORY`
- The workflow will validate whether the Category payload is valid
- It will then check if the category already exists, if it does exist it will update the category, otherwise:
- The category will be created, with the values against the category being applied based on the attributes in the payload
- Once the Category is created the workflow will set it to either Active or Inactive based on the status in the payload
- Finally, the workflow will either Activate or Deactivate the workflow based on what the status in the previous step is
Once the Category is created it can now be used as a reference for Products to be applied against and to create Category buffers.
Update Category
When a Category payload is sent into the Product Catalogue via the UPSERT_CATEGORY event, the workflow will identify whether the Category is new or existing and create or update the category based on that analysis. The process which occurs when an existing Category is sent is as follows:
- The workflow will validate whether the Category payload is valid
- It will then check if the category already exists, if it doesn't exist it will create the category, otherwise:
- The category will be updated, with the values against the category being updated to the attributes sent in the payload. Only the attributes that are sent will be updated
- Once the Category is updated the workflow will set it to either Active or Inactive based on the status in the payload
- Finally, the workflow will either Activate or Deactivate the workflow based on what the status in the previous step is
Updating a category allows to keep the status accurate and ensure complete details within Fluent.
The workflow includes User Actions against Products to activate and deactivate the Products. This allows any user in Fluent OMS to trigger a Product status update without needing to do a full Product Upsert.
Activate Standard Product via User Action
When viewing a Standard Product in Fluent OMS there will be a user action button to Activate the Product, only if the Product is currently in a status other than
`ACTIVE`
`ACTIVE`
Once a Product has been updated it will cause an event to flow into the associated Inventory Catalogue to update any associated Inventory Positions.
Deactivate Standard Product via User Action
When viewing a Standard Product in Fluent OMS there will be a user action button to Deactivate the Product, only if the Product is currently in a status other than
`INACTIVE`
`INACTIVE`
Once a Product has been updated it will cause an event to flow into the associated Inventory Catalogue to update any associated Inventory Positions.
The workflow includes User Actions against Products to activate and deactivate the Products. This allows any user in Fluent OMS to trigger a Product status update without needing to do a full Product Upsert.
Activate Variant Product via User Action
When viewing a Variant Product in Fluent OMS there will be a user action button to Activate the Product, only if the Product is currently in a status other than
`ACTIVE`
`ACTIVE`
Once a Product has been updated it will cause an event to flow into the associated Inventory Catalogue to update any associated Inventory Positions.
Deactivate Variant Product via User Action
When viewing a Variant Product in Fluent OMS there will be a user action button to Deactivate the Product, only if the Product is currently in a status other than
`INACTIVE`
`INACTIVE`
Once a Product has been updated it will cause an event to flow into the associated Inventory Catalogue to update any associated Inventory Positions.