@lancom/shared 0.0.261 → 0.0.262
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/assets/js/api/admin.js +11 -11
- package/assets/js/constants/country.js +1 -1
- package/assets/scss/ui_kit/_forms.scss +2 -2
- package/assets/scss/ui_kit/_tooltip.scss +1 -3
- package/assets/scss/variables/_theme.scss +3 -3
- package/components/asides/contact_us/contact-us.vue +6 -0
- package/components/checkout/cart/cart.mixin.js +5 -5
- package/components/checkout/cart/cart_price_info/cart-price-info.vue +2 -2
- package/components/checkout/cart/cart_shipments_pricing/cart-shipments-pricing.vue +2 -2
- package/components/checkout/order/address-form/address-form.vue +3 -4
- package/components/checkout/order/order-shipping-method/order-shipping-method.vue +2 -2
- package/components/checkout/order/order.vue +1 -1
- package/components/common/contacts-phone.vue +46 -0
- package/components/common/payment/payment_card/pinpayment/pinpayment.vue +5 -34
- package/components/common/postcode_select/postcode-select.vue +1 -5
- package/components/common/products_total_pricing/products-total-pricing.vue +1 -5
- package/components/design/approve_design_header/approve-design-header.vue +1 -1
- package/components/editor/editor.vue +2 -8
- package/components/editor/editor_pricing/editor-pricing.vue +2 -2
- package/components/editor/editor_pricing/editor_pricing_details/editor_pricing_details_prints/editor-pricing-details-prints.vue +7 -8
- package/components/editor/editor_pricing/editor_pricing_details/editor_pricing_details_products/editor-pricing-details-products.vue +5 -13
- package/components/editor/editor_product_details/editor-product-details.scss +0 -6
- package/components/editor/editor_product_details/editor-product-details.vue +2 -12
- package/components/faq/faq.vue +2 -2
- package/components/modals/order_modal/order-modal.vue +3 -17
- package/components/order/order_price/order-price.vue +3 -5
- package/components/order/order_prints_groups/order-prints-groups.vue +1 -3
- package/components/order/order_products_groups/order-products-groups.vue +1 -3
- package/components/order/order_refund_view/order-refund-view.vue +3 -5
- package/components/order/order_setup_groups/order-setup-groups.vue +2 -4
- package/components/order/order_sku_groups/order-sku-groups.vue +1 -3
- package/components/order/order_view/order-view.vue +6 -10
- package/components/pricing/pricing_digital_printing/pricing-digital-printing.vue +1 -3
- package/components/pricing/pricing_example/pricing-example.vue +3 -3
- package/components/pricing/pricing_how_we_calculate/pricing-how-we-calculate.vue +2 -7
- package/components/pricing/pricing_products_calculator/pricing_product_calculator/pricing-product-calculator.vue +2 -2
- package/components/pricing/pricing_screen_printing/pricing-screen-printing.vue +1 -3
- package/components/product/product_price_range/product-price-range.vue +5 -6
- package/components/product/product_prints_price_info/product-prints-price-info.vue +2 -2
- package/components/products/products_autocomplete/products-autocomplete.scss +12 -10
- package/components/quotes/quote_request/quote-request.vue +12 -5
- package/components/quotes/quote_view/quote_option_view/quote-option-view.vue +4 -5
- package/components/subscribe/subscribe.vue +10 -1
- package/mixins/meta-info.js +1 -4
- package/mixins/products-price.js +2 -3
- package/package.json +1 -1
- package/store/cart.js +6 -7
- package/store/index.js +5 -16
- package/store/product.js +2 -3
package/assets/js/api/admin.js
CHANGED
|
@@ -132,34 +132,34 @@ export default {
|
|
|
132
132
|
return _post(`admin/orders/pick-pdf`, { orders });
|
|
133
133
|
},
|
|
134
134
|
saveOrderSubsequentInvoice(order, invoice) {
|
|
135
|
-
return invoice._id ? _put(`admin/shop/${order.shop
|
|
135
|
+
return invoice._id ? _put(`admin/shop/${order.shop}/order/${order._id}/invoice/${invoice._id}`, invoice) : _post(`admin/shop/${order.shop}/order/${order._id}/invoice`, invoice);
|
|
136
136
|
},
|
|
137
137
|
sendOrderSubsequentInvoice(order, invoice) {
|
|
138
|
-
return _post(`admin/shop/${order.shop
|
|
138
|
+
return _post(`admin/shop/${order.shop}/order/${order._id}/invoice/${invoice}/send`);
|
|
139
139
|
},
|
|
140
|
-
|
|
141
|
-
return _post(`admin/shop/${order.shop
|
|
140
|
+
exportOrderToStarshipit(order, shipment) {
|
|
141
|
+
return _post(`admin/shop/${order.shop}/order/${order._id}/shipment/${shipment._id || shipment.guid}/export-to-starshipit`, shipment);
|
|
142
142
|
},
|
|
143
143
|
markShipmentAsDispatched(order, shipment) {
|
|
144
|
-
return _post(`admin/shop/${order.shop
|
|
144
|
+
return _post(`admin/shop/${order.shop}/order/${order._id}/shipment/${shipment._id || shipment.guid}/dispatched`, shipment);
|
|
145
145
|
},
|
|
146
146
|
markSubOrderAsDispatched(order, subOrder) {
|
|
147
|
-
return _post(`admin/shop/${order.shop
|
|
147
|
+
return _post(`admin/shop/${order.shop}/order/${order._id}/sub-order/${subOrder._id}/dispatched`, subOrder);
|
|
148
148
|
},
|
|
149
149
|
generateDuplicateOrderCode(order) {
|
|
150
150
|
return _get(`admin/order/${order}/duplicate-code`);
|
|
151
151
|
},
|
|
152
152
|
sendShipmentTracking(order, shipment, tracking) {
|
|
153
|
-
return _post(`admin/shop/${order.shop
|
|
153
|
+
return _post(`admin/shop/${order.shop}/order/${order._id}/shipment/${shipment._id || shipment.guid}/tracking/${tracking._id}/send`, tracking);
|
|
154
154
|
},
|
|
155
|
-
|
|
156
|
-
return _delete(`admin/shop/${order.shop
|
|
155
|
+
removeShipmentFromStarshipit(order, shipment) {
|
|
156
|
+
return _delete(`admin/shop/${order.shop}/order/${order._id}/shipment/${shipment._id || shipment.guid}`);
|
|
157
157
|
},
|
|
158
158
|
calculateShipmentRates(order, shipment) {
|
|
159
|
-
return _get(`admin/shop/${order.shop
|
|
159
|
+
return _get(`admin/shop/${order.shop}/order/${order._id}/shipment/${shipment._id || shipment.guid}/calculate-shipping`);
|
|
160
160
|
},
|
|
161
161
|
createPrintLabels(order, shipment, rate) {
|
|
162
|
-
return _post(`admin/shop/${order.shop
|
|
162
|
+
return _post(`admin/shop/${order.shop}/order/${order._id}/shipment/${shipment._id || shipment.guid}/print-labels`, rate);
|
|
163
163
|
},
|
|
164
164
|
createOrderRefund(order, refund, shop) {
|
|
165
165
|
return _post(`shop/${shop}/order/${order}/refund`, refund);
|
|
@@ -177,7 +177,7 @@ html[dir=rtl] .form-icon-left {
|
|
|
177
177
|
height: 50px;
|
|
178
178
|
border-width: 1px;
|
|
179
179
|
border-style: solid;
|
|
180
|
-
border-color:
|
|
180
|
+
border-color: #EFF1F2;
|
|
181
181
|
border-radius: 5px;
|
|
182
182
|
font-style: normal;
|
|
183
183
|
font-weight: normal;
|
|
@@ -424,7 +424,7 @@ html[dir=rtl] .textarea {
|
|
|
424
424
|
}
|
|
425
425
|
&__tags {
|
|
426
426
|
min-height: 50px;
|
|
427
|
-
border: 1px solid
|
|
427
|
+
border: 1px solid #e5e5e5;
|
|
428
428
|
border-radius: 8px !important;
|
|
429
429
|
padding: 19px 3px 4px 20px;
|
|
430
430
|
}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
@import "@/assets/scss/variables";
|
|
2
|
-
|
|
3
1
|
.tooltip {
|
|
4
2
|
display: block !important;
|
|
5
3
|
z-index: 10000;
|
|
@@ -27,7 +25,7 @@
|
|
|
27
25
|
&.white &-inner {
|
|
28
26
|
background: #FFF !important;
|
|
29
27
|
color: #575872 !important;
|
|
30
|
-
border: 1px solid
|
|
28
|
+
border: 1px solid #EFF1F2 !important;
|
|
31
29
|
}
|
|
32
30
|
&.white &-arrow {
|
|
33
31
|
border-color: #FFF !important;
|
|
@@ -15,7 +15,7 @@ $white_high_emphasis: #FFFFFF;
|
|
|
15
15
|
$white_medium_emphasis: rgba(255, 255, 255, .66);
|
|
16
16
|
$gray: #575872 !default;
|
|
17
17
|
$medium_gray: #B0B0BA !default;
|
|
18
|
-
$light_gray: #F9F9FC;
|
|
18
|
+
$light_gray: #F9F9FC !default;
|
|
19
19
|
$link: #5D89A9;
|
|
20
20
|
$error: #E44868;
|
|
21
21
|
$secondary_900: #20303C;
|
|
@@ -52,8 +52,8 @@ $black: #343750 !default;
|
|
|
52
52
|
$gray_main: #616277 !default;
|
|
53
53
|
$grey_1: #616277 !default;
|
|
54
54
|
$grey_2: #B0B0BA !default;
|
|
55
|
-
$grey_3: #EFF1F2;
|
|
56
|
-
$grey_4: #F9F9FC;
|
|
55
|
+
$grey_3: #EFF1F2 !default;
|
|
56
|
+
$grey_4: #F9F9FC !default;
|
|
57
57
|
$grey_5: #9898A5 !default;
|
|
58
58
|
|
|
59
59
|
$white: #fff;
|
|
@@ -170,6 +170,7 @@
|
|
|
170
170
|
<script>
|
|
171
171
|
import { mapGetters } from 'vuex';
|
|
172
172
|
import api from '@lancom/shared/assets/js/api';
|
|
173
|
+
import gtm from '@lancom/shared/assets/js/utils/gtm';
|
|
173
174
|
|
|
174
175
|
export default {
|
|
175
176
|
name: 'LancomContactUs',
|
|
@@ -201,6 +202,11 @@ export default {
|
|
|
201
202
|
...this.form
|
|
202
203
|
};
|
|
203
204
|
const response = await api.contactUs(body, this.shop._id);
|
|
205
|
+
gtm.push({
|
|
206
|
+
event: 'submit_contact_form',
|
|
207
|
+
referer: window.location.href,
|
|
208
|
+
...this.form
|
|
209
|
+
});
|
|
204
210
|
this.$toastr.s(`Thank you for getting in touch! Your Code is: ${response.code}`);
|
|
205
211
|
this.$emit('close');
|
|
206
212
|
} catch (error) {
|
|
@@ -12,7 +12,7 @@ export default {
|
|
|
12
12
|
};
|
|
13
13
|
},
|
|
14
14
|
computed: {
|
|
15
|
-
...mapGetters(['shop'
|
|
15
|
+
...mapGetters(['shop']),
|
|
16
16
|
...mapGetters('auth', ['user']),
|
|
17
17
|
...mapGetters('cart', [
|
|
18
18
|
'entities',
|
|
@@ -45,11 +45,11 @@ export default {
|
|
|
45
45
|
},
|
|
46
46
|
watch: {
|
|
47
47
|
entities() {
|
|
48
|
-
this.calculateCartPriceWithDebounce({ shop: this.shop
|
|
48
|
+
this.calculateCartPriceWithDebounce({ shop: this.shop });
|
|
49
49
|
}
|
|
50
50
|
},
|
|
51
51
|
mounted() {
|
|
52
|
-
this.calculateCartPriceWithDebounce({ shop: this.shop
|
|
52
|
+
this.calculateCartPriceWithDebounce({ shop: this.shop });
|
|
53
53
|
if (!this.suburb && this.user?.suburb) {
|
|
54
54
|
this.handleSuburbChange(this.user.suburb);
|
|
55
55
|
}
|
|
@@ -65,11 +65,11 @@ export default {
|
|
|
65
65
|
]),
|
|
66
66
|
handleSuburbChange(suburb) {
|
|
67
67
|
this.setSuburb(suburb);
|
|
68
|
-
this.calculateCartPrice({ shop: this.shop
|
|
68
|
+
this.calculateCartPrice({ shop: this.shop });
|
|
69
69
|
},
|
|
70
70
|
handleCouponChange(coupon) {
|
|
71
71
|
this.setCoupon(coupon);
|
|
72
|
-
this.calculateCartPrice({ shop: this.shop
|
|
72
|
+
this.calculateCartPrice({ shop: this.shop });
|
|
73
73
|
},
|
|
74
74
|
async removeSimpleProducts(simpleProducts) {
|
|
75
75
|
const message = 'This will delete all items in this row, Press OK to continue or Cancel';
|
|
@@ -41,7 +41,7 @@ export default {
|
|
|
41
41
|
};
|
|
42
42
|
},
|
|
43
43
|
computed: {
|
|
44
|
-
...mapGetters(['shop'
|
|
44
|
+
...mapGetters(['shop']),
|
|
45
45
|
...mapGetters('cart', [
|
|
46
46
|
'entities',
|
|
47
47
|
'cartPricing',
|
|
@@ -62,7 +62,7 @@ export default {
|
|
|
62
62
|
'calculateCartPrice'
|
|
63
63
|
]),
|
|
64
64
|
async calculatePrice() {
|
|
65
|
-
await this.calculateCartPrice({ shop: this.shop
|
|
65
|
+
await this.calculateCartPrice({ shop: this.shop });
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
};
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
:class="{
|
|
34
34
|
'CartShipmentsPricing__rate--disabled': rate.disabled
|
|
35
35
|
}"
|
|
36
|
-
@click="selectRate({ supplier, rate, shop
|
|
36
|
+
@click="selectRate({ supplier, rate, shop })">
|
|
37
37
|
<div class="CartShipmentsPricing__rate-info">
|
|
38
38
|
<div class="CartShipmentsPricing__rate-icon">
|
|
39
39
|
<checked-icon :checked="rate.selected" />
|
|
@@ -77,7 +77,7 @@ export default {
|
|
|
77
77
|
},
|
|
78
78
|
mixins: [confirm],
|
|
79
79
|
computed: {
|
|
80
|
-
...mapGetters(['shop'
|
|
80
|
+
...mapGetters(['shop']),
|
|
81
81
|
...mapGetters('cart', [
|
|
82
82
|
'cartPricing'
|
|
83
83
|
]),
|
|
@@ -203,7 +203,7 @@
|
|
|
203
203
|
<input
|
|
204
204
|
id="country"
|
|
205
205
|
ref="country"
|
|
206
|
-
|
|
206
|
+
value="Only Australia"
|
|
207
207
|
name="country"
|
|
208
208
|
type="country"
|
|
209
209
|
class="form-field filled labelless"
|
|
@@ -264,7 +264,7 @@ export default {
|
|
|
264
264
|
}
|
|
265
265
|
},
|
|
266
266
|
computed: {
|
|
267
|
-
...mapGetters(['shop'
|
|
267
|
+
...mapGetters(['shop']),
|
|
268
268
|
...mapGetters('cart', [
|
|
269
269
|
'suburb'
|
|
270
270
|
]),
|
|
@@ -296,13 +296,12 @@ export default {
|
|
|
296
296
|
this.$set(this.address, 'state', suburb.state);
|
|
297
297
|
this.$set(this.address, 'postcode', suburb.postcode);
|
|
298
298
|
this.$set(this.address, 'city', suburb.locality);
|
|
299
|
-
this.$set(this.address, 'country', suburb.country);
|
|
300
299
|
}
|
|
301
300
|
},
|
|
302
301
|
handleSuburbChange(suburb) {
|
|
303
302
|
this.setAddressSuburb(suburb);
|
|
304
303
|
this.setSuburb(suburb);
|
|
305
|
-
this.calculateCartPrice({ shop: this.shop
|
|
304
|
+
this.calculateCartPrice({ shop: this.shop });
|
|
306
305
|
}
|
|
307
306
|
}
|
|
308
307
|
};
|
|
@@ -45,7 +45,7 @@ export default {
|
|
|
45
45
|
};
|
|
46
46
|
},
|
|
47
47
|
computed: {
|
|
48
|
-
...mapGetters(['shop'
|
|
48
|
+
...mapGetters(['shop']),
|
|
49
49
|
...mapGetters('cart', ['cartPricing']),
|
|
50
50
|
shippingPricing() {
|
|
51
51
|
return this.cartPricing?.shipping;
|
|
@@ -53,7 +53,7 @@ export default {
|
|
|
53
53
|
},
|
|
54
54
|
mounted() {
|
|
55
55
|
if (!this.shippingPricing) {
|
|
56
|
-
this.calculateCartPrice({ shop: this.shop
|
|
56
|
+
this.calculateCartPrice({ shop: this.shop });
|
|
57
57
|
}
|
|
58
58
|
},
|
|
59
59
|
methods: {
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<span>
|
|
3
|
+
<i
|
|
4
|
+
v-if="icon"
|
|
5
|
+
class="icon-smartphone">
|
|
6
|
+
</i>
|
|
7
|
+
<a
|
|
8
|
+
:href="`tel:${contacts.phone}`"
|
|
9
|
+
:style="{ color }"
|
|
10
|
+
@click="onClick">
|
|
11
|
+
{{contacts.phone}}
|
|
12
|
+
</a>
|
|
13
|
+
</span>
|
|
14
|
+
</template>
|
|
15
|
+
|
|
16
|
+
<script>
|
|
17
|
+
import { mapGetters } from 'vuex';
|
|
18
|
+
import gtm from '@lancom/shared/assets/js/utils/gtm';
|
|
19
|
+
|
|
20
|
+
export default {
|
|
21
|
+
name: 'ContactsPhone',
|
|
22
|
+
props: {
|
|
23
|
+
icon: {
|
|
24
|
+
type: Boolean,
|
|
25
|
+
default: false
|
|
26
|
+
},
|
|
27
|
+
color: {
|
|
28
|
+
type: String,
|
|
29
|
+
default: '#303030'
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
computed: {
|
|
33
|
+
...mapGetters(['contacts'])
|
|
34
|
+
},
|
|
35
|
+
methods: {
|
|
36
|
+
onClick() {
|
|
37
|
+
gtm.push({
|
|
38
|
+
event: 'click_on_phone',
|
|
39
|
+
referer: window.location.href
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
</script>
|
|
45
|
+
|
|
46
|
+
|
|
@@ -86,8 +86,6 @@
|
|
|
86
86
|
</template>
|
|
87
87
|
|
|
88
88
|
<script>
|
|
89
|
-
let interval = null;
|
|
90
|
-
|
|
91
89
|
export default {
|
|
92
90
|
name: 'Payment',
|
|
93
91
|
props: {
|
|
@@ -110,17 +108,14 @@ export default {
|
|
|
110
108
|
fields: null
|
|
111
109
|
};
|
|
112
110
|
},
|
|
113
|
-
|
|
111
|
+
mounted() {
|
|
114
112
|
this.loading = true;
|
|
115
|
-
|
|
116
|
-
await this.preloadPinpayments();
|
|
117
|
-
|
|
118
113
|
if (window.HostedFields) {
|
|
119
|
-
|
|
114
|
+
this.initHostedPayment();
|
|
120
115
|
} else {
|
|
121
|
-
window.addEventListener('load',
|
|
116
|
+
window.addEventListener('load', () => {
|
|
122
117
|
if (!this.fields) {
|
|
123
|
-
|
|
118
|
+
this.initHostedPayment();
|
|
124
119
|
}
|
|
125
120
|
});
|
|
126
121
|
}
|
|
@@ -199,31 +194,7 @@ export default {
|
|
|
199
194
|
}
|
|
200
195
|
);
|
|
201
196
|
});
|
|
202
|
-
}
|
|
203
|
-
async preloadPinpayments() {
|
|
204
|
-
if (!window.HostedFields) {
|
|
205
|
-
clearInterval(interval);
|
|
206
|
-
await this.loadPinpayments();
|
|
207
|
-
await new Promise((resolve, reject) => {
|
|
208
|
-
interval = setInterval(() => {
|
|
209
|
-
if (window.HostedFields) {
|
|
210
|
-
clearInterval(interval);
|
|
211
|
-
resolve()
|
|
212
|
-
}
|
|
213
|
-
}, 100);
|
|
214
|
-
});
|
|
215
|
-
}
|
|
216
|
-
},
|
|
217
|
-
loadPinpayments() {
|
|
218
|
-
return new Promise((resolve) => {
|
|
219
|
-
const script = document.createElement('script');
|
|
220
|
-
script.type = "text/javascript";
|
|
221
|
-
script.src = 'https://cdn.pinpayments.com/pin.hosted_fields.v1.js';
|
|
222
|
-
script.onload = () => resolve();
|
|
223
|
-
const body = document.getElementsByTagName('body')[0];
|
|
224
|
-
body.appendChild(script);
|
|
225
|
-
});
|
|
226
|
-
}
|
|
197
|
+
}
|
|
227
198
|
}
|
|
228
199
|
};
|
|
229
200
|
</script>
|
|
@@ -88,9 +88,6 @@ export default {
|
|
|
88
88
|
},
|
|
89
89
|
filters: { highlight },
|
|
90
90
|
props: {
|
|
91
|
-
country: {
|
|
92
|
-
type: Object
|
|
93
|
-
},
|
|
94
91
|
value: {
|
|
95
92
|
type: String
|
|
96
93
|
},
|
|
@@ -150,8 +147,7 @@ export default {
|
|
|
150
147
|
async handleSearch(query) {
|
|
151
148
|
if (query.length) {
|
|
152
149
|
this.isLoading = true;
|
|
153
|
-
|
|
154
|
-
this.suburbs = await api.fetchSuburbs({ query, country });
|
|
150
|
+
this.suburbs = await api.fetchSuburbs({ query });
|
|
155
151
|
this.options = this.suburbs.map(this.createOptionFromSuburb);
|
|
156
152
|
this.isLoading = false;
|
|
157
153
|
} else {
|
|
@@ -21,14 +21,13 @@
|
|
|
21
21
|
Total: {{ pricing.totalPrice | price(currency) }} <br />
|
|
22
22
|
</div>
|
|
23
23
|
<div class="lc_regular14 mt-4">
|
|
24
|
-
Incl.
|
|
24
|
+
Incl. GST ({{ pricing.tax.percent }}) {{ pricing.tax.totalPrice | price(currency) }}
|
|
25
25
|
</div>
|
|
26
26
|
</div>
|
|
27
27
|
</div>
|
|
28
28
|
</template>
|
|
29
29
|
|
|
30
30
|
<script>
|
|
31
|
-
import { mapGetters } from 'vuex';
|
|
32
31
|
import { price } from '@lancom/shared/assets/js/utils/filters';
|
|
33
32
|
|
|
34
33
|
export default {
|
|
@@ -45,9 +44,6 @@ export default {
|
|
|
45
44
|
type: String,
|
|
46
45
|
default: 'Tee'
|
|
47
46
|
}
|
|
48
|
-
},
|
|
49
|
-
computed: {
|
|
50
|
-
...mapGetters(['taxName'])
|
|
51
47
|
}
|
|
52
48
|
};
|
|
53
49
|
</script>
|
|
@@ -18,9 +18,7 @@
|
|
|
18
18
|
</component>
|
|
19
19
|
</template>
|
|
20
20
|
</tabs>
|
|
21
|
-
<div
|
|
22
|
-
v-if="productAvailableInCurrentCountry"
|
|
23
|
-
class="Editor__footer">
|
|
21
|
+
<div class="Editor__footer">
|
|
24
22
|
<btn
|
|
25
23
|
btn-label="Start again"
|
|
26
24
|
btn-class="white"
|
|
@@ -137,12 +135,8 @@ export default {
|
|
|
137
135
|
...mapGetters('layers', [
|
|
138
136
|
'layerThumbnails'
|
|
139
137
|
]),
|
|
140
|
-
productAvailableInCurrentCountry() {
|
|
141
|
-
const { countries } = this.product;
|
|
142
|
-
return !(countries || []).length || countries.includes(this.country._id);
|
|
143
|
-
},
|
|
144
138
|
addToCartDisabled() {
|
|
145
|
-
return !this.
|
|
139
|
+
return !(this.template.layers.length && this.usedSimpleProducts.length);
|
|
146
140
|
}
|
|
147
141
|
},
|
|
148
142
|
watch: {
|
|
@@ -116,11 +116,11 @@ export default {
|
|
|
116
116
|
return {
|
|
117
117
|
price: null,
|
|
118
118
|
showDetails: false,
|
|
119
|
-
calculatePriceWithDebounce: debounce(() => this.calculateProductPrice(
|
|
119
|
+
calculatePriceWithDebounce: debounce(() => this.calculateProductPrice(this.shop), 500)
|
|
120
120
|
};
|
|
121
121
|
},
|
|
122
122
|
computed: {
|
|
123
|
-
...mapGetters(['shop'
|
|
123
|
+
...mapGetters(['shop']),
|
|
124
124
|
...mapGetters('product', [
|
|
125
125
|
'defaultSimpleProduct',
|
|
126
126
|
'usedSimpleProducts',
|
|
@@ -32,18 +32,18 @@
|
|
|
32
32
|
</td>
|
|
33
33
|
<td>
|
|
34
34
|
<strong>
|
|
35
|
-
{{
|
|
35
|
+
{{ group.setupPriceWithoutTax | priceWithTax(pricingSettings, currency) }}
|
|
36
36
|
</strong>
|
|
37
37
|
</td>
|
|
38
38
|
<td>
|
|
39
39
|
<span v-if="group.costType !== 'setup only'">
|
|
40
40
|
<strong>
|
|
41
|
-
{{ (
|
|
41
|
+
{{ (displayPricingWithTax ? group.totalPrice : group.totalPriceWithoutTax) | price(currency) }}
|
|
42
42
|
</strong>
|
|
43
|
-
= {{ group.amount }} x {{ (
|
|
43
|
+
= {{ group.amount }} x {{ (displayPricingWithTax ? group.price : group.priceWithoutTax) | price(currency) }}
|
|
44
44
|
</span>
|
|
45
45
|
<strong v-else>
|
|
46
|
-
{{ (
|
|
46
|
+
{{ (displayPricingWithTax ? group.totalPrice : group.totalPriceWithoutTax) | price(currency) }}
|
|
47
47
|
</strong>
|
|
48
48
|
</td>
|
|
49
49
|
</tr>
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
</td>
|
|
59
59
|
<td>
|
|
60
60
|
<strong>
|
|
61
|
-
{{ (
|
|
61
|
+
{{ (displayPricingWithTax ? productPricing.products.prints.totalPrice : productPricing.products.prints.totalPriceWithoutTax) | price(currency) }}
|
|
62
62
|
</strong>
|
|
63
63
|
</td>
|
|
64
64
|
</tr>
|
|
@@ -80,13 +80,12 @@ export default {
|
|
|
80
80
|
sizesRange
|
|
81
81
|
},
|
|
82
82
|
computed: {
|
|
83
|
-
...mapGetters(['pricingSettings']),
|
|
83
|
+
...mapGetters(['displayPricingWithTax', 'pricingSettings']),
|
|
84
84
|
...mapGetters('product', [
|
|
85
85
|
'product',
|
|
86
86
|
'usedSimpleProducts',
|
|
87
87
|
'productPricing',
|
|
88
|
-
'mainProductPricing'
|
|
89
|
-
'priceIncludeGST'
|
|
88
|
+
'mainProductPricing'
|
|
90
89
|
]),
|
|
91
90
|
hasPrintSurcharge() {
|
|
92
91
|
return this.product.printSurcharge > 0;
|
|
@@ -31,20 +31,13 @@
|
|
|
31
31
|
{{ group.sizes | sizesRange }}
|
|
32
32
|
</td>
|
|
33
33
|
<td>
|
|
34
|
-
<span
|
|
35
|
-
v-if="priceIncludeGST"
|
|
36
|
-
class="EditorPricingDetailsProducts__hoverable">
|
|
34
|
+
<span class="EditorPricingDetailsProducts__hoverable">
|
|
37
35
|
{{ groupPrice | priceWithTax(pricingSettings, currency) }}
|
|
38
36
|
</span>
|
|
39
|
-
<span
|
|
40
|
-
v-else
|
|
41
|
-
class="EditorPricingDetailsProducts__hoverable">
|
|
42
|
-
{{ groupPrice | price(currency) }}
|
|
43
|
-
</span>
|
|
44
37
|
</td>
|
|
45
38
|
<td>
|
|
46
39
|
<strong>
|
|
47
|
-
{{ (
|
|
40
|
+
{{ (displayPricingWithTax ? group.totalPrice : group.totalPriceWithoutTax) | price(currency) }}
|
|
48
41
|
</strong>
|
|
49
42
|
</td>
|
|
50
43
|
</tr>
|
|
@@ -54,7 +47,7 @@
|
|
|
54
47
|
</td>
|
|
55
48
|
<td>
|
|
56
49
|
<strong>
|
|
57
|
-
{{ (
|
|
50
|
+
{{ (displayPricingWithTax ? productPricing.products.products.totalPrice : productPricing.products.products.totalPriceWithoutTax) | price(currency) }}
|
|
58
51
|
</strong>
|
|
59
52
|
</td>
|
|
60
53
|
</tr>
|
|
@@ -76,13 +69,12 @@ export default {
|
|
|
76
69
|
sizesRange
|
|
77
70
|
},
|
|
78
71
|
computed: {
|
|
79
|
-
...mapGetters(['pricingSettings']),
|
|
72
|
+
...mapGetters(['displayPricingWithTax', 'pricingSettings']),
|
|
80
73
|
...mapGetters('product', [
|
|
81
74
|
'product',
|
|
82
75
|
'usedSimpleProducts',
|
|
83
76
|
'mainProductPricing',
|
|
84
|
-
'productPricing'
|
|
85
|
-
'priceIncludeGST'
|
|
77
|
+
'productPricing'
|
|
86
78
|
]),
|
|
87
79
|
hasUsedSimpleProducts() {
|
|
88
80
|
return this.usedSimpleProducts.length > 0;
|
|
@@ -61,13 +61,8 @@
|
|
|
61
61
|
</div>
|
|
62
62
|
</div>
|
|
63
63
|
</div>
|
|
64
|
-
<div
|
|
65
|
-
v-if="!productAvailableInCurrentCountry"
|
|
66
|
-
class="EditorProductDetails__available-warning">
|
|
67
|
-
Product Not Available in {{ country.name }}
|
|
68
|
-
</div>
|
|
69
64
|
<fragment
|
|
70
|
-
v-if="productDetailsLoaded
|
|
65
|
+
v-if="productDetailsLoaded">
|
|
71
66
|
<div class="EditorProductDetails__section">
|
|
72
67
|
<product-colors-selector />
|
|
73
68
|
</div>
|
|
@@ -117,13 +112,8 @@ export default {
|
|
|
117
112
|
'layerThumbnails'
|
|
118
113
|
]),
|
|
119
114
|
...mapGetters([
|
|
120
|
-
'pricingSettings'
|
|
121
|
-
'country'
|
|
115
|
+
'pricingSettings'
|
|
122
116
|
]),
|
|
123
|
-
productAvailableInCurrentCountry() {
|
|
124
|
-
const { countries } = this.product;
|
|
125
|
-
return !(countries || []).length || countries.includes(this.country._id);
|
|
126
|
-
},
|
|
127
117
|
productLink() {
|
|
128
118
|
return generateProductLink(this.product);
|
|
129
119
|
},
|
package/components/faq/faq.vue
CHANGED
|
@@ -111,7 +111,7 @@ export default {
|
|
|
111
111
|
</script>
|
|
112
112
|
|
|
113
113
|
<style lang="scss">
|
|
114
|
-
@import "
|
|
114
|
+
@import "@lancom/shared/assets/scss/variables";
|
|
115
115
|
$types: delivery, general, other, printing, garments;
|
|
116
116
|
.FAQ {
|
|
117
117
|
&__wrapper {
|
|
@@ -218,7 +218,7 @@ $types: delivery, general, other, printing, garments;
|
|
|
218
218
|
&-body {
|
|
219
219
|
padding: 6px 30px 24px 30px;
|
|
220
220
|
line-height: 27px;
|
|
221
|
-
color: $
|
|
221
|
+
color: $gray;
|
|
222
222
|
overflow: hidden;
|
|
223
223
|
@import "@lancom/shared/assets/scss/normalize";
|
|
224
224
|
}
|