Product Selection Step

The first step of the journey, and where the user selects which products they wish to return, along with return reasons / attachments.

Example Flow

Example response (properies explained below):

{
  "type": "product_selection",
  "nextType": "return_options",
  "payload": {
    "status": "delivered",
    "orderDate": "2024-01-07T00:00:00",
    "deliveryDate": "2024-01-10T00:00:00",
    "confirmButtonText": "Confirm your selection",
    "products": [
      {
        "id": "O111111",
        "name": "Cloudrunner 2",
        "size": "UK 9",
        "image": "https://example.com/image1.png",
        "price": {
          "amount": 149.99,
          "currencyCode": "GBP"
        },
        "colour": "Black",
        "quantity": 5,
        "reasonsForReturn": [
          {
            "id": "does-not-fit",
            "text": "Does not fit properly",
            "options": [
              {
                "id": "item-too-big",
                "text": "Item too big"
              },
              {
                "id": "item-too-small",
                "text": "Item too small"
              }
            ]
          },
          {
            "id": "item-damaged",
            "text": "Item was damaged",
            "options": [
              {
                "id": "arrived-damaged",
                "text": "Item arrived damaged",
                "requestImage": true
              },
              {
                "id": "didnt-function",
                "text": "Item didn't function properly",
                "requestImage": true
              }
            ]
          },
          {
            "id": "ordered-more-than-one-size",
            "text": "Ordered more than one size"
          },
        ]
      },
      {
        "id": "O222222",
        "name": "Silhouette Bra",
        "productType": "bra",
        "size": { "band": "10", "cup": "B" },
        "image": "https://example.com/image2.png",
        "price": {
          "amount": 49.99,
          "currencyCode": "GBP"
        },
        "nonReturnableReason": "Not Returnable - Final Sale"
      }
    ]
  }
}

Properties

* indicates required field

FieldDescription
type*The current step_type.
nextType*The next step_type in the journey.
payload*Contains the details of the product selection.
payload.status*The status of the order (e.g., delivered).
payload.orderDate*The date the order was placed.
payload.deliveryDate*The date the order was delivered.
payload.confirmButtonText*The text displayed in the confirmation button.
payload.products[]*See below

Products

FieldDescription
products[].id*The unique identifier for the product.
products[].name*The name of the product.
products[].size*The size of the product.
products[].image*The URL of the product image.
products[].price*The price of the product.
products[].price.amount*The amount of the price.
products[].price.currencyCode*The currency code of the price. Supported codes: (GBP, USD, EUR)
products[].colour*The colour of the product.
products[].quantity*The quantity of the product.
products[].productTypeThe type of the product (e.g., bra).
products[].nonReturnableReasonThe reason why the product is non-returnable. If present, the product cannot be selected for return.
products[].reasonsForReturn*See below

Reasons for Return

FieldDescription
reasonsForReturn[].id*The unique identifier for the reason for return.
reasonsForReturn[].text*The text description of the reason for return.
reasonsForReturn[].requestImageWhen true, the user has the option to upload images.
reasonsForReturn[].optionsA list of nested options, displayed when the parent item is clicked.
reasonsForReturn[].options[].id*The unique identifier for the nested return option.
reasonsForReturn[].options[].text*The text description of the nested return option.
reasonsForReturn[].options[].requestImageWhen true, the user has the option to upload images.

selected_products example

[
    {
        "id": "O111111",
        "name": "Cloudrunner 2",
        "size": "UK 9",
        "image": "https://example.com/image1.png",
        "price": {
          "amount": 149.99,
          "currencyCode": "GBP"
        },
        "colour": "Black",
        "quantity": 5,
        "returnReason": { // the selected return reason
            "id": "arrived-damaged",
            "text": "Item arrived damaged"
        },
        "attachments": [
          "https://example.com/attachment1.png",
          "https://example.com/attachment2.png"] // uploaded attachments
    },
]

What’s Next