Introduction to returns
Last updated
Last updated
A return is when a customer sends a purchased product back, seeking a refund, exchange, or store credit. The return process typically involves the customer physically bringing the items to the store or the customer initiating an online return.
As items cannot be returned for different reasons (customized item, special offer, etc.), an ItemReturnJob
has two arrays of items: returnableItems
and notReturnableItems
. These items represent the items that are, as the name suggests, returnable and not returnable.
In the case of an ItemReturnJob
being created automatically in the designated workflow, both arrays are filled automatically as well.
An item will be placed in the notReturnableItems
array if the item was part of a related Service Job that had the flag itemsReturnable
set to false
otherwise it will be placed in the returnableItems
array.
Upon receiving the returned item, the item's condition is assessed, eligibility is checked based on the return policy, and a suitable resolution is provided (e.g., refund or store credit). This requires the ability to create a return manually.
An ItemReturnJob
serves as a container for all potential ItemReturns
associated with a placed order. It encompasses all items eligible for return (and not eligible for return) and tracks actual returned items. During interactions with the ItemReturnJob
, validations ensure that only items that were handed over in the given order can be returned in the handed over quantities.
An ItemReturnJob
is automatically generated through the designated workflow after the process. If the handover feature is not utilized, the ItemReturnJob
can be created via .
An ItemReturn
represents all items actually returned within the associated ItemReturnJob
. It is imperative to have a valid ItemReturnJob
before creating an ItemReturn
.
While adding or updating an ItemReturn
within an existing ItemReturnJob
, item validations ensure that the returned quantity does not exceed the delivered and previously returned amounts.
When accepting returned items, the condition of the items can be defined. In the , the default value for conditions is set to "not damaged". However, there is no default value defined in the back end.
Localized itemConditions
can be added to the returnConfiguration
via .
The translation depends on the locale of the user using this endpoint and the tenantLocaleConfiguration.
If in the process items have been marked as handed over by setting the handedOverQuantity
value to at least 1, then those items will populate one of those arrays. The handedOverQuantity
sets the returnable
field.
If there is no or none of the items of the handover job have a handedOverQuantity
set to at least 1, the arrays will be populated with the items of the related . In this case, the returnable
attribute is set by the picked
quantity of the items in the pick job.
You can move items from one array to another by using the corresponding .
Line items can only be moved if the itemReturns
array of the corresponding ItemReturnJob
is empty and if the returned
item's value to move is 0.