cloudcommerce 0.0.64 → 0.0.67
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/CHANGELOG.md +34 -0
- package/package.json +8 -8
- package/packages/api/package.json +1 -1
- package/packages/apps/correios/README.md +1 -1
- package/packages/apps/correios/lib-mjs/calculate-correios.mjs +2 -2
- package/packages/apps/correios/package.json +1 -1
- package/packages/apps/custom-shipping/CHANGELOG.md +1 -0
- package/packages/apps/custom-shipping/README.md +1 -0
- package/packages/apps/custom-shipping/lib/custom-shipping.d.ts +2 -0
- package/packages/apps/custom-shipping/lib/custom-shipping.js +6 -0
- package/packages/apps/custom-shipping/lib/custom-shipping.js.map +1 -0
- package/packages/apps/custom-shipping/lib/index.d.ts +1 -0
- package/packages/apps/custom-shipping/lib/index.js +2 -0
- package/packages/apps/custom-shipping/lib/index.js.map +1 -0
- package/packages/apps/custom-shipping/lib-mjs/calculate-custom-shipping.mjs +251 -0
- package/packages/apps/custom-shipping/package.json +27 -0
- package/packages/apps/custom-shipping/src/custom-shipping.ts +7 -0
- package/packages/apps/custom-shipping/src/index.ts +1 -0
- package/packages/apps/custom-shipping/tsconfig.json +6 -0
- package/packages/apps/discounts/package.json +1 -1
- package/packages/apps/tiny-erp/README.md +1 -1
- package/packages/apps/tiny-erp/lib/integration/export-order-to-tiny.js +9 -6
- package/packages/apps/tiny-erp/lib/integration/export-order-to-tiny.js.map +1 -1
- package/packages/apps/tiny-erp/package.json +2 -2
- package/packages/apps/tiny-erp/src/integration/export-order-to-tiny.ts +9 -6
- package/packages/cli/package.json +1 -1
- package/packages/config/CHANGELOG.md +1 -0
- package/packages/config/README.md +1 -0
- package/packages/config/lib/config.d.ts +13 -0
- package/packages/config/lib/config.js +30 -0
- package/packages/config/lib/config.js.map +1 -0
- package/packages/{firebase → config}/lib/defaults.d.ts +0 -0
- package/packages/{firebase → config}/lib/defaults.js +0 -0
- package/packages/{firebase → config}/lib/defaults.js.map +0 -0
- package/packages/config/lib/env.d.ts +11 -0
- package/packages/config/lib/env.js +30 -0
- package/packages/config/lib/env.js.map +1 -0
- package/packages/config/package.json +33 -0
- package/packages/config/src/config.ts +43 -0
- package/packages/{firebase → config}/src/defaults.ts +0 -0
- package/packages/config/src/env.ts +43 -0
- package/packages/config/tsconfig.json +6 -0
- package/packages/events/package.json +2 -2
- package/packages/firebase/lib/config.d.ts +21 -21
- package/packages/firebase/lib/config.js +20 -41
- package/packages/firebase/lib/config.js.map +1 -1
- package/packages/firebase/lib/env.d.ts +2 -10
- package/packages/firebase/lib/env.js +3 -27
- package/packages/firebase/lib/env.js.map +1 -1
- package/packages/firebase/lib/handlers/check-store-events.js +17 -8
- package/packages/firebase/lib/handlers/check-store-events.js.map +1 -1
- package/packages/firebase/package.json +3 -3
- package/packages/firebase/src/config.ts +23 -45
- package/packages/firebase/src/env.ts +2 -38
- package/packages/firebase/src/handlers/check-store-events.ts +18 -9
- package/packages/modules/lib/firebase/call-app-module.js +5 -0
- package/packages/modules/lib/firebase/call-app-module.js.map +1 -1
- package/packages/modules/package.json +3 -2
- package/packages/modules/src/firebase/call-app-module.ts +5 -0
- package/packages/passport/package.json +2 -2
- package/packages/ssr/package.json +2 -2
- package/packages/storefront/.eslintrc.cjs +6 -0
- package/packages/storefront/astro.config.mjs +20 -0
- package/packages/storefront/content/blog.json +18 -0
- package/packages/storefront/content/brands.json +24 -0
- package/packages/storefront/content/categories.json +24 -0
- package/packages/storefront/content/code.json +5 -0
- package/packages/storefront/content/collections.json +24 -0
- package/packages/storefront/content/contacts.json +13 -0
- package/packages/storefront/content/footer.json +46 -0
- package/packages/storefront/content/header.json +27 -0
- package/packages/storefront/content/home.json +45 -0
- package/packages/storefront/content/info.json +18 -0
- package/packages/storefront/content/maintenance.json +6 -0
- package/packages/storefront/content/menu.json +6 -0
- package/packages/storefront/content/pages/contato.json +6 -0
- package/packages/storefront/content/pages/entrega.json +6 -0
- package/packages/storefront/content/pages/faq.json +6 -0
- package/packages/storefront/content/pages/pagamentos.json +6 -0
- package/packages/storefront/content/pages/privacidade.json +6 -0
- package/packages/storefront/content/pages/sobre-nos.json +6 -0
- package/packages/storefront/content/pages/termos.json +6 -0
- package/packages/storefront/content/pages/trocas.json +6 -0
- package/packages/storefront/content/posts/esta-loja-e-um-pwa.json +9 -0
- package/packages/storefront/content/products.json +32 -0
- package/packages/storefront/content/search.json +8 -0
- package/packages/storefront/content/settings.json +25 -0
- package/packages/storefront/content/social.json +5 -0
- package/packages/storefront/content/widgets/analytics.json +11 -0
- package/packages/storefront/content/widgets/compre-confie.json +11 -0
- package/packages/storefront/content/widgets/ebit.json +11 -0
- package/packages/storefront/content/widgets/fb-pixel.json +12 -0
- package/packages/storefront/content/widgets/gmc-ratings.json +12 -0
- package/packages/storefront/content/widgets/minicart.json +6 -0
- package/packages/storefront/content/widgets/offers-notification.json +11 -0
- package/packages/storefront/content/widgets/opinioes-verificadas.json +18 -0
- package/packages/storefront/content/widgets/product-card.json +10 -0
- package/packages/storefront/content/widgets/product.json +13 -0
- package/packages/storefront/content/widgets/search-engine.json +8 -0
- package/packages/storefront/content/widgets/search.json +6 -0
- package/packages/storefront/content/widgets/tag-manager.json +12 -0
- package/packages/storefront/content/widgets/tawkto.json +12 -0
- package/packages/storefront/content/widgets/trustvox.json +15 -0
- package/packages/storefront/content/widgets/user.json +5 -0
- package/packages/storefront/dist/client/assets/_...0b5ebd52.css +1 -0
- package/packages/storefront/dist/client/assets/_...d4aa8aff.css +1 -0
- package/packages/storefront/dist/client/assets/index.5608ba47.css +1 -0
- package/packages/storefront/dist/client/client.6d48c590.js +1 -0
- package/packages/storefront/dist/client/favicon.ico +0 -0
- package/packages/storefront/dist/client/page.3aa82516.js +1 -0
- package/packages/storefront/dist/client/~partytown/partytown-atomics.js +2 -0
- package/packages/storefront/dist/client/~partytown/partytown-media.js +2 -0
- package/packages/storefront/dist/client/~partytown/partytown-sw.js +2 -0
- package/packages/storefront/dist/client/~partytown/partytown.js +2 -0
- package/packages/storefront/dist/server/entry.mjs +1674 -0
- package/packages/storefront/package.json +13 -9
- package/packages/storefront/public/favicon.ico +0 -0
- package/packages/storefront/src/components/Card.astro +74 -0
- package/packages/storefront/src/layouts/Layout.astro +56 -0
- package/packages/storefront/src/pages/[...slug].astro +76 -0
- package/packages/storefront/src/pages/index.astro +82 -0
- package/packages/storefront/src/storefront-config.ts +28 -0
- package/packages/storefront/tsconfig.json +3 -0
- package/packages/types/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,40 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
### [0.0.67](https://github.com/ecomplus/cloud-commerce/compare/v0.0.66...v0.0.67) (2022-09-05)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* **deps:** Update all non-major dependencies ([#46](https://github.com/ecomplus/cloud-commerce/issues/46)) ([e70233d](https://github.com/ecomplus/cloud-commerce/commit/e70233d3d31c7e90cf5cc14b52dfd0d717a1d664))
|
|
11
|
+
* **events:** Fix handling events timestamp by resource and last run ([f34fe3c](https://github.com/ecomplus/cloud-commerce/commit/f34fe3cde3d0ea8d52ac89b370e9e77b0432177e))
|
|
12
|
+
* **events:** Properly filter by last non-orders check timestamp ([0d81267](https://github.com/ecomplus/cloud-commerce/commit/0d812675d9eea009c05afa89ec115ce24efa8911))
|
|
13
|
+
|
|
14
|
+
### [0.0.66](https://github.com/ecomplus/cloud-commerce/compare/v0.0.65...v0.0.66) (2022-09-05)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Features
|
|
18
|
+
|
|
19
|
+
* **config:** New reusable/isolated `@cloudcoommerce/config` package ([64b482f](https://github.com/ecomplus/cloud-commerce/commit/64b482fff9f8087a38890b52ff0c6bb7c40f85f9))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
### Bug Fixes
|
|
23
|
+
|
|
24
|
+
* **config:** Fix type defs for `@cloudcommerce/firebase` config ([f567851](https://github.com/ecomplus/cloud-commerce/commit/f567851e24d48162062e50cab77676c70b13e546))
|
|
25
|
+
|
|
26
|
+
### [0.0.65](https://github.com/ecomplus/cloud-commerce/compare/v0.0.64...v0.0.65) (2022-09-03)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
### Features
|
|
30
|
+
|
|
31
|
+
* **custom-shipping:** Setup custom shipping app from github.com/ecomplus/app-custom-shipping/ ([78818ea](https://github.com/ecomplus/cloud-commerce/commit/78818ead244741bea2a2c02becb465863b087461))
|
|
32
|
+
* **modules:** Handle custom shipping calculation with internal package ([b555a12](https://github.com/ecomplus/cloud-commerce/commit/b555a12dc8e2d7b6b11a5993d0ba846e645ced9e))
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
### Bug Fixes
|
|
36
|
+
|
|
37
|
+
* **tiny-erp:** Prevent exporting order with same Tiny status ([8b22e1b](https://github.com/ecomplus/cloud-commerce/commit/8b22e1b18a6b0494c794bd21f4bf38dcf9f92dc4))
|
|
38
|
+
|
|
5
39
|
### [0.0.64](https://github.com/ecomplus/cloud-commerce/compare/v0.0.63...v0.0.64) (2022-09-02)
|
|
6
40
|
|
|
7
41
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cloudcommerce",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.67",
|
|
5
5
|
"description": "Open fair-code headless commerce platform: API-first, microservices based, event driven and cloud native",
|
|
6
6
|
"main": "packages/api/lib/index.js",
|
|
7
7
|
"author": "E-Com Club Softwares para E-commerce <ti@e-com.club>",
|
|
@@ -16,13 +16,13 @@
|
|
|
16
16
|
}
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
19
|
-
"@commitlint/cli": "^17.1.
|
|
19
|
+
"@commitlint/cli": "^17.1.2",
|
|
20
20
|
"@commitlint/config-conventional": "^17.1.0",
|
|
21
21
|
"@commitlint/rules": "^17.0.0",
|
|
22
22
|
"@types/node": "^18.0.5",
|
|
23
|
-
"@typescript-eslint/eslint-plugin": "^5.
|
|
24
|
-
"@typescript-eslint/parser": "^5.
|
|
25
|
-
"esbuild": "^0.15.
|
|
23
|
+
"@typescript-eslint/eslint-plugin": "^5.36.1",
|
|
24
|
+
"@typescript-eslint/parser": "^5.36.1",
|
|
25
|
+
"esbuild": "^0.15.7",
|
|
26
26
|
"eslint": "^8.23.0",
|
|
27
27
|
"eslint-config-airbnb-base": "^15.0.0",
|
|
28
28
|
"eslint-plugin-import": "^2.26.0",
|
|
@@ -31,10 +31,10 @@
|
|
|
31
31
|
"node-fetch": "^3.2.10",
|
|
32
32
|
"standard-version": "^9.5.0",
|
|
33
33
|
"ts-node": "^10.9.1",
|
|
34
|
-
"turbo": "^1.4.
|
|
34
|
+
"turbo": "^1.4.5",
|
|
35
35
|
"typescript": "^4.8.2",
|
|
36
|
-
"vite": "^3.0
|
|
37
|
-
"vitest": "^0.
|
|
36
|
+
"vite": "^3.1.0",
|
|
37
|
+
"vitest": "^0.23.1",
|
|
38
38
|
"zx": "^7.0.8"
|
|
39
39
|
},
|
|
40
40
|
"scripts": {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
# `@cloudcommerce/correios`
|
|
1
|
+
# `@cloudcommerce/app-correios`
|
|
@@ -193,9 +193,9 @@ export default async ({ params, application }) => {
|
|
|
193
193
|
}
|
|
194
194
|
}
|
|
195
195
|
if (!config.free_no_weight_shipping || physicalWeight > 0) {
|
|
196
|
-
const
|
|
196
|
+
const unitWeight = cubicWeight < 5 || physicalWeight > cubicWeight
|
|
197
197
|
? physicalWeight : cubicWeight;
|
|
198
|
-
nVlPeso += (quantity *
|
|
198
|
+
nVlPeso += (quantity * unitWeight);
|
|
199
199
|
}
|
|
200
200
|
});
|
|
201
201
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Please refer to GitHub [repository releases](https://github.com/ecomplus/cloud-commerce/releases) or monorepo unified [CHANGELOG.md](https://github.com/ecomplus/cloud-commerce/blob/main/CHANGELOG.md).
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# `@cloudcommerce/app-custom-shipping`
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-shipping.js","sourceRoot":"","sources":["../src/custom-shipping.ts"],"names":[],"mappings":"AAEA,OAAO,uBAAuB,MAAM,0CAA0C,CAAC;AAE/E,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,OAAsB,EAAE,EAAE;IAChE,OAAO,uBAAuB,CAAC,OAAO,CAAC,CAAC;AAC1C,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './custom-shipping';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
export default async ({ params, application }) => {
|
|
2
|
+
const config = {
|
|
3
|
+
...application.data,
|
|
4
|
+
...application.hidden_data,
|
|
5
|
+
};
|
|
6
|
+
// https://apx-mods.e-com.plus/api/v1/calculate_shipping/response_schema.json?store_id=100
|
|
7
|
+
const response = {
|
|
8
|
+
shipping_services: [],
|
|
9
|
+
};
|
|
10
|
+
let shippingRules;
|
|
11
|
+
if (Array.isArray(config.shipping_rules) && config.shipping_rules.length) {
|
|
12
|
+
shippingRules = config.shipping_rules;
|
|
13
|
+
} else {
|
|
14
|
+
// anything to do without shipping rules
|
|
15
|
+
return response;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const destinationZip = params.to?.zip.replace(/\D/g, '') || '';
|
|
19
|
+
let originZip = params.from?.zip || config.zip || '';
|
|
20
|
+
const checkZipCode = (rule) => {
|
|
21
|
+
// validate rule zip range
|
|
22
|
+
if (destinationZip && rule.zip_range) {
|
|
23
|
+
const { min, max } = rule.zip_range;
|
|
24
|
+
return Boolean((!min || destinationZip >= min) && (!max || destinationZip <= max));
|
|
25
|
+
}
|
|
26
|
+
return true;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
// search for configured free shipping rule and origin zip by rule
|
|
30
|
+
for (let i = 0; i < shippingRules.length; i++) {
|
|
31
|
+
const rule = shippingRules[i];
|
|
32
|
+
if (
|
|
33
|
+
checkZipCode(rule)
|
|
34
|
+
&& !rule.total_price
|
|
35
|
+
&& !rule.disable_free_shipping_from
|
|
36
|
+
&& !(rule.excedent_weight_cost > 0)
|
|
37
|
+
&& !(rule.amount_tax > 0)
|
|
38
|
+
) {
|
|
39
|
+
if (!originZip && rule.from && rule.from.zip) {
|
|
40
|
+
originZip = rule.from.zip;
|
|
41
|
+
}
|
|
42
|
+
if (!rule.min_amount) {
|
|
43
|
+
response.free_shipping_from_value = 0;
|
|
44
|
+
if (originZip) {
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
} else if (!(response.free_shipping_from_value <= rule.min_amount)) {
|
|
48
|
+
response.free_shipping_from_value = rule.min_amount;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// params object follows calculate shipping request schema:
|
|
54
|
+
// https://apx-mods.e-com.plus/api/v1/calculate_shipping/schema.json?store_id=100
|
|
55
|
+
if (!params.to) {
|
|
56
|
+
// respond only with free shipping option
|
|
57
|
+
return response;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
if (!originZip) {
|
|
61
|
+
// must have configured origin zip code to continue
|
|
62
|
+
const rule = shippingRules.find((_rule) => {
|
|
63
|
+
return Boolean(checkZipCode(_rule) && _rule.from && _rule.from.zip);
|
|
64
|
+
});
|
|
65
|
+
if (rule) {
|
|
66
|
+
originZip = rule.from.zip;
|
|
67
|
+
}
|
|
68
|
+
if (!originZip) {
|
|
69
|
+
return {
|
|
70
|
+
error: 'CALCULATE_ERR',
|
|
71
|
+
message: 'Zip code is unset on app hidden data (merchant must configure the app)',
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// calculate weight and pkg value from items list
|
|
77
|
+
let amount = params.subtotal || 0;
|
|
78
|
+
if (params.items) {
|
|
79
|
+
let finalWeight = 0;
|
|
80
|
+
params.items.forEach(({
|
|
81
|
+
price,
|
|
82
|
+
quantity,
|
|
83
|
+
dimensions,
|
|
84
|
+
weight,
|
|
85
|
+
}) => {
|
|
86
|
+
let physicalWeight = 0;
|
|
87
|
+
let cubicWeight = 1;
|
|
88
|
+
if (!params.subtotal) {
|
|
89
|
+
amount += price * quantity;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// sum physical weight
|
|
93
|
+
if (weight && weight.value) {
|
|
94
|
+
switch (weight.unit) {
|
|
95
|
+
case 'kg':
|
|
96
|
+
physicalWeight = weight.value;
|
|
97
|
+
break;
|
|
98
|
+
case 'g':
|
|
99
|
+
physicalWeight = weight.value / 1000;
|
|
100
|
+
break;
|
|
101
|
+
case 'mg':
|
|
102
|
+
physicalWeight = weight.value / 1000000;
|
|
103
|
+
break;
|
|
104
|
+
default:
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
// sum total items dimensions to calculate cubic weight
|
|
109
|
+
if (dimensions) {
|
|
110
|
+
const sumDimensions = {};
|
|
111
|
+
Object.keys(dimensions).forEach((side) => {
|
|
112
|
+
const dimension = dimensions[side];
|
|
113
|
+
if (dimension && dimension.value) {
|
|
114
|
+
let dimensionValue;
|
|
115
|
+
switch (dimension.unit) {
|
|
116
|
+
case 'cm':
|
|
117
|
+
dimensionValue = dimension.value;
|
|
118
|
+
break;
|
|
119
|
+
case 'm':
|
|
120
|
+
dimensionValue = dimension.value * 100;
|
|
121
|
+
break;
|
|
122
|
+
case 'mm':
|
|
123
|
+
dimensionValue = dimension.value / 10;
|
|
124
|
+
break;
|
|
125
|
+
default:
|
|
126
|
+
}
|
|
127
|
+
// add/sum current side to final dimensions object
|
|
128
|
+
if (dimensionValue) {
|
|
129
|
+
sumDimensions[side] = sumDimensions[side]
|
|
130
|
+
? sumDimensions[side] + dimensionValue
|
|
131
|
+
: dimensionValue;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
// calculate cubic weight
|
|
137
|
+
// https://suporte.boxloja.pro/article/82-correios-calculo-frete
|
|
138
|
+
// (C x L x A) / 6.000
|
|
139
|
+
Object.keys(sumDimensions).forEach((side) => {
|
|
140
|
+
if (sumDimensions[side]) {
|
|
141
|
+
cubicWeight *= sumDimensions[side];
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
if (cubicWeight > 0) {
|
|
145
|
+
cubicWeight /= 6000;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
const unitWeight = cubicWeight < 5 || physicalWeight > cubicWeight
|
|
149
|
+
? physicalWeight : cubicWeight;
|
|
150
|
+
finalWeight += (quantity * unitWeight);
|
|
151
|
+
});
|
|
152
|
+
|
|
153
|
+
// start filtering shipping rules
|
|
154
|
+
const validShippingRules = shippingRules.filter((rule) => {
|
|
155
|
+
if (typeof rule === 'object' && rule) {
|
|
156
|
+
return (!params.service_code || params.service_code === rule.service_code)
|
|
157
|
+
&& checkZipCode(rule)
|
|
158
|
+
&& (!rule.min_amount || amount >= rule.min_amount)
|
|
159
|
+
&& (!rule.max_cubic_weight
|
|
160
|
+
|| rule.excedent_weight_cost > 0
|
|
161
|
+
|| finalWeight <= rule.max_cubic_weight);
|
|
162
|
+
}
|
|
163
|
+
return false;
|
|
164
|
+
});
|
|
165
|
+
|
|
166
|
+
if (validShippingRules.length) {
|
|
167
|
+
// group by service code selecting lower price
|
|
168
|
+
const shippingRulesByCode = validShippingRules.reduce((_shippingRulesByCode, rule) => {
|
|
169
|
+
if (typeof rule.total_price !== 'number') {
|
|
170
|
+
rule.total_price = 0;
|
|
171
|
+
}
|
|
172
|
+
if (typeof rule.price !== 'number') {
|
|
173
|
+
rule.price = rule.total_price;
|
|
174
|
+
}
|
|
175
|
+
if (rule.excedent_weight_cost > 0 && finalWeight > rule.max_cubic_weight) {
|
|
176
|
+
rule.total_price += (rule.excedent_weight_cost * (finalWeight - rule.max_cubic_weight));
|
|
177
|
+
}
|
|
178
|
+
if (typeof rule.amount_tax === 'number' && !Number.isNaN(rule.amount_tax)) {
|
|
179
|
+
rule.total_price += ((rule.amount_tax * amount) / 100);
|
|
180
|
+
}
|
|
181
|
+
const serviceCode = rule.service_code;
|
|
182
|
+
const currentShippingRule = _shippingRulesByCode[serviceCode];
|
|
183
|
+
if (!currentShippingRule || currentShippingRule.total_price > rule.total_price) {
|
|
184
|
+
_shippingRulesByCode[serviceCode] = rule;
|
|
185
|
+
}
|
|
186
|
+
return _shippingRulesByCode;
|
|
187
|
+
}, {});
|
|
188
|
+
|
|
189
|
+
// parse final shipping rules object to shipping services array
|
|
190
|
+
Object.keys(shippingRulesByCode).forEach((serviceCode) => {
|
|
191
|
+
const rule = shippingRulesByCode[serviceCode];
|
|
192
|
+
if (rule) {
|
|
193
|
+
let { label } = rule;
|
|
194
|
+
// delete filter properties from rule object
|
|
195
|
+
delete rule.service_code;
|
|
196
|
+
delete rule.zip_range;
|
|
197
|
+
delete rule.min_amount;
|
|
198
|
+
delete rule.max_cubic_weight;
|
|
199
|
+
delete rule.excedent_weight_cost;
|
|
200
|
+
delete rule.amount_tax;
|
|
201
|
+
delete rule.label;
|
|
202
|
+
|
|
203
|
+
// also try to find corresponding service object from config
|
|
204
|
+
let service;
|
|
205
|
+
if (Array.isArray(config.services)) {
|
|
206
|
+
service = config.services.find((_service) => {
|
|
207
|
+
return _service && _service.service_code === serviceCode;
|
|
208
|
+
});
|
|
209
|
+
if (service && !label) {
|
|
210
|
+
label = service.label;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
if (!label) {
|
|
214
|
+
label = serviceCode;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
response.shipping_services.push({
|
|
218
|
+
// label, service_code, carrier (and maybe more) from service object
|
|
219
|
+
...service,
|
|
220
|
+
service_code: serviceCode,
|
|
221
|
+
label,
|
|
222
|
+
shipping_line: {
|
|
223
|
+
from: {
|
|
224
|
+
...rule.from,
|
|
225
|
+
...params.from,
|
|
226
|
+
zip: String((rule.from && rule.from.zip) || originZip).replace(/\D/g, ''),
|
|
227
|
+
},
|
|
228
|
+
to: params.to,
|
|
229
|
+
price: 0,
|
|
230
|
+
total_price: 0,
|
|
231
|
+
// price, total_price (and maybe more) from rule object
|
|
232
|
+
...rule,
|
|
233
|
+
delivery_time: {
|
|
234
|
+
days: 20,
|
|
235
|
+
working_days: true,
|
|
236
|
+
...rule.delivery_time,
|
|
237
|
+
},
|
|
238
|
+
posting_deadline: {
|
|
239
|
+
days: 0,
|
|
240
|
+
...config.posting_deadline,
|
|
241
|
+
...rule.posting_deadline,
|
|
242
|
+
},
|
|
243
|
+
},
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
// expecting to have response with shipping services here
|
|
250
|
+
return response;
|
|
251
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@cloudcommerce/app-custom-shipping",
|
|
3
|
+
"type": "module",
|
|
4
|
+
"version": "0.0.67",
|
|
5
|
+
"description": "E-Com Plus Cloud Commerce app for custom shipping methods",
|
|
6
|
+
"main": "lib/custom-shipping.js",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/ecomplus/cloud-commerce.git",
|
|
10
|
+
"directory": "packages/custom-shipping"
|
|
11
|
+
},
|
|
12
|
+
"author": "E-Com Club Softwares para E-commerce <ti@e-com.club>",
|
|
13
|
+
"license": "Apache 2.0 with Commons Clause",
|
|
14
|
+
"bugs": {
|
|
15
|
+
"url": "https://github.com/ecomplus/cloud-commerce/issues"
|
|
16
|
+
},
|
|
17
|
+
"homepage": "https://github.com/ecomplus/cloud-commerce/tree/main/packages/custom-shipping#readme",
|
|
18
|
+
"scripts": {
|
|
19
|
+
"build": "sh ../../../scripts/build-lib.sh"
|
|
20
|
+
},
|
|
21
|
+
"dependencies": {
|
|
22
|
+
"@cloudcommerce/api": "workspace:*"
|
|
23
|
+
},
|
|
24
|
+
"devDependencies": {
|
|
25
|
+
"@cloudcommerce/types": "workspace:*"
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/* eslint-disable import/prefer-default-export */
|
|
2
|
+
import type { AppModuleBody } from '@cloudcommerce/types';
|
|
3
|
+
import handleCalculateShipping from '../lib-mjs/calculate-custom-shipping.mjs';
|
|
4
|
+
|
|
5
|
+
export const calculateShipping = async (modBody: AppModuleBody) => {
|
|
6
|
+
return handleCalculateShipping(modBody);
|
|
7
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './custom-shipping';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
# `@cloudcommerce/tiny-erp`
|
|
1
|
+
# `@cloudcommerce/app-tiny-erp`
|
|
@@ -69,12 +69,15 @@ export default async (apiDoc, queueEntry, appData, canCreateNew) => {
|
|
|
69
69
|
},
|
|
70
70
|
});
|
|
71
71
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
situacao
|
|
77
|
-
|
|
72
|
+
if (originalTinyOrder) {
|
|
73
|
+
const { id, situacao } = originalTinyOrder;
|
|
74
|
+
logger.info(`${orderId} found with tiny status ${situacao} => ${tinyStatus}`);
|
|
75
|
+
if (tinyStatus && tinyStatus !== situacao) {
|
|
76
|
+
return postTiny('/pedido.alterar.situacao', {
|
|
77
|
+
id,
|
|
78
|
+
situacao: tinyStatus,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
78
81
|
}
|
|
79
82
|
return null;
|
|
80
83
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export-order-to-tiny.js","sourceRoot":"","sources":["../../src/integration/export-order-to-tiny.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,+BAA+B,CAAC;AACnD,OAAO,GAAG,MAAM,oBAAoB,CAAC;AACrC,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AACvC,OAAO,WAAW,MAAM,0BAA0B,CAAC;AACnD,OAAO,UAAU,MAAM,yBAAyB,CAAC;AAEjD,eAAe,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE;IACjE,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC;IAClC,IAAI,KAAa,CAAC;IAClB,IAAI,OAAO,KAAK,MAAM,CAAC,GAAG,EAAE;QAC1B,KAAK,GAAG,MAAM,CAAC;KAChB;SAAM;QACL,IAAI;YACF,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SACnD;QAAC,OAAO,GAAQ,EAAE;YACjB,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE;gBAC1B,MAAM,GAAG,GAAG,YAAY,OAAO,iBAAiB,GAAG,CAAC,UAAU,GAAG,CAAC;gBAClE,MAAM,KAAK,GAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;gBAClC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC3B,OAAO,KAAK,CAAC;aACd;YACD,MAAM,GAAG,CAAC;SACX;KACF;IACD,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE;QAC3B,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,mCAAmC,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC;KACb;IACD,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,oBAAoB,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAE1D,IAAI,QAA2B,CAAC;IAChC,IAAI;QACF,QAAQ,GAAG,MAAM,QAAQ,CAAC,uBAAuB,EAAE;YACjD,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;SACtC,CAAC,CAAC;KACJ;IAAC,OAAO,GAAQ,EAAE;QACjB,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;QACnD,IAAI,MAAM,KAAK,GAAG,EAAE;YAClB,QAAQ,GAAG,EAAE,CAAC;SACf;aAAM;YACL,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,oCAAoC,MAAM,EAAE,CAAC,CAAC;YACpE,MAAM,GAAG,CAAC;SACX;KACF;IAED,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;IAC7B,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,iBAAiB,CAAC;IACtB,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAC1B,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;YAC9C,OAAO,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QACH,IAAI,iBAAiB,EAAE;YACrB,iBAAiB,GAAG,iBAAiB,CAAC,MAAM,CAAC;SAC9C;KACF;IACD,IAAI,CAAC,iBAAiB,EAAE;QACtB,IAAI,CAAC,YAAY,EAAE;YACjB,OAAO,IAAI,CAAC;SACb;QACD,IACE,OAAO,CAAC,oBAAoB;eACzB,CAAC,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,WAAW,CAAC,EAC1D;YACA,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,yBAAyB,UAAU,GAAG,CAAC,CAAC;YAC9D,OAAO,IAAI,CAAC;SACb;QACD,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC7C,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACvD,OAAO,QAAQ,CAAC,qBAAqB,EAAE;YACrC,MAAM,EAAE;gBACN,MAAM,EAAE,SAAS;aAClB;SACF,CAAC,CAAC;KACJ;IAED,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,2BAA2B,UAAU,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"export-order-to-tiny.js","sourceRoot":"","sources":["../../src/integration/export-order-to-tiny.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudcommerce/app-tiny-erp",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.67",
|
|
5
5
|
"description": "E-Com Plus Cloud Commerce app for Tiny ERP",
|
|
6
6
|
"main": "lib/tiny-erp.js",
|
|
7
7
|
"repository": {
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"@ecomplus/utils": "^1.4.1",
|
|
25
25
|
"axios": "^0.27.2",
|
|
26
26
|
"firebase-admin": "^11.0.1",
|
|
27
|
-
"firebase-functions": "^3.
|
|
27
|
+
"firebase-functions": "^3.23.0",
|
|
28
28
|
"form-data": "^4.0.0"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
@@ -75,12 +75,15 @@ export default async (apiDoc, queueEntry, appData, canCreateNew) => {
|
|
|
75
75
|
});
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
situacao
|
|
83
|
-
|
|
78
|
+
if (originalTinyOrder) {
|
|
79
|
+
const { id, situacao } = originalTinyOrder;
|
|
80
|
+
logger.info(`${orderId} found with tiny status ${situacao} => ${tinyStatus}`);
|
|
81
|
+
if (tinyStatus && tinyStatus !== situacao) {
|
|
82
|
+
return postTiny('/pedido.alterar.situacao', {
|
|
83
|
+
id,
|
|
84
|
+
situacao: tinyStatus,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
84
87
|
}
|
|
85
88
|
return null;
|
|
86
89
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Please refer to GitHub [repository releases](https://github.com/ecomplus/cloud-commerce/releases) or monorepo unified [CHANGELOG.md](https://github.com/ecomplus/cloud-commerce/blob/main/CHANGELOG.md).
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# `@cloudcommerce/config`
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
declare type BaseConfig = {
|
|
2
|
+
lang: string;
|
|
3
|
+
currency: string;
|
|
4
|
+
currencySymbol: string;
|
|
5
|
+
countryCode: string;
|
|
6
|
+
storeId: number;
|
|
7
|
+
};
|
|
8
|
+
declare const _default: {
|
|
9
|
+
get(): BaseConfig;
|
|
10
|
+
set(config: any): void;
|
|
11
|
+
};
|
|
12
|
+
export default _default;
|
|
13
|
+
export type { BaseConfig };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import Deepmerge from '@fastify/deepmerge';
|
|
2
|
+
import {
|
|
3
|
+
DEFAULT_LANG, DEFAULT_CURRENCY, DEFAULT_CURRENCY_SYMBOL, DEFAULT_COUNTRY_CODE,
|
|
4
|
+
} from './defaults.js';
|
|
5
|
+
|
|
6
|
+
const _env = (typeof process === 'object' && process?.env) || globalThis;
|
|
7
|
+
const deepmerge = Deepmerge();
|
|
8
|
+
const self = globalThis.__cloudCommerce || {
|
|
9
|
+
config: {
|
|
10
|
+
lang: _env.ECOM_LANG || DEFAULT_LANG,
|
|
11
|
+
currency: _env.ECOM_CURRENCY || DEFAULT_CURRENCY,
|
|
12
|
+
currencySymbol: _env.ECOM_CURRENCY_SYMBOL || DEFAULT_CURRENCY_SYMBOL,
|
|
13
|
+
countryCode: _env.ECOM_COUNTRY_CODE || DEFAULT_COUNTRY_CODE,
|
|
14
|
+
storeId: Number(_env.ECOM_STORE_ID),
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
globalThis.__cloudCommerce = self;
|
|
18
|
+
|
|
19
|
+
export default {
|
|
20
|
+
get() {
|
|
21
|
+
return self.config;
|
|
22
|
+
},
|
|
23
|
+
set(config) {
|
|
24
|
+
self.config = deepmerge(self.config, config);
|
|
25
|
+
if (config.storeId) {
|
|
26
|
+
_env.ECOM_STORE_ID = config.storeId;
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
// # sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAEpB,MAAM,IAAI,GAAwB,CAAC,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,EAAE,GAAG,CAAC,IAAI,UAAU,CAAC;AAC9F,MAAM,SAAS,GAAG,SAAS,EAAE,CAAC;AAU9B,MAAM,IAAI,GAA2B,UAAU,CAAC,eAAe,IAAI;IACjE,MAAM,EAAE;QACN,IAAI,EAAE,IAAI,CAAC,SAAS,IAAI,YAAY;QACpC,QAAQ,EAAE,IAAI,CAAC,aAAa,IAAI,gBAAgB;QAChD,cAAc,EAAE,IAAI,CAAC,oBAAoB,IAAI,uBAAuB;QACpE,WAAW,EAAE,IAAI,CAAC,iBAAiB,IAAI,oBAAoB;QAC3D,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;KACpC;CACF,CAAC;AACF,UAAU,CAAC,eAAe,GAAG,IAAI,CAAC;AAElC,eAAe;IACb,GAAG;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IACD,GAAG,CAAC,MAAM;QACR,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7C,IAAI,MAAM,CAAC,OAAO,EAAE;YAClB,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC;SACrC;IACH,CAAC;CACF,CAAC"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|