Order Return
Summary of Changes: (The purpose of this table is to keep traceability and Product team to highlight the things that were changed into the scope, based on comments or discussions)
Version | Date | Created / Updated | Notes |
---|---|---|---|
1.0 | 02.08.23 | Bogomil Pavlov | First publish |
1.1 | 24.08.23 | Bogomil Pavlov | Return Reasons |
The purpose of this document is to describe how we return orders on Very.
Very do support full and partial returns on orders but their partial returns are per product. Which means we can return full order, only one product of an order or only one quantity of a product.
<v1.1>We want to store the possible return reasons in Hemi. Please note we have to display the name and send the code
Code | Name |
---|---|
1 | Order More Than One For Size |
2 | Choice Style Does Not Suit |
3 | Item Does Not Fit - Too Big |
4 | Item Does Not Fit - Too Small |
5 | Item Does Not Fit - Too Long |
6 | Item Does Not Fit - Too Short |
7 | Poor Quality |
8 | Not As Pictured/Described |
9 | Recomemnded By Us - Not Suitable |
10 | Faulty, Please Provide Details |
11 | Received Damaged |
12 | Wrong Item Delivered |
13 | Arrived Too Late |
14 | Missing Parts/Incomplete |
</v1.1>The shipping cost is refunded when the order is fully returned. For them the return works for all type of orders “Partially Shipped“ and “Shipped” (post shipment). We want all triggers, status, error handling, etc. to be as per the Refunds send general logic
API Call: POST https://api-sl-2-3.kornitx.net/order/{orderId}/return
API Docs: TBA
Sample Request: POST https://api-sl-2-3.kornitx.net/order/48079310/return
{
"reference": "TestReturnRef1",
"items": [
{
"id": "88423215",
"quantity": 2
}
]
}
Mapping:
Very Field | Required | Hemi Field | Comment | |
---|---|---|---|---|
reference |
Yes | Order Payment > Reason | ||
items |
||||
id |
Yes | Product In Order > Item Order Line ID | ||
quantity |
Yes | Need to be calculated based on the price |
Sample Error Response #1:
{
"error": {
"message": "Permission denied (api-sl-2-3.order-return.create)",
"code": 0
}
}
Sample Error Response #2:
{
"error": {
"message": "Invalid order status",
"code": 0
}
}
Sample Error Response #3:
{
"error": {
"message": "Invalid item specified, index 0",
"code": 0
}
}
Sample Success Response:
[
{
"id": 771,
"items": [
{
"id": 88423215,
"order_id": 50106309,
"quantity": 3
}
]
}
]
KornitX field | Hemi Field | Comment | |
---|---|---|---|
id | Order Payment > Transaction Id | We want to store the id as a transaction id of the refund | |
Items | |||
id | N/A | ||
order_id |
N/A | ||
quantity |
N/A |
Based on the response we need to mark the order as “Cancelled” if all the lines and shipping cost is refunded else it remains on the actual status. Also we want to update the product statuses as per abstraction If any errors are returned we want to store them in Order Errors table.
We want to include additional validation and do not allow to make partial return on a single product. All other validations are as per the Refunds send general logic