Legacy platform

Change product variation

A customer may want to choose a different variation of a product that is already included in the order. In such situations, the user must be able to change the product variation conveniently.

Solution

The following section describes APIs, user exits, services, and other components.

When the user chooses to change the product variation from the related tasks in the Order Summary or Order Line Summary screen, the order lines are displayed in the Add Products screen. The getCompleteOrderDetails API is called to retrieve the complete details of the order, which includes the modification permissions at the order level.

If the user does this task from the Order Line Summary screen, the order line is highlighted and details are loaded automatically. The getCompleteOrderLineList API is called to retrieve the line level details and the modification permissions at the line level.
  • For a confirmed order, if the ADD_LINE modification type is allowed at the order level and the CANCEL modification type is allowed at the order line level, the user can change the product variation.
  • For a draft order, if the ADD_LINE modification type is allowed at the order level and the REMOVE modification type is allowed at the order line level, the user can change the product variation.

In a confirmed order, the existing order line is canceled and a new order line is added. However, in a draft order, the existing order line is removed.

Note: When the user changes the variation product in an order, the existing order line attributes are not copied to the newly added variation.

When the user selects a valid combination of attributes and confirms the change, the getCompleteItemList API is called to retrieve the related products that are associated with the variation product. If the variation product is a bundle parent, the user can also view its components.

When the user changes the product variation of a bundle parent product, the components that belong to the bundle parent also change accordingly.

When the user updates the changes, the modifyFulfullmentOptions API is called. This API internally calls the changeOrder and validateItemForOrdering APIs. If there is a product validation error, the changeOrder API call rolls back.

Note: Real time availability check is not performed when the user changes a variation. It is performed only when the user confirms the selected variation.

Implementation

The following section describes the rules that you must configure.

  • Changing the product variation is a permission-controlled task. For information about administering user group permissions, see the Administering user group permissions.
  • Enable the following rules appropriately:
    • The "Add Line" status modification rule at the order level and the "Cancel" status modification rule at the order line level for confirmed orders.
    • The "Add Line" status modification rule at the order level and the "Remove" status modification rule at the order line level for draft orders.

For more information about status modification rules, see the Configuring Distributed Order Management.

End-user impact

Users can change the product variation to suit the customer's needs even after an order is confirmed.