Return Options Step

The step in which the user selects return options for their selected products.

Example Flow

Example response (properies explained below):

{
  "type": "return_options",
  "nextType": "important_information",
  "payload": {
    "confirmButtonText": "Confirm",
    "additionalStoreCredit": {
      "amount": 10.00,
      "currencyCode": "USD"
    },
    "products": [
      {
        "id": "O111111",
        "returnOptions": [
          {
            "text": "Replacement",
            "type": "replacement",
            "description": "This option is unavailable.",
            "unavailableReason": "Out of stock"
          },
          {
            "text": "Standard refund",
            "type": "refund",
            "description": "Timing depends on your original payment."
          },
          {
            "text": "Store credit",
            "type": "store_credit",
            "description": "Get a gift card via email once your return has been approved."
          }
        ],
        "replacementSelector": {
          "isEnabled": true,
          "colours": [
            {
              "name": "Eclipse | Black",
              "image": "https://example/eclipse-black.png",
              "sizes": [
                { "value": "7", "disabled": true },
                { "value": "8" }
              ]
            }
          ]
        }
      },
      {
        "id": "O333333",
        "returnOptions": [
          {
            "text": "Replacement",
            "type": "replacement",
            "description": "Return your item and get a replacement within 3-5 business days."
          },
          {
            "text": "Standard refund",
            "type": "refund",
            "description": "Timing depends on your original payment."
          },
          {
            "text": "Store credit",
            "type": "store_credit",
            "description": "Get a gift card via email once your return has been approved."
          }
        ],
        "replacementSelector": {
          "isEnabled": true,
          "colours": [
            {
              "name": "Sand",
              "image": "https://example/sand.png",
              "hexCodes": [
                "#DAB297"
              ],
              "sizeParts": [
                {
                  "type": "band",
                  "label": "Band:",
                  "sizes": [
                    { "value": "8", "disabled": true },
                    { "value": "10" }
                  ]
                },
                {
                  "type": "cup",
                  "label": "Cup:",
                  "sizes": [
                    { "value": "A", "disabled": true },
                    { "value": "B" }
                  ]
                }
              ]
            }
          ]
        }
      }
    ]
  }
}

Properties

* indicates required field

FieldDescription
type*The current step_type.
nextType*The next step_type in the journey.
payload*Contains the details of the return options.
payload.confirmButtonText*The text displayed in the confirmation button.
payload.additionalStoreCreditAny additional store credit the user will receive.
payload.additionalStoreCredit.amountThe amount of additional store credit the user will receive.
payload.additionalStoreCredit.currencyCode(GBP, USD, EUR)
payload.products*See below

Products

FieldDescription
payload.products[].id*The unique identifier for the product.
payload.products[].returnOptions*See below
payload.products[].replacementSeelctor*See below

Return Options

FieldDescription
returnOptions*A list of return options available for the product.
returnOptions[].text*The text description of the return option.
returnOptions[].type*The type of the return option (replacement
returnOptions[].description*The description of the return option.
returnOptions[].unavailableReasonThe reason why the return option is unavailable, the option cannot be selected if present.

Replacement Selector

FieldDescription
replacementSelectorContains the details of the replacement options.
replacementSelector.isEnabled*Whether the replacement selector is enabled for this product.
replacementSelector.colours*List of colours and available sizes for each colour.
replacementSelector.colours[].name*Name of the colour / variant.
replacementSelector.colours[].image*URL of the colour / variant image.
replacementSelector.colours[].sizes*List of available sizes.
replacementSelector.colours[].sizes[].value*Size value.
replacementSelector.colours[].sizes[].disabledIndicates if the size is disabled.
replacementSelector.colours[].hexCodesList of hex codes for the colour. If provided,
replacementSelector.colours[].sizePartsList of size parts for the colour.
replacementSelector.colours[].sizeParts[].type*The type of the size part e.g. cup for a list of bra cup sizes. Must match a property in the product size object.
replacementSelector.colours[].sizeParts[].label*Label for the size part.
replacementSelector.colours[].sizeParts[].sizes*List of sizes for the size part.
replacementSelector.colours[].sizeParts[].sizes[].value*Size value.
replacementSelector.colours[].sizeParts[].sizes[].disabledIndicates if the size is disabled.

selected_products example

[
    {
        "id": "O111111",
        "name": "Cloudrunner 2",
        "size": "UK 9",
        "image": "some-image-url.jpg",
        "price": {
          "amount": 149.99,
          "currencyCode": "GBP"
        },
        "colour": "Black",
        "quantity": 5,
        "returnOption": { // the selected return option
            "text": "Replacement",
            "type": "replacement"
        },
        "replacementOptions": { // the selected replacement options
          "colour": "Eclipse | Black",
          "size": "7" // or { "cup": "B", "band": "10"}
        },
        "returnReason": {
            "id": "arrived-damaged",
            "text": "Item arrived damaged"
        },
        "attachments": ["attachment1.jpg", "attachment2.jpg"],
    }
]