Cancel orders

Customers can cancel products immediately after the order is created or after the products are shipped. In such cases, the user must be able to conveniently cancel or stop the delivery of products in the order.

Solution

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

A user can cancel orders or order lines by using the "Cancel Products" related task from the Order Summary screen. The "Cancel Products" related task is displayed only if the user has the appropriate resource permission.

When the user chooses to cancel products, the Cancel Products screen is displayed. When the Cancel Products screen loads, the getCompleteOrderDetails API is called to retrieve the order modification permissions. If the CANCEL modification type is allowed for the order, the order can be canceled.

The getCompleteOrderLineList API is called to retrieve the order lines in the order and important details such as invoice creation status and the quantity available to cancel, along with other details. The getCompleteOrderLineList API retrieves the modification permissions at the order line level. If the CANCEL modification type is allowed for the order lines, individual order lines can be canceled.

When the user chooses to cancel all available lines, the option to select individual order lines is disabled. However, when the user chooses to cancel specific order lines, the option to select individual order lines is enabled. If there are no order lines eligible for cancellation, an appropriate message is displayed.

The YFSGetOverallStatusUE user exit is called to display the OverallStatus value for each order line.

The cancelOrder API is called to cancel an order or order lines. When all the order lines in an order are canceled, the complete order is canceled.

Note: If the user attempts to cancel a order line for which an invoice has been created, an appropriate error message is displayed and the user cannot cancel the order line.

When an order line is canceled, all associated delivery and provided services are canceled with the order line.

If the cancelOrder API is successful, a default note is logged for the order which mentions the customer and the reason for order cancellation. For more information, see Automatic notes logging.

When an order is canceled, an order cancellation alert is raised. For more information, see Order cancellation notification.

Stop delivery request
The stop delivery request in applicable only to shipping order lines. If an order line is in "Shipped" status, a stop delivery request must be applied to the order line, when the user attempts to cancel the order line. This can be achieved by configuring the status modification rules appropriately.
  • If the organization wants to allow a stop delivery request on shipped lines, you must enable the "Change Stop Delivery Request" status modification rule for the "Shipped" status at the order line level.
  • If the organization does not support stop delivery requests, you must disable this rule.

The manageStopDeliveryRequest API manages the request for the stop delivery.

If the entire order is canceled, the changeOrder API is called to save the changes. If stop delivery request is to be applied to all the order lines in an order, the manageStopDeliveryRequest API is called to save the changes.

As part of the Manage Stop Delivery transaction, the ON_SUCCESS event calls the YCD_StopDeliveryRequest_Alert_8.0 service, which generates a stop delivery request alert. The createException API is used to create an alert of type YCD_STOP_DELIVERY and the alert is assigned to the YCD_STOP_DELIVERY queue.

When a stop delivery request is applied to an order line, the requested date and the quantity to be stopped are updated for the order line.

A return order must be created to return the products for which the stop delivery request is applied. When the return order is received, as part of the Receipt Complete transaction, the ON_RECEIPT_COMPLETE event calls the YCD_StopDeliveryRequest_UpdateQty_8.0 service, which marks the stop delivery request as successful, and the successfully stopped quantity is updated on the order.

When order lines are cancelled successfully, the Payment Confirmation screen is displayed. For more information about payment confirmation, see Confirm payments.

For order lines that are placed on stop delivery request, there is no change in the payment details.

Implementation

The following section describes the rules that you must configure.

  • Order lines can either be canceled or requested for stop delivery but not both. Therefore, you must configure the "Cancel" and "Change Stop Delivery Request" status modification rules to be mutually exclusive; If an order or order line in a particular status can be cancelled, stop delivery request cannot be allowed for the order or order line in the same status. For more information, see the Configuring Distributed Order Management.
  • You must configure the cancellation reason codes to allow users to enter the reasons for canceling a product. For more information, see the Sterling Business Center System Configuration.
  • Canceling orders is a permission-controlled task. For more information about administering user group permissions, see the Administering user group permissions
  • You can configure a default note to be logged automatically upon successful cancellation of an order. For more information, see Automatic notes logging.

End-user impact

The user can cancel order lines or stop the delivery of order lines that customers do not want to purchase.