Summary
Partial returns are dependent on calculating points to refund based on unit price and quantity.
Annex Cloud supports various return, cancel, and hold functionality that helps customers to understand their business processes.
The several use cases are explained below.
- Place an order.
- Partial return order.
- Full return order.
- Cancel order.
- Partial cancel order.
Place an order
Create a loyalty user and place an order for three products (D1, D2, and D3) with quantities of one, two and three respectively. The unit prices for these products are 100, 200 and 300. There is a ratio of one and no hold points flag applied to this order. The user earns the points based on below calculation.
Points earned = Unit price * Ratio * Quantity
= D1+D2+D3
= 100*1*1+200*2*1+300*1*3
= 100+400+900
= 1400
Total awarded points on this order = 1400

Administrators can view the details of awarded points on the Order Report.
Navigation: Reports > Orders

On the Order Details Report, the administrators can view the details of the products included in the order as well as their shipping status.

Note: If the order is in ship status, the user can return it, but they cannot cancel it. Doing so would be an invalid use case. Additionally, the user cannot ship the returned or cancelled order or product.
Partial return order
-
Partial return order with full quantity
If user wants to return specific product items, then can use the Patch: Partial return API.
For example, if the user wants to return item D1 with a quantity of one, they can initiate a partial return order using the API. Once the return is successful, 100 points are deducted from the user’s account, and status of that product is updated to returned.
Points earned = Unit price * Ratio * Quantity
= D2+D3
= 200*1*2+300*1*3
= 400+900
= 1300
Total awarded points on this order = 1400
User can view the status of the partial returned order on the Order Details Report below, as well as the status of the other shipped items D2 and D3.

-
Partial return order with one quantity
If user want to return the order with a quantity of one from D2 and D3. When user returns the order, 500 points are removed from their account and the status is displayed as returned.
Points earned = Unit price * Ratio * Quantity
= D2+D3
= 200*1*1+300*1*2
= 200+600
= 800
Prior to the return of the order, the user had 1300 available points. After returning the order, the available points reduced to 500. Therefore, the total earned points after the return of the order are 800(1300-500=800).
Total awarded points on this order = 1400
User can view the status of partially returned orders in the Order Details Report below. Additionally, user can view the status of shipped items D2 and D3, as well as details of the retuned quantity.

All of these user actions are captured in the activity window.

User can view order details activity on All Interaction Report.

Full return order
The full return order allows admin to handle return requests. Create a loyalty user and place an order for three products (D1, D2, and D3) with quantities of one, two and three respectively. The unit prices for these products are 100, 200 and 300. There is a ratio of one and no hold points flag applied to this order. The user earns the points based on below calculation.
Points earned = Unit price * Ratio * Quantity
=D1+D2+D3
= 100*1*1+200*2*1+300*1*3
= 100+400+900
= 1400
Total awarded points on this order = 1400
This order details are displayed in the order report.

If the user wants to return full order, they should use Patch: Partial return API and set the status as return. Once return is successful, 1400 points are deducted from user’s account and status is updated to returned.

In the Order Details Report, user can view the all the return quantities for D1, D2 and D3.

All of these user actions are captured in the activity window.

Cancel order
If the hold settings are applied on the purchase action and the order is on the hold, then the user would be able to cancel the order. The order, products status must be on HOLD to cancel the order. In the purchase action, the number of days that the points will be on hold from the order placement date should be specified.

Create a loyalty user and place an order for three products (D1, D2, and D3) with quantities of one, two and three respectively. The unit prices for these products are 100, 200 and 300. The ratio is one and hold points flag applied on this order.
Points on Hold=1400
When a user places an order, the points are not immediately awarder to their account due to the hold points flag.
These order details are displayed on Order Report.

The Order Details Report and Hold Points Report both display that all of these products D1, D2 and D3 status are on hold.


In this hold status, the user can partially ship this and cancel product D1 order but cannot return it.
Note: If the order is put on hold, it is acceptable to ship and cancel the order. However, it is not permissible to return the order in such a scenario as it would be an invalid use case.
The points for the order (Product D1) are currently on hold status and status has been changed to zero.
The user earns the points based on below calculations.
Points earned = Unit price * Ratio * Quantity
= 100*1*1
= 100
Total awarded points hold on this order = 1300

If the user fully cancels the order for product D2, their points will be removed based on calculation below.
Points earned = Unit price * Ratio * Quantity
= 200*1*2
= 400
400 points will be removed from the hold when the user cancels the product.
Total points are on hold = 900

Partial cancel order
If a loyalty user wants to partially cancel order, they should use Patch: Partial return API and set the status as cancel. Loyalty user cancels two quantities of product D3 and wants to ship one quantity of the same product.
Points earned = Unit price * Ratio * Quantity
= 300*1*1
= 300
