Orders is the Profile-tab reusable that lists a customer’s past orders and provides:Components/Profile/Default.liquid (tab orders):{% render 'Reusables\\Orders\\Default', orderData: orderData %}Orders is rendered with a single parameter.Profile component model dump containing the orderData passed to this reusable.{
"orderData": {
"pagination": {
"totalCount": 27,
"pageSize": 12,
"pageNumber": 1,
"numberOfPages": 3
},
"availableStatuses": [
"Placed",
"Cancelled",
"Processing",
...
],
"availableYears": [
"2026",
"2025",
"2024",
...
],
"list": [
{
"id": "Order Id",
"status": "Placed",
"code": "ORD00000027",
"placedAt": "2026-04-01T09:47:15.2948642+00:00",
"billingAddress": {
"address1": "Sample address",
"city": "Sample city",
"postalCode": "11147",
"state": "Sample state",
"country": "Sample country"
},
"shippingAddress": {
"address1": "Sample address",
"city": "Sample city",
"postalCode": "11147",
"state": "Sample state",
"country": "Sample country"
},
"shippingLine": {
"title": "Sample title",
"carrierId": "Carrier Id",
"carrierCode": "Sample code",
"netPrice": 0,
"totalAmount": 0,
"totalAmountText": "0.00 €",
"vatLines": []
},
"payment": {
"name": "Sample name",
"provider": "COD",
"amount": 0,
"serviceAmount": 2,
"serviceAmountText": "2.00 €"
},
"documentType": "Receipt",
"totalQuantity": 1,
"totalAmount": 125,
"totalAmountText": "125.00 €",
"netAmount": 100,
"vatAmount": 23,
"lines": [
{
"id": "Order Line Id",
"productId": "Product Id",
"productVariantId": "Product Variant Id",
"productTitle": "Sample title",
"quantity": 1,
"link": "sample-alias",
"unitText": "Sample unit",
"price": 100,
"netValue": 100,
"vatValue": 23,
"vatRate": 23,
"mediaItem": {
"id": "Media Item Id",
"link": "https://example.com/sample",
"position": 0,
"alt": "sample",
"mediaType": "Image"
}
},
...
],
"vatAnalysis": [
{
"vatRate": 23,
"vatAmount": 23,
"vatCode": "",
"netAmount": 100
},
...
]
},
...
]
}
}orderData (object)pagination.pageNumberpagination.numberOfPageslist (array)Orders reads additional fields when present:orderData.code (string)orderData.year (string)orderData.status (string)availableStatusesavailableYearsproductId, productVariantId, quantity (and optional fields like dim1Value, dim2Value, price, initialPrice).Reusables/Orders/Default.liquid.pages array for UI rendering.x-data='ordersreusabledefault.initComponent({{ currentPage }}, {{ totalPages }}, {{ orderData | serialize | escape }})'hideOrderPreview.ordersreusabledefault.initComponent(currentPage, totalPages, orderData)Reusables/Orders/Default.js.currentPage, totalPagesorderDataorders = orderData.list || []code, year, statushideOrderPreview / selectedOrderisAdding (guards repeated bulk-add)Reusables/Orders/Default.js.init()years array (current year decreasing, length 10).Alpine.store('profile').tabChanged to reset preview state when the Profile tab changes.redirectToState(newPage = null)page, code, year, status) and navigates:window.location.href = `${window.location.pathname}?${params.toString()}`;triggerVoiceSearch()SpeechRecognition / webkitSpeechRecognition to fill the code model.viewOrder(index)formatDate(dateString)toLocaleDateString('el-GR').orderAgain(items, errorMessages)variations array from order lines.servicesreusabledefault.addMultipleToCart(variations)response.data.lineFailures by mapping failure types to messages with getLineFailureMessages(...).getLineFailureMessages(lineFailure, errorMessages, selectedProductTitle)$store.toast$store.profiletabChanged to reset preview state.servicesreusabledefault.addMultipleToCart(variations)Reusables/Orders/Default.liquidReusables/Orders/Default.jsReusables/Orders/Default.json (translations)Components/Profile/Default.liquid (render site)$store.toast and $store.profile in Assets/js/theme.jsservicesreusabledefault.addMultipleToCartalert(...).hideOrderPreview.{% render 'Reusables\\Orders\\Default', orderData: orderData %}