easyorders 0.1.13 → 0.1.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +93 -93
- package/dist/bin/cli.js +12 -5
- package/dist/template/theme/config.json +95 -95
- package/dist/template/theme/home-sections/category-mosaic/config.json +40 -40
- package/dist/template/theme/home-sections/category-mosaic/template.liquid +155 -155
- package/dist/template/theme/home-sections/editorial-feature/config.json +67 -67
- package/dist/template/theme/home-sections/editorial-feature/template.liquid +153 -153
- package/dist/template/theme/home-sections/newsletter-luxe/config.json +60 -60
- package/dist/template/theme/home-sections/newsletter-luxe/template.liquid +144 -144
- package/dist/template/theme/home-sections/runway-hero/config.json +91 -91
- package/dist/template/theme/home-sections/runway-hero/template.liquid +159 -159
- package/dist/template/theme/home-sections/shop-the-look/config.json +75 -75
- package/dist/template/theme/home-sections/shop-the-look/template.liquid +304 -304
- package/dist/template/theme/home-sections/trust-promise/config.json +47 -47
- package/dist/template/theme/home-sections/trust-promise/template.liquid +96 -96
- package/dist/template/theme/schema.json +151 -151
- package/dist/template/theme/script.js +586 -586
- package/dist/template/theme/sections/breadcrumbs.liquid +17 -17
- package/dist/template/theme/sections/categories.liquid +9 -9
- package/dist/template/theme/sections/fake-counter.liquid +27 -27
- package/dist/template/theme/sections/fake-stock.liquid +6 -6
- package/dist/template/theme/sections/fake-visitor.liquid +6 -6
- package/dist/template/theme/sections/featured-products.liquid +110 -110
- package/dist/template/theme/sections/fixed-buy-button.liquid +46 -46
- package/dist/template/theme/sections/footer.liquid +128 -128
- package/dist/template/theme/sections/gallery.liquid +61 -61
- package/dist/template/theme/sections/header.liquid +152 -152
- package/dist/template/theme/sections/home-products-grid.liquid +109 -109
- package/dist/template/theme/sections/list-products.liquid +93 -93
- package/dist/template/theme/sections/order-invoice.liquid +154 -154
- package/dist/template/theme/sections/product-description.liquid +30 -30
- package/dist/template/theme/sections/product-details.liquid +63 -63
- package/dist/template/theme/sections/products-grid.liquid +86 -86
- package/dist/template/theme/sections/related-products.liquid +88 -88
- package/dist/template/theme/sections/reviews.liquid +55 -55
- package/dist/template/theme/sections/slider.liquid +43 -43
- package/dist/template/theme/sections/thanks.liquid +33 -33
- package/dist/template/theme/style.css +3923 -3923
- package/dist/template/theme/theme-data.json +9 -9
- package/package.json +40 -40
|
@@ -1,93 +1,93 @@
|
|
|
1
|
-
<section class="ab-plist">
|
|
2
|
-
<div class="ab-plist-header">
|
|
3
|
-
{% if section_title %}
|
|
4
|
-
<h2 class="ab-plist-title ab-reveal">{{ section_title }}</h2>
|
|
5
|
-
{% endif %}
|
|
6
|
-
<div class="ab-plist-actions">
|
|
7
|
-
{% if category.slug %}
|
|
8
|
-
<a href="/collections/{{ category.slug }}" class="ab-plist-viewall-btn">{{ shop_now }}</a>
|
|
9
|
-
{% endif %}
|
|
10
|
-
<div class="ab-plist-arrows">
|
|
11
|
-
<button class="ab-plist-arrow ab-plist-prev" aria-label="Previous">
|
|
12
|
-
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="15 18 9 12 15 6"/></svg>
|
|
13
|
-
</button>
|
|
14
|
-
<button class="ab-plist-arrow ab-plist-next" aria-label="Next">
|
|
15
|
-
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="9 6 15 12 9 18"/></svg>
|
|
16
|
-
</button>
|
|
17
|
-
</div>
|
|
18
|
-
</div>
|
|
19
|
-
</div>
|
|
20
|
-
|
|
21
|
-
<div class="ab-plist-track">
|
|
22
|
-
{% for product in products %}
|
|
23
|
-
{% assign color_variation = product.variations | where: "type", "color" | first %}
|
|
24
|
-
{% assign image_variation = product.variations | where: "type", "image" | first %}
|
|
25
|
-
|
|
26
|
-
<a href="/products/{{ product.slug }}" class="ab-plist-card ab-reveal" style="animation-delay: {{ forloop.index | times: 0.04 }}s">
|
|
27
|
-
{% if product.sale_price and product.sale_price < product.price %}
|
|
28
|
-
{% assign discount = product.price | minus: product.sale_price | times: 100 | divided_by: product.price | floor %}
|
|
29
|
-
<span class="ab-plist-badge ab-sale-badge">{{ sale }} -{{ discount }}%</span>
|
|
30
|
-
{% endif %}
|
|
31
|
-
|
|
32
|
-
<div class="ab-plist-media">
|
|
33
|
-
<img class="ab-plist-img-primary" src="{{ product.thumb }}" alt="{{ product.name }}" loading="lazy" />
|
|
34
|
-
{% if product.images[0] %}
|
|
35
|
-
<img class="ab-plist-img-hover" src="{{ product.images[0] }}" alt="{{ product.name }}" loading="lazy" />
|
|
36
|
-
{% endif %}
|
|
37
|
-
{% comment %} Wishlist & Compare action buttons — dispatch custom events caught by the storefront JS layer
|
|
38
|
-
<div class="ab-card-actions">
|
|
39
|
-
<button
|
|
40
|
-
class="ab-wishlist-btn"
|
|
41
|
-
type="button"
|
|
42
|
-
aria-label="Add to wishlist"
|
|
43
|
-
onclick="event.preventDefault();event.stopPropagation();this.dispatchEvent(new CustomEvent('toggle-wishlist',{bubbles:true,detail:{productId:'{{ product.id }}'}}));"
|
|
44
|
-
>
|
|
45
|
-
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"/></svg>
|
|
46
|
-
</button>
|
|
47
|
-
<button
|
|
48
|
-
class="ab-compare-btn"
|
|
49
|
-
type="button"
|
|
50
|
-
aria-label="Compare"
|
|
51
|
-
onclick="event.preventDefault();event.stopPropagation();this.dispatchEvent(new CustomEvent('toggle-compare',{bubbles:true,detail:{productId:'{{ product.id }}'}}));"
|
|
52
|
-
>
|
|
53
|
-
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="16 3 21 8 16 13"/><line x1="21" y1="8" x2="9" y2="8"/><polyline points="8 21 3 16 8 11"/><line x1="3" y1="16" x2="15" y2="16"/></svg>
|
|
54
|
-
</button>
|
|
55
|
-
</div>
|
|
56
|
-
{% endcomment %}
|
|
57
|
-
<button
|
|
58
|
-
class="ab-plist-add-btn"
|
|
59
|
-
type="button"
|
|
60
|
-
aria-label="Add to cart"
|
|
61
|
-
onclick="event.preventDefault();event.stopPropagation();this.dispatchEvent(new CustomEvent('quick-add',{bubbles:true,detail:{productId:'{{ product.id }}'}}));"
|
|
62
|
-
></button>
|
|
63
|
-
</div>
|
|
64
|
-
|
|
65
|
-
<div class="ab-plist-info">
|
|
66
|
-
<p class="ab-plist-name">{{ product.name }}</p>
|
|
67
|
-
<div class="ab-plist-price-row">
|
|
68
|
-
{% if product.sale_price and product.sale_price < product.price %}
|
|
69
|
-
<span class="ab-price-old">{{ product.price }} {{ currency }}</span>
|
|
70
|
-
<span class="ab-plist-price ab-price-sale">{{ product.sale_price }} {{ currency }}</span>
|
|
71
|
-
{% else %}
|
|
72
|
-
<span class="ab-plist-price">{{ product.price }} {{ currency }}</span>
|
|
73
|
-
{% endif %}
|
|
74
|
-
</div>
|
|
75
|
-
|
|
76
|
-
<div class="ab-plist-swatches">
|
|
77
|
-
{% if color_variation and color_variation.props %}
|
|
78
|
-
{% for prop in color_variation.props limit: 4 %}
|
|
79
|
-
<span class="ab-plist-swatch" style="background: {{ prop.value }}" title="{{ prop.name }}"></span>
|
|
80
|
-
{% endfor %}
|
|
81
|
-
{% elsif image_variation and image_variation.props %}
|
|
82
|
-
{% for prop in image_variation.props limit: 4 %}
|
|
83
|
-
<span class="ab-plist-swatch ab-plist-swatch-image" title="{{ prop.name }}">
|
|
84
|
-
<img src="{{ prop.value }}" alt="{{ prop.name }}" loading="lazy" />
|
|
85
|
-
</span>
|
|
86
|
-
{% endfor %}
|
|
87
|
-
{% endif %}
|
|
88
|
-
</div>
|
|
89
|
-
</div>
|
|
90
|
-
</a>
|
|
91
|
-
{% endfor %}
|
|
92
|
-
</div>
|
|
93
|
-
</section>
|
|
1
|
+
<section class="ab-plist">
|
|
2
|
+
<div class="ab-plist-header">
|
|
3
|
+
{% if section_title %}
|
|
4
|
+
<h2 class="ab-plist-title ab-reveal">{{ section_title }}</h2>
|
|
5
|
+
{% endif %}
|
|
6
|
+
<div class="ab-plist-actions">
|
|
7
|
+
{% if category.slug %}
|
|
8
|
+
<a href="/collections/{{ category.slug }}" class="ab-plist-viewall-btn">{{ shop_now }}</a>
|
|
9
|
+
{% endif %}
|
|
10
|
+
<div class="ab-plist-arrows">
|
|
11
|
+
<button class="ab-plist-arrow ab-plist-prev" aria-label="Previous">
|
|
12
|
+
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="15 18 9 12 15 6"/></svg>
|
|
13
|
+
</button>
|
|
14
|
+
<button class="ab-plist-arrow ab-plist-next" aria-label="Next">
|
|
15
|
+
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="9 6 15 12 9 18"/></svg>
|
|
16
|
+
</button>
|
|
17
|
+
</div>
|
|
18
|
+
</div>
|
|
19
|
+
</div>
|
|
20
|
+
|
|
21
|
+
<div class="ab-plist-track">
|
|
22
|
+
{% for product in products %}
|
|
23
|
+
{% assign color_variation = product.variations | where: "type", "color" | first %}
|
|
24
|
+
{% assign image_variation = product.variations | where: "type", "image" | first %}
|
|
25
|
+
|
|
26
|
+
<a href="/products/{{ product.slug }}" class="ab-plist-card ab-reveal" style="animation-delay: {{ forloop.index | times: 0.04 }}s">
|
|
27
|
+
{% if product.sale_price and product.sale_price < product.price %}
|
|
28
|
+
{% assign discount = product.price | minus: product.sale_price | times: 100 | divided_by: product.price | floor %}
|
|
29
|
+
<span class="ab-plist-badge ab-sale-badge">{{ sale }} -{{ discount }}%</span>
|
|
30
|
+
{% endif %}
|
|
31
|
+
|
|
32
|
+
<div class="ab-plist-media">
|
|
33
|
+
<img class="ab-plist-img-primary" src="{{ product.thumb }}" alt="{{ product.name }}" loading="lazy" />
|
|
34
|
+
{% if product.images[0] %}
|
|
35
|
+
<img class="ab-plist-img-hover" src="{{ product.images[0] }}" alt="{{ product.name }}" loading="lazy" />
|
|
36
|
+
{% endif %}
|
|
37
|
+
{% comment %} Wishlist & Compare action buttons — dispatch custom events caught by the storefront JS layer
|
|
38
|
+
<div class="ab-card-actions">
|
|
39
|
+
<button
|
|
40
|
+
class="ab-wishlist-btn"
|
|
41
|
+
type="button"
|
|
42
|
+
aria-label="Add to wishlist"
|
|
43
|
+
onclick="event.preventDefault();event.stopPropagation();this.dispatchEvent(new CustomEvent('toggle-wishlist',{bubbles:true,detail:{productId:'{{ product.id }}'}}));"
|
|
44
|
+
>
|
|
45
|
+
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"/></svg>
|
|
46
|
+
</button>
|
|
47
|
+
<button
|
|
48
|
+
class="ab-compare-btn"
|
|
49
|
+
type="button"
|
|
50
|
+
aria-label="Compare"
|
|
51
|
+
onclick="event.preventDefault();event.stopPropagation();this.dispatchEvent(new CustomEvent('toggle-compare',{bubbles:true,detail:{productId:'{{ product.id }}'}}));"
|
|
52
|
+
>
|
|
53
|
+
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="16 3 21 8 16 13"/><line x1="21" y1="8" x2="9" y2="8"/><polyline points="8 21 3 16 8 11"/><line x1="3" y1="16" x2="15" y2="16"/></svg>
|
|
54
|
+
</button>
|
|
55
|
+
</div>
|
|
56
|
+
{% endcomment %}
|
|
57
|
+
<button
|
|
58
|
+
class="ab-plist-add-btn"
|
|
59
|
+
type="button"
|
|
60
|
+
aria-label="Add to cart"
|
|
61
|
+
onclick="event.preventDefault();event.stopPropagation();this.dispatchEvent(new CustomEvent('quick-add',{bubbles:true,detail:{productId:'{{ product.id }}'}}));"
|
|
62
|
+
></button>
|
|
63
|
+
</div>
|
|
64
|
+
|
|
65
|
+
<div class="ab-plist-info">
|
|
66
|
+
<p class="ab-plist-name">{{ product.name }}</p>
|
|
67
|
+
<div class="ab-plist-price-row">
|
|
68
|
+
{% if product.sale_price and product.sale_price < product.price %}
|
|
69
|
+
<span class="ab-price-old">{{ product.price }} {{ currency }}</span>
|
|
70
|
+
<span class="ab-plist-price ab-price-sale">{{ product.sale_price }} {{ currency }}</span>
|
|
71
|
+
{% else %}
|
|
72
|
+
<span class="ab-plist-price">{{ product.price }} {{ currency }}</span>
|
|
73
|
+
{% endif %}
|
|
74
|
+
</div>
|
|
75
|
+
|
|
76
|
+
<div class="ab-plist-swatches">
|
|
77
|
+
{% if color_variation and color_variation.props %}
|
|
78
|
+
{% for prop in color_variation.props limit: 4 %}
|
|
79
|
+
<span class="ab-plist-swatch" style="background: {{ prop.value }}" title="{{ prop.name }}"></span>
|
|
80
|
+
{% endfor %}
|
|
81
|
+
{% elsif image_variation and image_variation.props %}
|
|
82
|
+
{% for prop in image_variation.props limit: 4 %}
|
|
83
|
+
<span class="ab-plist-swatch ab-plist-swatch-image" title="{{ prop.name }}">
|
|
84
|
+
<img src="{{ prop.value }}" alt="{{ prop.name }}" loading="lazy" />
|
|
85
|
+
</span>
|
|
86
|
+
{% endfor %}
|
|
87
|
+
{% endif %}
|
|
88
|
+
</div>
|
|
89
|
+
</div>
|
|
90
|
+
</a>
|
|
91
|
+
{% endfor %}
|
|
92
|
+
</div>
|
|
93
|
+
</section>
|
|
@@ -1,154 +1,154 @@
|
|
|
1
|
-
<div class="ab-invoice">
|
|
2
|
-
<div class="ab-invoice-header">
|
|
3
|
-
{% if logo and logo != "" %}
|
|
4
|
-
<img class="ab-invoice-logo" src="{{ logo }}" alt="{{ store_name }}" />
|
|
5
|
-
{% endif %}
|
|
6
|
-
<button
|
|
7
|
-
class="ab-invoice-track-btn"
|
|
8
|
-
type="button"
|
|
9
|
-
title="{{ tracking_link }}"
|
|
10
|
-
onclick="this.dispatchEvent(new CustomEvent('copy-tracking-link',{bubbles:true,detail:{link:'{{ tracking_link }}'}}));"
|
|
11
|
-
>{{ t_copy_tracking_link }}</button>
|
|
12
|
-
</div>
|
|
13
|
-
|
|
14
|
-
<div class="ab-invoice-body">
|
|
15
|
-
<div class="ab-invoice-sidebar">
|
|
16
|
-
{% if has_contact %}
|
|
17
|
-
<address class="ab-invoice-store-info">
|
|
18
|
-
<h3 class="ab-invoice-store-name">{{ store_name }}</h3>
|
|
19
|
-
<span class="ab-invoice-contact-row">
|
|
20
|
-
{% if contact_phone and contact_phone != "" %}
|
|
21
|
-
<a href="tel:{{ contact_phone }}">
|
|
22
|
-
<span class="ab-invoice-contact-label">{{ t_phone }}:</span> {{ contact_phone }}
|
|
23
|
-
</a>
|
|
24
|
-
{% endif %}
|
|
25
|
-
{% if contact_email and contact_email != "" %}
|
|
26
|
-
<a href="mailto:{{ contact_email }}">
|
|
27
|
-
<span class="ab-invoice-contact-label">{{ t_email }}:</span> {{ contact_email }}
|
|
28
|
-
</a>
|
|
29
|
-
{% endif %}
|
|
30
|
-
</span>
|
|
31
|
-
{% if contact_address and contact_address != "" %}
|
|
32
|
-
<span>
|
|
33
|
-
<span class="ab-invoice-contact-label">{{ t_address }}:</span> {{ contact_address }}
|
|
34
|
-
</span>
|
|
35
|
-
{% endif %}
|
|
36
|
-
</address>
|
|
37
|
-
{% endif %}
|
|
38
|
-
|
|
39
|
-
<div class="ab-invoice-shipping">
|
|
40
|
-
<h3 class="ab-invoice-section-title">{{ t_shipping_details }}</h3>
|
|
41
|
-
<dl class="ab-invoice-dl">
|
|
42
|
-
<div class="ab-invoice-dl-row">
|
|
43
|
-
<dt>{{ t_name }}:</dt>
|
|
44
|
-
<dd>{{ order.full_name }}</dd>
|
|
45
|
-
</div>
|
|
46
|
-
<div class="ab-invoice-dl-row">
|
|
47
|
-
<dt>{{ t_phone }}:</dt>
|
|
48
|
-
<dd>{{ order.phone }}</dd>
|
|
49
|
-
</div>
|
|
50
|
-
{% if order.email and order.email != "" %}
|
|
51
|
-
<div class="ab-invoice-dl-row">
|
|
52
|
-
<dt>{{ t_email }}:</dt>
|
|
53
|
-
<dd>{{ order.email }}</dd>
|
|
54
|
-
</div>
|
|
55
|
-
{% endif %}
|
|
56
|
-
{% if order.country and order.country != "" %}
|
|
57
|
-
<div class="ab-invoice-dl-row">
|
|
58
|
-
<dt>{{ t_country }}:</dt>
|
|
59
|
-
<dd>{{ order.country }}</dd>
|
|
60
|
-
</div>
|
|
61
|
-
{% endif %}
|
|
62
|
-
{% if order.government and order.government != "" %}
|
|
63
|
-
<div class="ab-invoice-dl-row">
|
|
64
|
-
<dt>{{ t_government }}:</dt>
|
|
65
|
-
<dd>{{ order.government }}</dd>
|
|
66
|
-
</div>
|
|
67
|
-
{% endif %}
|
|
68
|
-
{% if order.address and order.address != "" %}
|
|
69
|
-
<div class="ab-invoice-dl-row">
|
|
70
|
-
<dt>{{ t_address }}:</dt>
|
|
71
|
-
<dd>{{ order.address }}</dd>
|
|
72
|
-
</div>
|
|
73
|
-
{% endif %}
|
|
74
|
-
<div class="ab-invoice-dl-row">
|
|
75
|
-
<dt>{{ t_payment_details }}:</dt>
|
|
76
|
-
<dd>{{ order.payment_method }}</dd>
|
|
77
|
-
</div>
|
|
78
|
-
{% if order.transfer_receipt and order.transfer_receipt != "" %}
|
|
79
|
-
<div class="ab-invoice-dl-row ab-invoice-dl-row-center">
|
|
80
|
-
<img src="{{ order.transfer_receipt }}" alt="Transfer Receipt" class="ab-invoice-receipt-img" />
|
|
81
|
-
</div>
|
|
82
|
-
{% endif %}
|
|
83
|
-
</dl>
|
|
84
|
-
</div>
|
|
85
|
-
|
|
86
|
-
<div class="ab-invoice-timeline">
|
|
87
|
-
<ul class="ab-invoice-notes-list">
|
|
88
|
-
<li>
|
|
89
|
-
<span>{{ t_order_created }}</span>
|
|
90
|
-
<span class="ab-invoice-note-date">{{ order.created_at }}</span>
|
|
91
|
-
</li>
|
|
92
|
-
{% for note in order_notes %}
|
|
93
|
-
<li>
|
|
94
|
-
<span>{{ note.note }}</span>
|
|
95
|
-
<span class="ab-invoice-note-date">{{ note.created_at }}</span>
|
|
96
|
-
</li>
|
|
97
|
-
{% endfor %}
|
|
98
|
-
</ul>
|
|
99
|
-
</div>
|
|
100
|
-
</div>
|
|
101
|
-
|
|
102
|
-
<div class="ab-invoice-main">
|
|
103
|
-
<div class="ab-invoice-status-row">
|
|
104
|
-
<span class="ab-invoice-status-label">{{ t_order_status }}:</span>
|
|
105
|
-
<span class="ab-invoice-status-value">{{ order.status_label }}</span>
|
|
106
|
-
</div>
|
|
107
|
-
|
|
108
|
-
<div class="ab-invoice-items">
|
|
109
|
-
{% for item in order.cart_items %}
|
|
110
|
-
<div class="ab-invoice-item">
|
|
111
|
-
{% if item.thumb and item.thumb != "" %}
|
|
112
|
-
<img class="ab-invoice-item-img" src="{{ item.thumb }}" alt="{{ item.name }}" loading="lazy" />
|
|
113
|
-
{% endif %}
|
|
114
|
-
<div class="ab-invoice-item-details">
|
|
115
|
-
<h4 class="ab-invoice-item-name">{{ item.name }}</h4>
|
|
116
|
-
{% if item.variants and item.variants != "" %}
|
|
117
|
-
<p class="ab-invoice-item-variants">{{ item.variants }}</p>
|
|
118
|
-
{% endif %}
|
|
119
|
-
<p class="ab-invoice-item-qty">{{ t_items_count }}: {{ item.quantity }}</p>
|
|
120
|
-
<p class="ab-invoice-item-unit-price">{{ t_piece_price }}: {{ item.price }} {{ currency }}</p>
|
|
121
|
-
{% if item.metadata_html and item.metadata_html != "" %}
|
|
122
|
-
<div class="ab-invoice-item-metadata">{{ item.metadata_html }}</div>
|
|
123
|
-
{% endif %}
|
|
124
|
-
</div>
|
|
125
|
-
<span class="ab-invoice-item-total">{{ t_total }} {{ item.total }} {{ currency }}</span>
|
|
126
|
-
</div>
|
|
127
|
-
{% endfor %}
|
|
128
|
-
</div>
|
|
129
|
-
|
|
130
|
-
<div class="ab-invoice-totals">
|
|
131
|
-
<div class="ab-invoice-dl-row">
|
|
132
|
-
<dt>{{ t_product_total }}:</dt>
|
|
133
|
-
<dd>{{ order.cost }} {{ currency }}</dd>
|
|
134
|
-
</div>
|
|
135
|
-
{% unless order.is_digital %}
|
|
136
|
-
<div class="ab-invoice-dl-row">
|
|
137
|
-
<dt>{{ t_shipping_cost }}:</dt>
|
|
138
|
-
<dd>{% if order.shipping_cost %}{{ order.shipping_cost }} {{ currency }}{% else %}{{ t_free_shipping }}{% endif %}</dd>
|
|
139
|
-
</div>
|
|
140
|
-
{% endunless %}
|
|
141
|
-
{% if order.coupon_code and order.coupon_code != "" %}
|
|
142
|
-
<div class="ab-invoice-dl-row">
|
|
143
|
-
<dt>{{ t_coupon_code }}: {{ order.coupon_code }}</dt>
|
|
144
|
-
<dd>{{ order.coupon_discount }} {{ currency }}</dd>
|
|
145
|
-
</div>
|
|
146
|
-
{% endif %}
|
|
147
|
-
<div class="ab-invoice-dl-row ab-invoice-total-row">
|
|
148
|
-
<dt>{{ t_total }}:</dt>
|
|
149
|
-
<dd>{{ order.total_cost }} {{ currency }}</dd>
|
|
150
|
-
</div>
|
|
151
|
-
</div>
|
|
152
|
-
</div>
|
|
153
|
-
</div>
|
|
154
|
-
</div>
|
|
1
|
+
<div class="ab-invoice">
|
|
2
|
+
<div class="ab-invoice-header">
|
|
3
|
+
{% if logo and logo != "" %}
|
|
4
|
+
<img class="ab-invoice-logo" src="{{ logo }}" alt="{{ store_name }}" />
|
|
5
|
+
{% endif %}
|
|
6
|
+
<button
|
|
7
|
+
class="ab-invoice-track-btn"
|
|
8
|
+
type="button"
|
|
9
|
+
title="{{ tracking_link }}"
|
|
10
|
+
onclick="this.dispatchEvent(new CustomEvent('copy-tracking-link',{bubbles:true,detail:{link:'{{ tracking_link }}'}}));"
|
|
11
|
+
>{{ t_copy_tracking_link }}</button>
|
|
12
|
+
</div>
|
|
13
|
+
|
|
14
|
+
<div class="ab-invoice-body">
|
|
15
|
+
<div class="ab-invoice-sidebar">
|
|
16
|
+
{% if has_contact %}
|
|
17
|
+
<address class="ab-invoice-store-info">
|
|
18
|
+
<h3 class="ab-invoice-store-name">{{ store_name }}</h3>
|
|
19
|
+
<span class="ab-invoice-contact-row">
|
|
20
|
+
{% if contact_phone and contact_phone != "" %}
|
|
21
|
+
<a href="tel:{{ contact_phone }}">
|
|
22
|
+
<span class="ab-invoice-contact-label">{{ t_phone }}:</span> {{ contact_phone }}
|
|
23
|
+
</a>
|
|
24
|
+
{% endif %}
|
|
25
|
+
{% if contact_email and contact_email != "" %}
|
|
26
|
+
<a href="mailto:{{ contact_email }}">
|
|
27
|
+
<span class="ab-invoice-contact-label">{{ t_email }}:</span> {{ contact_email }}
|
|
28
|
+
</a>
|
|
29
|
+
{% endif %}
|
|
30
|
+
</span>
|
|
31
|
+
{% if contact_address and contact_address != "" %}
|
|
32
|
+
<span>
|
|
33
|
+
<span class="ab-invoice-contact-label">{{ t_address }}:</span> {{ contact_address }}
|
|
34
|
+
</span>
|
|
35
|
+
{% endif %}
|
|
36
|
+
</address>
|
|
37
|
+
{% endif %}
|
|
38
|
+
|
|
39
|
+
<div class="ab-invoice-shipping">
|
|
40
|
+
<h3 class="ab-invoice-section-title">{{ t_shipping_details }}</h3>
|
|
41
|
+
<dl class="ab-invoice-dl">
|
|
42
|
+
<div class="ab-invoice-dl-row">
|
|
43
|
+
<dt>{{ t_name }}:</dt>
|
|
44
|
+
<dd>{{ order.full_name }}</dd>
|
|
45
|
+
</div>
|
|
46
|
+
<div class="ab-invoice-dl-row">
|
|
47
|
+
<dt>{{ t_phone }}:</dt>
|
|
48
|
+
<dd>{{ order.phone }}</dd>
|
|
49
|
+
</div>
|
|
50
|
+
{% if order.email and order.email != "" %}
|
|
51
|
+
<div class="ab-invoice-dl-row">
|
|
52
|
+
<dt>{{ t_email }}:</dt>
|
|
53
|
+
<dd>{{ order.email }}</dd>
|
|
54
|
+
</div>
|
|
55
|
+
{% endif %}
|
|
56
|
+
{% if order.country and order.country != "" %}
|
|
57
|
+
<div class="ab-invoice-dl-row">
|
|
58
|
+
<dt>{{ t_country }}:</dt>
|
|
59
|
+
<dd>{{ order.country }}</dd>
|
|
60
|
+
</div>
|
|
61
|
+
{% endif %}
|
|
62
|
+
{% if order.government and order.government != "" %}
|
|
63
|
+
<div class="ab-invoice-dl-row">
|
|
64
|
+
<dt>{{ t_government }}:</dt>
|
|
65
|
+
<dd>{{ order.government }}</dd>
|
|
66
|
+
</div>
|
|
67
|
+
{% endif %}
|
|
68
|
+
{% if order.address and order.address != "" %}
|
|
69
|
+
<div class="ab-invoice-dl-row">
|
|
70
|
+
<dt>{{ t_address }}:</dt>
|
|
71
|
+
<dd>{{ order.address }}</dd>
|
|
72
|
+
</div>
|
|
73
|
+
{% endif %}
|
|
74
|
+
<div class="ab-invoice-dl-row">
|
|
75
|
+
<dt>{{ t_payment_details }}:</dt>
|
|
76
|
+
<dd>{{ order.payment_method }}</dd>
|
|
77
|
+
</div>
|
|
78
|
+
{% if order.transfer_receipt and order.transfer_receipt != "" %}
|
|
79
|
+
<div class="ab-invoice-dl-row ab-invoice-dl-row-center">
|
|
80
|
+
<img src="{{ order.transfer_receipt }}" alt="Transfer Receipt" class="ab-invoice-receipt-img" />
|
|
81
|
+
</div>
|
|
82
|
+
{% endif %}
|
|
83
|
+
</dl>
|
|
84
|
+
</div>
|
|
85
|
+
|
|
86
|
+
<div class="ab-invoice-timeline">
|
|
87
|
+
<ul class="ab-invoice-notes-list">
|
|
88
|
+
<li>
|
|
89
|
+
<span>{{ t_order_created }}</span>
|
|
90
|
+
<span class="ab-invoice-note-date">{{ order.created_at }}</span>
|
|
91
|
+
</li>
|
|
92
|
+
{% for note in order_notes %}
|
|
93
|
+
<li>
|
|
94
|
+
<span>{{ note.note }}</span>
|
|
95
|
+
<span class="ab-invoice-note-date">{{ note.created_at }}</span>
|
|
96
|
+
</li>
|
|
97
|
+
{% endfor %}
|
|
98
|
+
</ul>
|
|
99
|
+
</div>
|
|
100
|
+
</div>
|
|
101
|
+
|
|
102
|
+
<div class="ab-invoice-main">
|
|
103
|
+
<div class="ab-invoice-status-row">
|
|
104
|
+
<span class="ab-invoice-status-label">{{ t_order_status }}:</span>
|
|
105
|
+
<span class="ab-invoice-status-value">{{ order.status_label }}</span>
|
|
106
|
+
</div>
|
|
107
|
+
|
|
108
|
+
<div class="ab-invoice-items">
|
|
109
|
+
{% for item in order.cart_items %}
|
|
110
|
+
<div class="ab-invoice-item">
|
|
111
|
+
{% if item.thumb and item.thumb != "" %}
|
|
112
|
+
<img class="ab-invoice-item-img" src="{{ item.thumb }}" alt="{{ item.name }}" loading="lazy" />
|
|
113
|
+
{% endif %}
|
|
114
|
+
<div class="ab-invoice-item-details">
|
|
115
|
+
<h4 class="ab-invoice-item-name">{{ item.name }}</h4>
|
|
116
|
+
{% if item.variants and item.variants != "" %}
|
|
117
|
+
<p class="ab-invoice-item-variants">{{ item.variants }}</p>
|
|
118
|
+
{% endif %}
|
|
119
|
+
<p class="ab-invoice-item-qty">{{ t_items_count }}: {{ item.quantity }}</p>
|
|
120
|
+
<p class="ab-invoice-item-unit-price">{{ t_piece_price }}: {{ item.price }} {{ currency }}</p>
|
|
121
|
+
{% if item.metadata_html and item.metadata_html != "" %}
|
|
122
|
+
<div class="ab-invoice-item-metadata">{{ item.metadata_html }}</div>
|
|
123
|
+
{% endif %}
|
|
124
|
+
</div>
|
|
125
|
+
<span class="ab-invoice-item-total">{{ t_total }} {{ item.total }} {{ currency }}</span>
|
|
126
|
+
</div>
|
|
127
|
+
{% endfor %}
|
|
128
|
+
</div>
|
|
129
|
+
|
|
130
|
+
<div class="ab-invoice-totals">
|
|
131
|
+
<div class="ab-invoice-dl-row">
|
|
132
|
+
<dt>{{ t_product_total }}:</dt>
|
|
133
|
+
<dd>{{ order.cost }} {{ currency }}</dd>
|
|
134
|
+
</div>
|
|
135
|
+
{% unless order.is_digital %}
|
|
136
|
+
<div class="ab-invoice-dl-row">
|
|
137
|
+
<dt>{{ t_shipping_cost }}:</dt>
|
|
138
|
+
<dd>{% if order.shipping_cost %}{{ order.shipping_cost }} {{ currency }}{% else %}{{ t_free_shipping }}{% endif %}</dd>
|
|
139
|
+
</div>
|
|
140
|
+
{% endunless %}
|
|
141
|
+
{% if order.coupon_code and order.coupon_code != "" %}
|
|
142
|
+
<div class="ab-invoice-dl-row">
|
|
143
|
+
<dt>{{ t_coupon_code }}: {{ order.coupon_code }}</dt>
|
|
144
|
+
<dd>{{ order.coupon_discount }} {{ currency }}</dd>
|
|
145
|
+
</div>
|
|
146
|
+
{% endif %}
|
|
147
|
+
<div class="ab-invoice-dl-row ab-invoice-total-row">
|
|
148
|
+
<dt>{{ t_total }}:</dt>
|
|
149
|
+
<dd>{{ order.total_cost }} {{ currency }}</dd>
|
|
150
|
+
</div>
|
|
151
|
+
</div>
|
|
152
|
+
</div>
|
|
153
|
+
</div>
|
|
154
|
+
</div>
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
<div class="lq-desc-accordion">
|
|
2
|
-
{% if description != "" %}
|
|
3
|
-
<div class="lq-desc-item" data-open="true">
|
|
4
|
-
<button class="lq-desc-toggle" type="button" aria-expanded="true">
|
|
5
|
-
<span>{{ description_label }}</span>
|
|
6
|
-
<span class="lq-desc-chevron"></span>
|
|
7
|
-
</button>
|
|
8
|
-
<div class="lq-desc-panel" style="display:block">
|
|
9
|
-
<div class="lq-desc-content product_description">
|
|
10
|
-
<div class="ql-editor leading-10" style="text-align:start" dir="auto">{{ description }}</div>
|
|
11
|
-
</div>
|
|
12
|
-
</div>
|
|
13
|
-
</div>
|
|
14
|
-
{% endif %}
|
|
15
|
-
|
|
16
|
-
{% for policy in policies %}
|
|
17
|
-
<div class="lq-desc-item">
|
|
18
|
-
<button class="lq-desc-toggle" type="button" aria-expanded="false">
|
|
19
|
-
<span class="lq-desc-toggle-label">
|
|
20
|
-
<img src="{{ policy.icon }}" alt="" class="lq-desc-icon" />
|
|
21
|
-
<span>{{ policy.title }}</span>
|
|
22
|
-
</span>
|
|
23
|
-
<span class="lq-desc-chevron"></span>
|
|
24
|
-
</button>
|
|
25
|
-
<div class="lq-desc-panel" style="display:none">
|
|
26
|
-
<div class="lq-desc-content">{{ policy.content }}</div>
|
|
27
|
-
</div>
|
|
28
|
-
</div>
|
|
29
|
-
{% endfor %}
|
|
30
|
-
</div>
|
|
1
|
+
<div class="lq-desc-accordion">
|
|
2
|
+
{% if description != "" %}
|
|
3
|
+
<div class="lq-desc-item" data-open="true">
|
|
4
|
+
<button class="lq-desc-toggle" type="button" aria-expanded="true">
|
|
5
|
+
<span>{{ description_label }}</span>
|
|
6
|
+
<span class="lq-desc-chevron"></span>
|
|
7
|
+
</button>
|
|
8
|
+
<div class="lq-desc-panel" style="display:block">
|
|
9
|
+
<div class="lq-desc-content product_description">
|
|
10
|
+
<div class="ql-editor leading-10" style="text-align:start" dir="auto">{{ description }}</div>
|
|
11
|
+
</div>
|
|
12
|
+
</div>
|
|
13
|
+
</div>
|
|
14
|
+
{% endif %}
|
|
15
|
+
|
|
16
|
+
{% for policy in policies %}
|
|
17
|
+
<div class="lq-desc-item">
|
|
18
|
+
<button class="lq-desc-toggle" type="button" aria-expanded="false">
|
|
19
|
+
<span class="lq-desc-toggle-label">
|
|
20
|
+
<img src="{{ policy.icon }}" alt="" class="lq-desc-icon" />
|
|
21
|
+
<span>{{ policy.title }}</span>
|
|
22
|
+
</span>
|
|
23
|
+
<span class="lq-desc-chevron"></span>
|
|
24
|
+
</button>
|
|
25
|
+
<div class="lq-desc-panel" style="display:none">
|
|
26
|
+
<div class="lq-desc-content">{{ policy.content }}</div>
|
|
27
|
+
</div>
|
|
28
|
+
</div>
|
|
29
|
+
{% endfor %}
|
|
30
|
+
</div>
|