Fluent Commerce Logo
Docs
Sign In

Product Management

Essential knowledge

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,`
there is a rule UpdateCategoriesForStandardProduct. This rule executes the updates of the categories against a Standard Product, this works following the below logic:

  • 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`
, there is a rule UpdateCategoriesForVariantProduct. This rule executes the updates of the categories against a Variant Product, this works following the below logic:

  • 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`
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 a new 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 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`
. Once this is pressed it will trigger an event in the workflow, this will then update the status of the Product to 
`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`
. Once this is pressed it will trigger an event in the workflow, this will then update the status of the Product to 
`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`
. Once this is pressed it will trigger an event in the workflow, this will then update the status of the Product to 
`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`
. Once this is pressed it will trigger an event in the workflow, this will then update the status of the Product to 
`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.

Fluent Commerce

Fluent Commerce

Copyright © 2024 Fluent Retail Pty Ltd (trading as Fluent Commerce). All rights reserved. No materials on this docs.fluentcommerce.com site may be used in any way and/or for any purpose without prior written authorisation from Fluent Commerce. Current customers and partners shall use these materials strictly in accordance with the terms and conditions of their written agreements with Fluent Commerce or its affiliates.

Fluent Logo