Re-Ordering

This guide will show you how to develop a flow that enables your customers to repeat their previous orders with identical specifications or modify them to accommodate slight variations. Notably, the order is directed to the same store as the original transaction, ensuring a seamless and consistent experience.

Reorder - Profile-flow.png

Before proceeding, you should have implemented:

Receipts

The flow starts with retrieving a list of existent orders for the customer by calling /api/{customer_account_id}/receipts:

Request

Attribute Type Example Value Description
Authorization HTTP Header string "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9" JWT Token of Customer Account
customer_id string "2c2cb0c9-75e8-4b49-9c1f-713dd79af7ce" Customer account UUID
{
  "method": "get",
  "url": "https://api-public-playground.menu.app/api/customer_accounts/{customer_id}/receipts",
  "headers": {
    "X-Request-ID": "69da3547-204b-4093-a225-54e084c24215",
    "Application": "f3a90488ffee32c3acb6fcd0ca417cf6",
    "Api-Version": 4.38.0,
    "Accept": "application/json",
    "Content-Type" : "application/json",
    "Authorization" : "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzZXRSZWZyZXNoVFRMIjoyNjI4MDAwLCJpc3MiOiJodHRwczovL2FwaS1wdWJsaWMtcGxheWdyb3VuZC5tZW51LmFwcC9hcGkvY3VzdG9tZXJzL2xvZ2luIiwiaWF0IjoxNjkzMjA0MTQ3LCJleHAiOjE2OTMyMDc3NDcsIm5iZiI6MTY5MzIwNDE0NywianRpIjoiM0RiTngwVlB6VmpTTlJkdyIsInN1YiI6IjUwOTA5NjUiLCJwcnYiOiJjYzMyOTIxYTE1NDgwYTExN2Q5YmJjNzJjMGUxMjU2YTY4NTI0NThiIiwiYXBwbGljYXRpb25faWQiOjIwMTUsInNlc3Npb25faWQiOjI4MzQyfQ.1J3_OlydWh32BUNAySZ6Qbj1K0q-_w4KfFnra2X9FbM",
    "X-QB-Enabled" : true,
    "X-Request-ID" : "c10b4a70-6274-490d-80a0-03e7bb826937"
  }
}

Response

{
   "code":200,
   "data":{
      "receipts":[
         {
            "id":"e1a91efb-6398-4abe-a41e-3407632c8245",
            "tax":219,
            "tip":0,
            "total":0,
            "status":"SendDelayed",
            "is_asap":true,
            "is_test":true,
            "refunds":[
               {
                  
               }
            ],
            "subsidy":0,
            "discount":0,
            "refunded":0,
            "subtotal":0,
            "tip_rate":0,
            "discounts":[
               {
                  
               }
            ],
            "pickup_at":"2023-06-28 10:17:33",
            "tax_rates":{
               "5":219
            },
            "created_at":"2023-06-28 10:15:34",
            "order_type":4,
            "combo_meals":[
               {
                  "tax":124,
                  "name":"Combos regulares",
                  "image":{
                     "fullsize":"/storage/images/combo_item_images/2021-09-08/6fd364994648905d3a74b3f05c299b42.png",
                     "thumbnail_small":"/storage/images/combo_item_images/_thumbs280/2021-09-08/6fd364994648905d3a74b3f05c299b42.png",
                     "thumbnail_medium":"/storage/images/combo_item_images/_thumbs720/2021-09-08/6fd364994648905d3a74b3f05c299b42.png"
                  },
                  "items":[
                     {
                        "tax":124,
                        "name":"Làpana Bowl",
                        "type":"Food",
                        "image":{
                           "fullsize":"/storage/images/combo_item_images/2021-09-08/6fd364994648905d3a74b3f05c299b42.png",
                           "thumbnail_small":"                                    \"thumbnail_small\": \"/storage/images/combo_item_images/_thumbs280/2021-09-08/6fd364994648905d3a74b3f05c299b42.png\"",
                           "thumbnail_medium":"/storage/images/combo_item_images/_thumbs720/2021-09-08/6fd364994648905d3a74b3f05c299b42.png"
                        },
                        "total":2599,
                        "pos_id":"4003501",
                        "comment":"test comment combo item 1",
                        "type_id":3,
                        "discount":0,
                        "quantity":1,
                        "subtotal":2599,
                        "tax_rate":5,
                        "modifiers":[
                           {
                              "name":"Spicy brokoli",
                              "price":0,
                              "pos_id":"4003501",
                              "modifier_id":"2049c354-3f23-11ed-936c-1a67b454859d",
                              "translations":{
                                 "name":"brócoli picante"
                              }
                           }
                        ],
                        "combo_group":{
                           "name":"Combos regulares (Regular)",
                           "pos_id":"4003501",
                           "type_id":1,
                           "translations":{
                              "name":"Combos regulares (Regular)"
                           },
                           "combo_group_id":"c1d5cd5e-3f22-11ed-936c-1a67b454859d"
                        },
                        "price_level":{
                           "name":"string",
                           "price":2599,
                           "pos_id":"4003501",
                           "translations":{
                              "name":"string"
                           },
                           "menu_item_price_level_id":"0ffb254c-3f23-11ed-936c-1a67b454859d"
                        },
                        "menu_item_id":"19a394da-3f23-11ed-936c-1a67b454859d",
                        "translations":{
                           "name":"Cuenco de lapana"
                        },
                        "service_charge":0,
                        "is_self_serving":true,
                        "unpaid_item_hash":"\"\""
                     }
                  ],
                  "total":2599,
                  "pos_id":"4003501",
                  "type_id":1,
                  "discount":0,
                  "quantity":1,
                  "subtotal":2599,
                  "tax_rates":{
                     "5":124
                  },
                  "custom_name":"Acai Bowl Early Nene-nui Combo ",
                  "translations":{
                     "name":"Combos regulares",
                     "custom_name":"Combo Cuenco Nene-nui Temprano con Acai"
                  },
                  "combo_meal_id":"04abaf54-3f23-11ed-936c-1a67b454859d",
                  "service_charge":0
               }
            ],
            "delivery_at":"\"\"",
            "order_items":[
               {
                  "tax":95,
                  "name":"Làpana Bowl",
                  "type":"Food",
                  "image":{
                     "fullsize":"/storage/images/item_images/2021-09-08/233451fe2256b3acf14ee5288e1b7dd0.png",
                     "thumbnail_small":"/storage/images/item_images/_thumbs280/2021-09-08/233451fe2256b3acf14ee5288e1b7dd0.png",
                     "thumbnail_medium":"/storage/images/item_images/_thumbs720/2021-09-08/233451fe2256b3acf14ee5288e1b7dd0.png"
                  },
                  "total":1999,
                  "pos_id":"4003501",
                  "comment":"test comment menu item 1",
                  "type_id":1,
                  "discount":0,
                  "quantity":1,
                  "subtotal":1999,
                  "tax_rate":5,
                  "modifiers":[
                     {
                        "name":"Spicy brokoli",
                        "price":0,
                        "pos_id":"4003501",
                        "modifier_id":"2049c354-3f23-11ed-936c-1a67b454859d",
                        "translations":{
                           "name":"brócoli picante"
                        }
                     }
                  ],
                  "price_level":{
                     "name":"string",
                     "price":1999,
                     "pos_id":"4003501",
                     "translations":{
                        "name":"\"\""
                     },
                     "menu_item_price_level_id":"0ffb254c-3f23-11ed-936c-1a67b454859d"
                  },
                  "menu_item_id":"19a394da-3f23-11ed-936c-1a67b454859d",
                  "translations":{
                     "name":"Cuenco de lapana"
                  },
                  "service_charge":0,
                  "is_self_serving":true,
                  "unpaid_item_hash":"\"\""
               }
            ],
            "delivery_fee":0,
            "is_scheduled":true,
            "payment_info":{
               "status":"Paid",
               "card_type":"\"\"",
               "properties":"\"\"",
               "last_four_digits":"\"\"",
               "payment_method_id":"16bc0a06-9e01-44e2-b3b5-42fb1bfd94d6",
               "payment_processor_id":"\"\"",
               "payment_processor_type_id":19
            },
            "tax_exemption":0,
            "discount_cards":[
               {
                  
               }
            ],
            "receipt_number":"JJSOU",
            "service_charge":0,
            "delivery_fee_tax":0,
            "minimum_surcharge":0,
            "status_changed_by":"System",
            "regret_cancel_until":"2023-06-28 10:16:21",
            "service_charge_rate":0,
            "tax_rates_exemption":{
               "5":0
            },
            "minimal_order_amount":0,
            "delivery_fee_tax_rate":0,
            "minimum_surcharge_tax":0,
            "order_additional_info":{
               "pos_wait_until_paid":true
            },
            "service_charge_tax_rate":0,
            "additional_delivery_info":"\"\""
         }
      ]
   },
   "status":"OK"
}
Attribute Type Example Value Description
receipts.receipt[i].id string "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9" JWT Token of Customer Account
receipts.receipt[i].tax int 219 Order tax amount
receipts.receipt[i].total int 1500 Order total
receipts.receipt[i].status  string "SendDelayed" Order status
receipts.receipt[i].is_asap boolean true ASAP flag indicates whether the order was ASAP or scheduled.
receipts.receipt[i].created_at int "2023-06-28 10:15:34" Order creation timestamp
receipts.receipt[i].order_type int 4 Order Type (See Order Types)
receipts.receipt[i].combo_meals Object Combo Meal 1500 Collection of order combo meals
receipts.receipt[i].order_items.item Object Menu Item 1500 Collection of order menu items
receipts.receipt[i].delivery_at string "2023-06-28 10:35:34" Property specific to Delivery order type, expected detlivery time
receipts.receipt[i].delivery_fee string 1500 Property specific to Delivery order type, delivery fee
receipts.receipt[i].pickup_at string "2023-06-28 10:20:34" Property specific to Takeout and Dine in order types, time for order pickup
receipts.receipt[i].is_scheduled string false Is Scheduled flag indicates whether the order was ASAP or scheduled.
receipts.receipt[i].payment_info.status string "Paid" Payment status
receipts.receipt[i].payment_info.card_type string "2023-06-28 10:20:34" Customer account UUID
receipts.receipt[i].payment_info.last_four_digits string "2023-06-28 10:20:34" Customer account UUID
receipts.receipt[i].payment_info.payment_method_id string "16bc0a06-9e01-44e2-b3b5-42fb1bfd94d6" Payment method UUID
receipts.receipt[i].payment_info.payment_processor_id string "42fb1bfd94d6-9e01-44e2-b3b5-b3b5" Payment processor UUID
receipts.receipt[i].receipt_number string "JJSOU" Order receipt number
receipts.receipt[i].additional_delivery_info string "Leave at door" Delivery instruction (specific to delivery order type)

Fetching the order details for specific order

After retrieving a list of past orders, user selects a specific order to re-order. Fetch details of the specific order by calling api/customer-accounts/{customer_uuid}/receipts/{order_id}

Request

{
  "method": "get",
  "url": "https://api-public-playground.menu.app/api/customer-accounts/{customer_uuid}/receipts/{order_id}",
  "headers": {
    "X-Request-ID": "69da3547-204b-4093-a225-54e084c24215",
    "Application": "f3a90488ffee32c3acb6fcd0ca417cf6",
    "Api-Version": 4.38.0,
    "Accept": "application/json",
    "Content-Type" : "application/json",
    "Authorization" : "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzZXRSZWZyZXNoVFRMIjoyNjI4MDAwLCJpc3MiOiJodHRwczovL2FwaS1wdWJsaWMtcGxheWdyb3VuZC5tZW51LmFwcC9hcGkvY3VzdG9tZXJzL2xvZ2luIiwiaWF0IjoxNjkzMjA0MTQ3LCJleHAiOjE2OTMyMDc3NDcsIm5iZiI6MTY5MzIwNDE0NywianRpIjoiM0RiTngwVlB6VmpTTlJkdyIsInN1YiI6IjUwOTA5NjUiLCJwcnYiOiJjYzMyOTIxYTE1NDgwYTExN2Q5YmJjNzJjMGUxMjU2YTY4NTI0NThiIiwiYXBwbGljYXRpb25faWQiOjIwMTUsInNlc3Npb25faWQiOjI4MzQyfQ.1J3_OlydWh32BUNAySZ6Qbj1K0q-_w4KfFnra2X9FbM",
    "X-QB-Enabled" : true,
    "X-Request-ID" : "c10b4a70-6274-490d-80a0-03e7bb826937"
  }
}

Response

{
  "status": "OK",
  "code": 200,
  "data": {
    "receipt": {
      "id": 759315,
      "uuid": "74d809bd-18c9-4701-918f-5c06afcc532d",
      "receipt_number": "YAFZH",
      "order_type": 6,
      "status": "Final",
      "status_changed_by": "System",
      "is_test": false,
      "subtotal": 1000,
      "discount": 0,
      "subsidy": 0,
      "service_charge": 0,
      "service_charge_rate": 0,
      "service_charge_tax_rate": 0,
      "delivery_fee_tax_rate": 0,
      "tip": 200,
      "tip_rate": 20,
      "delivery_fee": 0,
      "delivery_fee_tax": 0,
      "minimum_surcharge": 0,
      "minimum_surcharge_tax": 0,
      "minimal_order_amount": 0,
      "total": 1200,
      "tax": 0,
      "tax_exemption": 0,
      "tax_rates": {
        "0.0": 0
      },
      "tax_rates_exemption": {
        "0.0": 0
      },
      "refunded": 0,
      "order_items": [
        {
          "id": 3531555,
          "type_id": 1,
          "reference_type": "MenuOrderItem",
          "order_id": 759315,
          "menu_item_id": 1898556,
          "pos_id": null,
          "unpaid_item_hash": null,
          "name": "Beer",
          "translations": {
            "name": "Beer"
          },
          "type": "Food",
          "is_self_serving": false,
          "quantity": 1,
          "subtotal": 1000,
          "discount": 0,
          "service_charge": 0,
          "total": 1000,
          "tax": 0,
          "tax_rate": 0,
          "comment": "",
          "price_level": {
            "id": 3529056,
            "order_item_id": 3531555,
            "menu_item_price_level_id": 2199519,
            "pos_id": null,
            "name": null,
            "translations": {
              "name": null
            },
            "price": 1000
          },
          "modifiers": [],
          "image": {
            "thumbnail_small": "https:\/\/s3.eu-central-1.amazonaws.com\/api.playground\/images\/item_images\/_thumbs280\/2023-11-14\/3558ec9e9c711dd68e85e91bd518d44a.jpeg",
            "thumbnail_medium": "https:\/\/s3.eu-central-1.amazonaws.com\/api.playground\/images\/item_images\/_thumbs720\/2023-11-14\/3558ec9e9c711dd68e85e91bd518d44a.jpeg",
            "fullsize": "https:\/\/s3.eu-central-1.amazonaws.com\/api.playground\/images\/item_images\/2023-11-14\/3558ec9e9c711dd68e85e91bd518d44a.jpeg"
          }
        }
      ],
      "combo_meals": [],
      "discounts": [],
      "venue_info": {
        "id": 1056,
        "name": "Sendero FC",
        "address": "Felegi Tivadara 5 s",
        "city": "Novi Sad",
        "zip": "100",
        "latitude": 45.264204,
        "longitude": 19.833288,
        "phone": "38163399701",
        "delivery_travel_type": "driving",
        "use_pos_order_number": false,
        "timezone": {
          "name": "America\/New_York",
          "offset": "-05:00"
        },
        "tax_number": "",
        "pickup_time": 45,
        "image": null,
        "country": {
          "id": 14,
          "name": "United States",
          "code": "US",
          "calling_code": "+1",
          "currency_settings": {
            "currency_space": false,
            "decimal_separator": ".",
            "thousands_separator": ",",
            "symbol_position": "left"
          }
        },
        "currency": {
          "id": 5,
          "code": "USD",
          "code_numeric": "840",
          "symbol": "$",
          "rounding_unit": 0.01,
          "rounding_unit_tip": 0.01
        },
        "dispatch_legacy": true
      },
      "payment_info": {
        "payment_method_id": 1,
        "payment_processor_id": 4123,
        "properties": {
          "card_type": "Visa",
          "card_label": null,
          "masked_number": "XXXXXXXXXXXX1111",
          "expiration_date": "0830",
          "expiration_year": "30",
          "billing_zip_code": null,
          "card_holder_name": "VISA",
          "expiration_month": "08",
          "first_six_digits": null,
          "last_four_digits": "1111",
          "payment_method_id": 1,
          "customer_reference": null,
          "country_of_issuance": null,
          "billing_country_code": null
        },
        "status": "Paid",
        "card_type": "Visa",
        "last_four_digits": "1111",
        "payment_processor_type_id": 32
      },
      "refunds": [],
      "is_asap": true,
      "regret_cancel_until": "2024-01-09 09:03:07",
      "created_at": "2024-01-09 08:57:57",
      "pickup_at": "2024-01-09 09:47:57",
      "delivery_at": null,
      "additional_delivery_info": null,
      "order_additional_info": null,
      "discount_cards": [],
      "is_scheduled": false,
      "catering_info": null
    },
    "order_loyalty_info": {
      "points_spent": 0,
      "points_accrued": 10
    }
  }
}

Response attributes

Check object Receipt

Creating a new order

After the selected order information is retrieved, the next step is to verify whether re-order is possible, by calling api/orders/{order_id}/reorder

Request

Attribute Type Example Value Description
Authorization HTTP Header string "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9" JWT Token of Customer Account
order_uuid string "2c2cb0c9-75e8-4b49-9c1f-713dd79af7ce" Order UUID
{
  "method": "get",
  "url": "https://api-public-playground.menu.app/api/orders/{order_uuid}/reorder",
  "headers": {
    "X-Request-ID": "69da3547-204b-4093-a225-54e084c24215",
    "Application": "f3a90488ffee32c3acb6fcd0ca417cf6",
    "Api-Version": 4.38.0,
    "Accept": "application/json",
    "Content-Type" : "application/json",
    "Authorization" : "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzZXRSZWZyZXNoVFRMIjoyNjI4MDAwLCJpc3MiOiJodHRwczovL2FwaS1wdWJsaWMtcGxheWdyb3VuZC5tZW51LmFwcC9hcGkvY3VzdG9tZXJzL2xvZ2luIiwiaWF0IjoxNjkzMjA0MTQ3LCJleHAiOjE2OTMyMDc3NDcsIm5iZiI6MTY5MzIwNDE0NywianRpIjoiM0RiTngwVlB6VmpTTlJkdyIsInN1YiI6IjUwOTA5NjUiLCJwcnYiOiJjYzMyOTIxYTE1NDgwYTExN2Q5YmJjNzJjMGUxMjU2YTY4NTI0NThiIiwiYXBwbGljYXRpb25faWQiOjIwMTUsInNlc3Npb25faWQiOjI4MzQyfQ.1J3_OlydWh32BUNAySZ6Qbj1K0q-_w4KfFnra2X9FbM",
    "X-QB-Enabled" : true,
    "X-Request-ID" : "c10b4a70-6274-490d-80a0-03e7bb826937"
  }
}

Response

{
   "code":200,
   "data":{
      "items":[
         {
            "id":"9e0cf047-ea0d-4455-9209-2018c34348cb",
            "name":"Whopper Angry - Santa Fe",
            "image":{
               "fullsize":"/storage/images/item_images/2022-07-08/340380dd4bb1499b5703bb7762ff1111.png",
               "thumbnail_small":"/storage/images/item_images/_thumbs280/2022-07-08/340380dd4bb1499b5703bb7762ff1111.png",
               "thumbnail_medium":"/storage/images/item_images/_thumbs720/2022-07-08/340380dd4bb1499b5703bb7762ff1111.png"
            },
            "state":1,
            "tax_id":1105,
            "comment":"Whopper Angry A la parrilla",
            "menu_id":"478b751a-d586-470f-9e8e-f8123a79651c",
            "position":1,
            "quantity":4,
            "venue_id":"6ded15b8-5b73-44a7-98b1-afd4eb58af86",
            "allergens":[
               
            ],
            "food_type":null,
            "is_visible":true,
            "printer_id":0,
            "category_id":"f4a6ecb9-d7b7-4735-ba40-f8675f90f391",
            "description":"Deliciosas tiras de tocino, carne de res a la parrilla, jugosos tomates, lechuga recién cortada, mayonesa, jalapeños y cebollitas angry, sobre un pan suave con ajonjolí.",
            "is_in_combo":true,
            "core_item_id":"3b076ca4-d661-4eb9-a9c1-dddb7f12d1e8",
            "is_available":true,
            "price_levels":[
               {
                  "id":"39ff107e-a603-4cdc-bae8-f4e94b0a70c0",
                  "name":null,
                  "price":5000,
                  "state":1,
                  "pos_id":"",
                  "calories":null,
                  "selected":true,
                  "is_visible":true,
                  "translations":{
                     "name":"",
                     "description":""
                  },
                  "price_dynamic":5000,
                  "delivery_price":5000,
                  "price_by_order_type":5000,
                  "price_configuration_2":5000,
                  "price_configuration_3":5000,
                  "price_configuration_4":5000,
                  "price_configuration_5":5000,
                  "price_configuration_6":5000,
                  "price_configuration_7":5000,
                  "price_configuration_2_dynamic":0,
                  "price_configuration_3_dynamic":0,
                  "price_configuration_4_dynamic":0,
                  "price_configuration_5_dynamic":0,
                  "price_configuration_6_dynamic":0,
                  "price_configuration_7_dynamic":0
               }
            ],
            "show_in_menu":true,
            "translations":{
               "name":"Kauwela Bowl",
               "description":"Kauwela Bowl Description"
            },
            "allow_takeout":true,
            "internal_name":"Kauwela Poke Bowl",
            "is_deliverable":true,
            "subcategory_id":"8b08e48e-ba7a-48c4-89e4-53592b17087b",
            "is_self_serving":false,
            "modifier_groups":[
               
            ],
            "is_visible_in_cms":true,
            "channel_visibility":[
               "ec4",
               "ec3",
               "ec5",
               "menu"
            ],
            "is_dine_in_allowed":true,
            "is_foodspot_allowed":true,
            "price_by_order_type":5000,
            "temporary_disabled_until":null,
            "is_visible_in_store_group":true,
            "required_modifier_group_ids":[
               
            ],
            "is_catering_delivery_allowed":true
         }
      ],
      "venue_id":"6ded15b8-5b73-44a7-98b1-afd4eb58af86",
      "discounts":[
         
      ],
      "order_type":6,
      "combo_meals":[
         
      ],
      "foodspot_code":null,
      "delivery_address":null,
      "original_order_type":6,
      "validation_check_code":2000
   },
   "status":"OK"
}
Attribute Type Example Value Description
venue_id string "6ded15b8-5b73-44a7-98b1-afd4eb58af86" Venue UUID of venue where past order was made
original_order_type string 6 Order type id for previous order (see Order Types)
order_type string 6 Order type id that can be used for re-order if original order type is unavailable (see Order Types)
items Object Menu Item Collection of Menu Items with price levels and modifier groups included in the previous order
discounts Collection of Discounts Collection of the discounts applied to the previous order
combo_meals Object Combo Meal Collection of the combo meals included in the order
foodspot_code string "FOOD1" Foodspot code (specific to Foodpot order type)
delivery_address string "Apt. 713 102 D'Amore Mews, South Fritzborough, OR 46263" Delivery address (specific to the Delivery order type)
validation_check_code string "2000" Validation check code represents the result of the backend validation for the order as part of success response. This can be used to show appropriate dialogs to the user if something was changed from ther preious order. See Validation Check Codes.

User dialogs

Dialogs can be used to inform the user if re-order is not possible, or if there have been some changes to the order.

If it is not possible to continue with re-order, you will receive custom error code 2017 in the API reponse. There may be several reasons for this including:

  • If venue is closed or temporarily unavailable at the time of the re-order
  • If order type is unavailable and it is not possible to switch to another order type
  • If it is no longer possible to deliver order to user's address (only for delivery order type)
  • If foodspot code has expired (only for foodspot order type)
Re-order not possible.png

If it is possible to continue with re-order, but with some changes compared to user's previous order, you will receive a successful API response with a validation check code. See Validation Check Codes.

Cart items changed Discounts changed Order type changed
Cart changed.png
Discounts changed.png
Order type changed.png
Prices changed Multiple changes
Prices changed.png
Multiple changes.png

Completing the order

Once the order is verified, the items can be added to the cart. The cart can also be edited - items can be added or removed to tailor the previous order to the current needs of the customer. Once the customer is ready to checkout, the flow is identical to the regular Placing order flow.