From 0856645a1156a3b4a97f0ef50cf529dab344d993 Mon Sep 17 00:00:00 2001 From: Sebastian Rindom Date: Thu, 27 Aug 2020 18:03:51 +0200 Subject: [PATCH 1/6] fix(medusa): allow multiple fulfillments --- packages/medusa/src/services/order.js | 7 ------- 1 file changed, 7 deletions(-) diff --git a/packages/medusa/src/services/order.js b/packages/medusa/src/services/order.js index 3bb2685d7e..9b4f93fbce 100644 --- a/packages/medusa/src/services/order.js +++ b/packages/medusa/src/services/order.js @@ -657,13 +657,6 @@ class OrderService extends BaseService { }) .filter(i => !!i) - if (order.fulfillment_status !== "not_fulfilled") { - throw new MedusaError( - MedusaError.Types.INVALID_ARGUMENT, - "Order is already fulfilled" - ) - } - const { shipping_methods } = order // prepare update object From 8896e239cb75dc545463e6558b4adc9dcc3907ec Mon Sep 17 00:00:00 2001 From: Sebastian Rindom Date: Thu, 27 Aug 2020 18:04:51 +0200 Subject: [PATCH 2/6] v1.0.0-alpha.27 --- lerna.json | 2 +- packages/medusa-core-utils/package.json | 2 +- packages/medusa-file-spaces/package.json | 6 +++--- packages/medusa-fulfillment-manual/package.json | 4 ++-- packages/medusa-interfaces/package.json | 4 ++-- packages/medusa-payment-adyen/package.json | 4 ++-- packages/medusa-payment-klarna/package.json | 6 +++--- packages/medusa-payment-stripe/package.json | 6 +++--- packages/medusa-plugin-brightpearl/package.json | 6 +++--- packages/medusa-plugin-contentful/package.json | 6 +++--- packages/medusa-plugin-economic/package-lock.json | 2 +- packages/medusa-plugin-economic/package.json | 6 +++--- packages/medusa-plugin-permissions/package.json | 6 +++--- packages/medusa-plugin-segment/package.json | 6 +++--- packages/medusa-plugin-sendgrid/package.json | 6 +++--- .../medusa-plugin-slack-notification/package-lock.json | 2 +- packages/medusa-plugin-slack-notification/package.json | 6 +++--- packages/medusa-plugin-wishlist/package.json | 6 +++--- packages/medusa-test-utils/package.json | 4 ++-- packages/medusa/package.json | 8 ++++---- 20 files changed, 49 insertions(+), 49 deletions(-) diff --git a/lerna.json b/lerna.json index 28a984aaae..f375e22b10 100644 --- a/lerna.json +++ b/lerna.json @@ -4,5 +4,5 @@ "packages/*" ], "registry": "https://registry.npmjs.org/", - "version": "1.0.0-alpha.26" + "version": "1.0.0-alpha.27" } diff --git a/packages/medusa-core-utils/package.json b/packages/medusa-core-utils/package.json index a0b5b339c1..4de95018e2 100644 --- a/packages/medusa-core-utils/package.json +++ b/packages/medusa-core-utils/package.json @@ -1,6 +1,6 @@ { "name": "medusa-core-utils", - "version": "1.0.0-alpha.24", + "version": "1.0.0-alpha.27", "description": "Core utils for Medusa", "main": "dist/index.js", "repository": { diff --git a/packages/medusa-file-spaces/package.json b/packages/medusa-file-spaces/package.json index 6d0c7c6df2..30e4098e25 100644 --- a/packages/medusa-file-spaces/package.json +++ b/packages/medusa-file-spaces/package.json @@ -1,6 +1,6 @@ { "name": "medusa-file-spaces", - "version": "1.0.0-alpha.26", + "version": "1.0.0-alpha.27", "description": "Digital Ocean Spaces file connector for Medusa", "main": "index.js", "repository": { @@ -40,8 +40,8 @@ "aws-sdk": "^2.710.0", "body-parser": "^1.19.0", "express": "^4.17.1", - "medusa-core-utils": "^1.0.0-alpha.24", - "medusa-test-utils": "^1.0.0-alpha.24", + "medusa-core-utils": "^1.0.0-alpha.27", + "medusa-test-utils": "^1.0.0-alpha.27", "stripe": "^8.50.0" }, "gitHead": "3cc7cbe5124cbcbb75f6e1435db4dcfaa2a60408" diff --git a/packages/medusa-fulfillment-manual/package.json b/packages/medusa-fulfillment-manual/package.json index 9ef5389b33..49baaa583e 100644 --- a/packages/medusa-fulfillment-manual/package.json +++ b/packages/medusa-fulfillment-manual/package.json @@ -1,6 +1,6 @@ { "name": "medusa-fulfillment-manual", - "version": "1.0.0-alpha.26", + "version": "1.0.0-alpha.27", "description": "A manual fulfillment provider for Medusa", "main": "index.js", "repository": { @@ -35,7 +35,7 @@ "@babel/plugin-transform-instanceof": "^7.8.3", "@babel/runtime": "^7.7.6", "express": "^4.17.1", - "medusa-core-utils": "^1.0.0-alpha.24" + "medusa-core-utils": "^1.0.0-alpha.27" }, "gitHead": "3cc7cbe5124cbcbb75f6e1435db4dcfaa2a60408" } diff --git a/packages/medusa-interfaces/package.json b/packages/medusa-interfaces/package.json index a75efcd808..686ba4e7a7 100644 --- a/packages/medusa-interfaces/package.json +++ b/packages/medusa-interfaces/package.json @@ -1,6 +1,6 @@ { "name": "medusa-interfaces", - "version": "1.0.0-alpha.24", + "version": "1.0.0-alpha.27", "description": "Core interfaces for Medusa", "main": "dist/index.js", "repository": { @@ -34,7 +34,7 @@ "mongoose": "5.x" }, "dependencies": { - "medusa-core-utils": "^1.0.0-alpha.24" + "medusa-core-utils": "^1.0.0-alpha.27" }, "gitHead": "3cc7cbe5124cbcbb75f6e1435db4dcfaa2a60408" } diff --git a/packages/medusa-payment-adyen/package.json b/packages/medusa-payment-adyen/package.json index c136cadcfe..ccbefbc53a 100644 --- a/packages/medusa-payment-adyen/package.json +++ b/packages/medusa-payment-adyen/package.json @@ -1,6 +1,6 @@ { "name": "medusa-payment-adyen", - "version": "1.0.0-alpha.26", + "version": "1.0.0-alpha.27", "description": "Adyen Payment provider for Medusa Commerce", "main": "index.js", "repository": { @@ -42,7 +42,7 @@ "body-parser": "^1.19.0", "cors": "^2.8.5", "express": "^4.17.1", - "medusa-core-utils": "^1.0.0-alpha.24" + "medusa-core-utils": "^1.0.0-alpha.27" }, "gitHead": "3cc7cbe5124cbcbb75f6e1435db4dcfaa2a60408" } diff --git a/packages/medusa-payment-klarna/package.json b/packages/medusa-payment-klarna/package.json index 4ccc0af110..df6017c2f9 100644 --- a/packages/medusa-payment-klarna/package.json +++ b/packages/medusa-payment-klarna/package.json @@ -1,6 +1,6 @@ { "name": "medusa-payment-klarna", - "version": "1.0.0-alpha.26", + "version": "1.0.0-alpha.27", "description": "Klarna Payment provider for Medusa Commerce", "main": "index.js", "repository": { @@ -39,8 +39,8 @@ "axios": "^0.19.2", "body-parser": "^1.19.0", "express": "^4.17.1", - "medusa-core-utils": "^1.0.0-alpha.24", - "medusa-test-utils": "^1.0.0-alpha.24" + "medusa-core-utils": "^1.0.0-alpha.27", + "medusa-test-utils": "^1.0.0-alpha.27" }, "gitHead": "3cc7cbe5124cbcbb75f6e1435db4dcfaa2a60408" } diff --git a/packages/medusa-payment-stripe/package.json b/packages/medusa-payment-stripe/package.json index 9bb77e8c96..a6a08ef24a 100644 --- a/packages/medusa-payment-stripe/package.json +++ b/packages/medusa-payment-stripe/package.json @@ -1,6 +1,6 @@ { "name": "medusa-payment-stripe", - "version": "1.0.0-alpha.25", + "version": "1.0.0-alpha.27", "description": "Stripe Payment provider for Meduas Commerce", "main": "index.js", "repository": { @@ -39,8 +39,8 @@ "@babel/plugin-transform-classes": "^7.9.5", "body-parser": "^1.19.0", "express": "^4.17.1", - "medusa-core-utils": "^1.0.0-alpha.24", - "medusa-test-utils": "^1.0.0-alpha.24", + "medusa-core-utils": "^1.0.0-alpha.27", + "medusa-test-utils": "^1.0.0-alpha.27", "stripe": "^8.50.0" }, "gitHead": "3cc7cbe5124cbcbb75f6e1435db4dcfaa2a60408" diff --git a/packages/medusa-plugin-brightpearl/package.json b/packages/medusa-plugin-brightpearl/package.json index ec040114a1..44a979c2ce 100644 --- a/packages/medusa-plugin-brightpearl/package.json +++ b/packages/medusa-plugin-brightpearl/package.json @@ -1,6 +1,6 @@ { "name": "medusa-plugin-brightpearl", - "version": "1.0.0-alpha.25", + "version": "1.0.0-alpha.27", "description": "Brightpearl plugin for Medusa Commerce", "main": "index.js", "repository": { @@ -25,7 +25,7 @@ "cross-env": "^5.2.1", "eslint": "^6.8.0", "jest": "^25.5.2", - "medusa-test-utils": "^1.0.0-alpha.24", + "medusa-test-utils": "^1.0.0-alpha.27", "prettier": "^2.0.5" }, "scripts": { @@ -41,7 +41,7 @@ "axios": "^0.19.2", "axios-rate-limit": "^1.2.1", "express": "^4.17.1", - "medusa-core-utils": "^1.0.0-alpha.24", + "medusa-core-utils": "^1.0.0-alpha.27", "randomatic": "^3.1.1" }, "gitHead": "3cc7cbe5124cbcbb75f6e1435db4dcfaa2a60408" diff --git a/packages/medusa-plugin-contentful/package.json b/packages/medusa-plugin-contentful/package.json index 3c243f2648..daad344882 100644 --- a/packages/medusa-plugin-contentful/package.json +++ b/packages/medusa-plugin-contentful/package.json @@ -1,6 +1,6 @@ { "name": "medusa-plugin-contentful", - "version": "1.0.0-alpha.26", + "version": "1.0.0-alpha.27", "description": "Contentful plugin for Medusa Commerce", "main": "index.js", "repository": { @@ -39,8 +39,8 @@ "body-parser": "^1.19.0", "contentful-management": "^5.27.1", "express": "^4.17.1", - "medusa-core-utils": "^1.0.0-alpha.24", - "medusa-test-utils": "^1.0.0-alpha.24", + "medusa-core-utils": "^1.0.0-alpha.27", + "medusa-test-utils": "^1.0.0-alpha.27", "redis": "^3.0.2" }, "gitHead": "3cc7cbe5124cbcbb75f6e1435db4dcfaa2a60408" diff --git a/packages/medusa-plugin-economic/package-lock.json b/packages/medusa-plugin-economic/package-lock.json index ffba3a144d..20d2e987a1 100644 --- a/packages/medusa-plugin-economic/package-lock.json +++ b/packages/medusa-plugin-economic/package-lock.json @@ -1,6 +1,6 @@ { "name": "medusa-plugin-economic", - "version": "1.0.0-alpha.26", + "version": "1.0.0-alpha.27", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/medusa-plugin-economic/package.json b/packages/medusa-plugin-economic/package.json index 85a4a53333..f726ceee0c 100644 --- a/packages/medusa-plugin-economic/package.json +++ b/packages/medusa-plugin-economic/package.json @@ -1,6 +1,6 @@ { "name": "medusa-plugin-economic", - "version": "1.0.0-alpha.26", + "version": "1.0.0-alpha.27", "description": "E-conomic financial reporting", "main": "index.js", "repository": { @@ -39,8 +39,8 @@ "axios": "^0.19.2", "body-parser": "^1.19.0", "express": "^4.17.1", - "medusa-core-utils": "^1.0.0-alpha.24", - "medusa-test-utils": "^1.0.0-alpha.24", + "medusa-core-utils": "^1.0.0-alpha.27", + "medusa-test-utils": "^1.0.0-alpha.27", "moment": "^2.27.0" }, "gitHead": "3cc7cbe5124cbcbb75f6e1435db4dcfaa2a60408" diff --git a/packages/medusa-plugin-permissions/package.json b/packages/medusa-plugin-permissions/package.json index 8ac0089a0e..69de6e0f6d 100644 --- a/packages/medusa-plugin-permissions/package.json +++ b/packages/medusa-plugin-permissions/package.json @@ -1,6 +1,6 @@ { "name": "medusa-plugin-permissions", - "version": "1.0.0-alpha.26", + "version": "1.0.0-alpha.27", "description": "Role permission for Medusa core", "main": "dist/index.js", "repository": { @@ -32,8 +32,8 @@ "medusa-interfaces": "1.x" }, "dependencies": { - "medusa-core-utils": "^1.0.0-alpha.24", - "medusa-test-utils": "^1.0.0-alpha.24", + "medusa-core-utils": "^1.0.0-alpha.27", + "medusa-test-utils": "^1.0.0-alpha.27", "mongoose": "^5.8.0" }, "gitHead": "3cc7cbe5124cbcbb75f6e1435db4dcfaa2a60408" diff --git a/packages/medusa-plugin-segment/package.json b/packages/medusa-plugin-segment/package.json index 6e37af1b40..f18ae8c58a 100644 --- a/packages/medusa-plugin-segment/package.json +++ b/packages/medusa-plugin-segment/package.json @@ -1,6 +1,6 @@ { "name": "medusa-plugin-segment", - "version": "1.0.0-alpha.26", + "version": "1.0.0-alpha.27", "description": "Segment Analytics", "main": "index.js", "repository": { @@ -39,8 +39,8 @@ "axios": "^0.19.2", "body-parser": "^1.19.0", "express": "^4.17.1", - "medusa-core-utils": "^1.0.0-alpha.24", - "medusa-test-utils": "^1.0.0-alpha.24" + "medusa-core-utils": "^1.0.0-alpha.27", + "medusa-test-utils": "^1.0.0-alpha.27" }, "gitHead": "3cc7cbe5124cbcbb75f6e1435db4dcfaa2a60408" } diff --git a/packages/medusa-plugin-sendgrid/package.json b/packages/medusa-plugin-sendgrid/package.json index 0baa3e2929..921743b461 100644 --- a/packages/medusa-plugin-sendgrid/package.json +++ b/packages/medusa-plugin-sendgrid/package.json @@ -1,6 +1,6 @@ { "name": "medusa-plugin-sendgrid", - "version": "1.0.0-alpha.25", + "version": "1.0.0-alpha.27", "description": "SendGrid transactional emails", "main": "index.js", "repository": { @@ -39,8 +39,8 @@ "@sendgrid/mail": "^7.1.1", "body-parser": "^1.19.0", "express": "^4.17.1", - "medusa-core-utils": "^1.0.0-alpha.24", - "medusa-test-utils": "^1.0.0-alpha.24" + "medusa-core-utils": "^1.0.0-alpha.27", + "medusa-test-utils": "^1.0.0-alpha.27" }, "gitHead": "3cc7cbe5124cbcbb75f6e1435db4dcfaa2a60408" } diff --git a/packages/medusa-plugin-slack-notification/package-lock.json b/packages/medusa-plugin-slack-notification/package-lock.json index ffba3a144d..20d2e987a1 100644 --- a/packages/medusa-plugin-slack-notification/package-lock.json +++ b/packages/medusa-plugin-slack-notification/package-lock.json @@ -1,6 +1,6 @@ { "name": "medusa-plugin-economic", - "version": "1.0.0-alpha.26", + "version": "1.0.0-alpha.27", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/medusa-plugin-slack-notification/package.json b/packages/medusa-plugin-slack-notification/package.json index e56478156e..065469f8b4 100644 --- a/packages/medusa-plugin-slack-notification/package.json +++ b/packages/medusa-plugin-slack-notification/package.json @@ -1,6 +1,6 @@ { "name": "medusa-plugin-slack-notification", - "version": "1.0.0-alpha.26", + "version": "1.0.0-alpha.27", "description": "Slack notifications", "main": "index.js", "repository": { @@ -39,8 +39,8 @@ "axios": "^0.19.2", "body-parser": "^1.19.0", "express": "^4.17.1", - "medusa-core-utils": "^1.0.0-alpha.24", - "medusa-test-utils": "^1.0.0-alpha.24", + "medusa-core-utils": "^1.0.0-alpha.27", + "medusa-test-utils": "^1.0.0-alpha.27", "moment": "^2.27.0" }, "gitHead": "3cc7cbe5124cbcbb75f6e1435db4dcfaa2a60408" diff --git a/packages/medusa-plugin-wishlist/package.json b/packages/medusa-plugin-wishlist/package.json index d9f34c4e91..7c15fff0f6 100644 --- a/packages/medusa-plugin-wishlist/package.json +++ b/packages/medusa-plugin-wishlist/package.json @@ -1,6 +1,6 @@ { "name": "medusa-plugin-wishlist", - "version": "1.0.0-alpha.26", + "version": "1.0.0-alpha.27", "description": "Provides /customers/:id/wishlist to add items to a customr's wishlist", "main": "index.js", "repository": { @@ -37,8 +37,8 @@ "dependencies": { "body-parser": "^1.19.0", "express": "^4.17.1", - "medusa-core-utils": "^1.0.0-alpha.24", - "medusa-test-utils": "^1.0.0-alpha.24" + "medusa-core-utils": "^1.0.0-alpha.27", + "medusa-test-utils": "^1.0.0-alpha.27" }, "gitHead": "3cc7cbe5124cbcbb75f6e1435db4dcfaa2a60408" } diff --git a/packages/medusa-test-utils/package.json b/packages/medusa-test-utils/package.json index 1ed08a0901..6f0371e2f6 100644 --- a/packages/medusa-test-utils/package.json +++ b/packages/medusa-test-utils/package.json @@ -1,6 +1,6 @@ { "name": "medusa-test-utils", - "version": "1.0.0-alpha.24", + "version": "1.0.0-alpha.27", "description": "Test utils for Medusa", "main": "dist/index.js", "repository": { @@ -28,7 +28,7 @@ }, "dependencies": { "@babel/plugin-transform-classes": "^7.9.5", - "medusa-core-utils": "^1.0.0-alpha.24", + "medusa-core-utils": "^1.0.0-alpha.27", "mongoose": "^5.8.0" }, "gitHead": "3cc7cbe5124cbcbb75f6e1435db4dcfaa2a60408" diff --git a/packages/medusa/package.json b/packages/medusa/package.json index 72784184b8..9260748af1 100644 --- a/packages/medusa/package.json +++ b/packages/medusa/package.json @@ -1,6 +1,6 @@ { "name": "@medusajs/medusa", - "version": "1.0.0-alpha.24", + "version": "1.0.0-alpha.27", "description": "E-commerce for JAMstack", "main": "dist/app.js", "repository": { @@ -61,8 +61,8 @@ "glob": "^7.1.6", "joi-objectid": "^3.0.1", "jsonwebtoken": "^8.5.1", - "medusa-core-utils": "^1.0.0-alpha.24", - "medusa-test-utils": "^1.0.0-alpha.24", + "medusa-core-utils": "^1.0.0-alpha.27", + "medusa-test-utils": "^1.0.0-alpha.27", "morgan": "^1.9.1", "multer": "^1.4.2", "passport": "^0.4.0", @@ -75,4 +75,4 @@ "winston": "^3.2.1" }, "gitHead": "27d4e07c5251e43ba6be2d5fa35f1d5287b11043" -} \ No newline at end of file +} From 902502092f596cd72b946e8ae8b7aea57d0bdfe4 Mon Sep 17 00:00:00 2001 From: Sebastian Rindom Date: Thu, 27 Aug 2020 19:10:36 +0200 Subject: [PATCH 3/6] fix(medusa-plugin-brightpearl): allow status updates --- packages/medusa-plugin-brightpearl/src/services/brightpearl.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/medusa-plugin-brightpearl/src/services/brightpearl.js b/packages/medusa-plugin-brightpearl/src/services/brightpearl.js index 95cee6bc2e..0c0f794a4f 100644 --- a/packages/medusa-plugin-brightpearl/src/services/brightpearl.js +++ b/packages/medusa-plugin-brightpearl/src/services/brightpearl.js @@ -393,6 +393,7 @@ class BrightpearlService extends BaseService { externalRef: fromOrder._id, channelId: this.options.channel_id || `1`, installedIntegrationInstanceId: authData.installation_instance_id, + statusId: this.options.default_status_id || `3`, customer: { id: customer.contactId, address: { From 70e8fcde41ad909417210496f3cccd8c13cdf450 Mon Sep 17 00:00:00 2001 From: Sebastian Rindom Date: Thu, 27 Aug 2020 19:11:05 +0200 Subject: [PATCH 4/6] v1.0.0-alpha.28 --- lerna.json | 2 +- packages/medusa-plugin-brightpearl/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lerna.json b/lerna.json index f375e22b10..d805371862 100644 --- a/lerna.json +++ b/lerna.json @@ -4,5 +4,5 @@ "packages/*" ], "registry": "https://registry.npmjs.org/", - "version": "1.0.0-alpha.27" + "version": "1.0.0-alpha.28" } diff --git a/packages/medusa-plugin-brightpearl/package.json b/packages/medusa-plugin-brightpearl/package.json index 44a979c2ce..d86b84b352 100644 --- a/packages/medusa-plugin-brightpearl/package.json +++ b/packages/medusa-plugin-brightpearl/package.json @@ -1,6 +1,6 @@ { "name": "medusa-plugin-brightpearl", - "version": "1.0.0-alpha.27", + "version": "1.0.0-alpha.28", "description": "Brightpearl plugin for Medusa Commerce", "main": "index.js", "repository": { From e25478034b82520f8de797edaba8adbf1c7d03b3 Mon Sep 17 00:00:00 2001 From: Sebastian Rindom Date: Fri, 28 Aug 2020 11:19:20 +0200 Subject: [PATCH 5/6] fix(medusa-plugin-brightpearl): more gentle inventory syncs --- .../loaders/inventory.js | 23 +++---- .../src/services/brightpearl.js | 62 +++++++++++++------ .../src/utils/brightpearl.js | 12 ++++ .../utils/brightpearl.js | 27 +++++--- 4 files changed, 86 insertions(+), 38 deletions(-) diff --git a/packages/medusa-plugin-brightpearl/loaders/inventory.js b/packages/medusa-plugin-brightpearl/loaders/inventory.js index edbcb5c6bb..e4d5ce58ba 100644 --- a/packages/medusa-plugin-brightpearl/loaders/inventory.js +++ b/packages/medusa-plugin-brightpearl/loaders/inventory.js @@ -18,38 +18,39 @@ var inventorySync = /*#__PURE__*/function () { case 0: brightpearlService = container.resolve("brightpearlService"); eventBus = container.resolve("eventBusService"); - _context.prev = 2; - _context.next = 5; + console.log("hi inventory"); + _context.prev = 3; + _context.next = 6; return brightpearlService.getClient(); - case 5: + case 6: client = _context.sent; pattern = "43 4,10,14,20 * * *"; // nice for tests "*/10 * * * * *" eventBus.createCronJob("inventory-sync", {}, pattern, brightpearlService.syncInventory()); - _context.next = 15; + _context.next = 16; break; - case 10: - _context.prev = 10; - _context.t0 = _context["catch"](2); + case 11: + _context.prev = 11; + _context.t0 = _context["catch"](3); if (!(_context.t0.name === "not_allowed")) { - _context.next = 14; + _context.next = 15; break; } return _context.abrupt("return"); - case 14: + case 15: throw _context.t0; - case 15: + case 16: case "end": return _context.stop(); } } - }, _callee, null, [[2, 10]]); + }, _callee, null, [[3, 11]]); })); return function inventorySync(_x) { diff --git a/packages/medusa-plugin-brightpearl/src/services/brightpearl.js b/packages/medusa-plugin-brightpearl/src/services/brightpearl.js index 0c0f794a4f..2e873eb46e 100644 --- a/packages/medusa-plugin-brightpearl/src/services/brightpearl.js +++ b/packages/medusa-plugin-brightpearl/src/services/brightpearl.js @@ -125,27 +125,51 @@ class BrightpearlService extends BaseService { async syncInventory() { const client = await this.getClient() const variants = await this.productVariantService_.list() - return Promise.all( - variants.map(async (v) => { - const brightpearlProduct = await this.retrieveProductBySKU(v.sku) - if (!brightpearlProduct) { - return - } - const { productId } = brightpearlProduct - const availability = await client.products.retrieveAvailability( - productId - ) - const onHand = availability[productId].total.onHand + let search = true + let bpProducts = [] + while (search) { + const { products, metadata } = await client.products.search(search) + bpProducts = [...bpProducts, ...products] + if (metadata.morePagesAvailable) { + search = `firstResult=${metadata.lastResult + 1}` + } else { + search = false + } + } - // Only update if the inventory levels have changed - if (parseInt(v.inventory_quantity) !== parseInt(onHand)) { - return this.productVariantService_.update(v._id, { - inventory_quantity: onHand, - }) - } - }) - ) + if (bpProducts.length) { + const productRange = `${bpProducts[0].productId}-${ + bpProducts[bpProducts.length - 1].productId + }` + + const availabilities = await client.products.retrieveAvailability( + productRange + ) + return Promise.all( + variants.map(async (v) => { + const brightpearlProduct = bpProducts.find( + (prod) => prod.SKU === v.sku + ) + if (!brightpearlProduct) { + return + } + + const { productId } = brightpearlProduct + const availability = availabilities[productId] + if (availability) { + const onHand = availability.total.onHand + + // Only update if the inventory levels have changed + if (parseInt(v.inventory_quantity) !== parseInt(onHand)) { + return this.productVariantService_.update(v._id, { + inventory_quantity: onHand, + }) + } + } + }) + ) + } } async updateInventory(productId) { diff --git a/packages/medusa-plugin-brightpearl/src/utils/brightpearl.js b/packages/medusa-plugin-brightpearl/src/utils/brightpearl.js index 1e7a26146f..136f5db885 100644 --- a/packages/medusa-plugin-brightpearl/src/utils/brightpearl.js +++ b/packages/medusa-plugin-brightpearl/src/utils/brightpearl.js @@ -289,6 +289,18 @@ class BrightpearlClient { }) .then(({ data }) => data.response && data.response[0]) }, + search: (search) => { + return this.client_ + .request({ + url: `/product-service/product-search?${search}`, + }) + .then(({ data }) => { + return { + products: this.buildSearchResults_(data.response), + metadata: data.response.metaData, + } + }) + }, retrieveBySKU: (sku) => { return this.client_ .request({ diff --git a/packages/medusa-plugin-brightpearl/utils/brightpearl.js b/packages/medusa-plugin-brightpearl/utils/brightpearl.js index 9b594c365b..ded96e3cfb 100644 --- a/packages/medusa-plugin-brightpearl/utils/brightpearl.js +++ b/packages/medusa-plugin-brightpearl/utils/brightpearl.js @@ -254,11 +254,22 @@ var BrightpearlClient = /*#__PURE__*/function () { return data.response && data.response[0]; }); }, + search: function search(_search) { + return _this.client_.request({ + url: "/product-service/product-search?".concat(_search) + }).then(function (_ref15) { + var data = _ref15.data; + return { + products: _this.buildSearchResults_(data.response), + metadata: data.response.metaData + }; + }); + }, retrieveBySKU: function retrieveBySKU(sku) { return _this.client_.request({ url: "/product-service/product-search?SKU=".concat(sku) - }).then(function (_ref15) { - var data = _ref15.data; + }).then(function (_ref16) { + var data = _ref16.data; return _this.buildSearchResults_(data.response); }); } @@ -270,8 +281,8 @@ var BrightpearlClient = /*#__PURE__*/function () { retrieveByEmail: function retrieveByEmail(email) { return _this.client_.request({ url: "/contact-service/contact-search?primaryEmail=".concat(email) - }).then(function (_ref16) { - var data = _ref16.data; + }).then(function (_ref17) { + var data = _ref17.data; return _this.buildSearchResults_(data.response); }); }, @@ -280,8 +291,8 @@ var BrightpearlClient = /*#__PURE__*/function () { url: "/contact-service/contact", method: "POST", data: customerData - }).then(function (_ref17) { - var data = _ref17.data; + }).then(function (_ref18) { + var data = _ref18.data; return data.response; }); } @@ -337,7 +348,7 @@ var BrightpearlClient = /*#__PURE__*/function () { return request; }); this.client_.interceptors.response.use(undefined, /*#__PURE__*/function () { - var _ref18 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(error) { + var _ref19 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(error) { var response; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { @@ -388,7 +399,7 @@ var BrightpearlClient = /*#__PURE__*/function () { })); return function (_x) { - return _ref18.apply(this, arguments); + return _ref19.apply(this, arguments); }; }()); } From 7918c03752d698c7315252b02874bd10777c7a67 Mon Sep 17 00:00:00 2001 From: Sebastian Rindom Date: Fri, 28 Aug 2020 11:19:45 +0200 Subject: [PATCH 6/6] v1.0.0-alpha.29 --- lerna.json | 2 +- packages/medusa-plugin-brightpearl/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lerna.json b/lerna.json index d805371862..b0aa42d418 100644 --- a/lerna.json +++ b/lerna.json @@ -4,5 +4,5 @@ "packages/*" ], "registry": "https://registry.npmjs.org/", - "version": "1.0.0-alpha.28" + "version": "1.0.0-alpha.29" } diff --git a/packages/medusa-plugin-brightpearl/package.json b/packages/medusa-plugin-brightpearl/package.json index d86b84b352..dce2829ac8 100644 --- a/packages/medusa-plugin-brightpearl/package.json +++ b/packages/medusa-plugin-brightpearl/package.json @@ -1,6 +1,6 @@ { "name": "medusa-plugin-brightpearl", - "version": "1.0.0-alpha.28", + "version": "1.0.0-alpha.29", "description": "Brightpearl plugin for Medusa Commerce", "main": "index.js", "repository": {