@haus-tech/campaign-price-plugin 1.0.2 → 2.0.0

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 CHANGED
@@ -1,3 +1,36 @@
1
+ ## 2.0.1
2
+
3
+ This was a version bump only for campaign-price-plugin to align it with other projects, there were no code changes.
4
+
5
+ # 2.0.0
6
+
7
+ This was a version bump only for campaign-price-plugin to align it with other projects, there were no code changes.
8
+
9
+ ## 1.1.0
10
+
11
+ ### 🚀 Features
12
+
13
+ - optimize price resolution in campaign price plugin ([706bc2e](https://github.com/WeAreHausTech/haus-tech-vendure-plugins/commit/706bc2e))
14
+ - add index file for campaign price plugin ([d0123d7](https://github.com/WeAreHausTech/haus-tech-vendure-plugins/commit/d0123d7))
15
+ - add campaign price plugin for Vendure ([e6579e9](https://github.com/WeAreHausTech/haus-tech-vendure-plugins/commit/e6579e9))
16
+
17
+ ### 🩹 Fixes
18
+
19
+ - handle channel and currencycode in campaign price plugin ([88f4362](https://github.com/WeAreHausTech/haus-tech-vendure-plugins/commit/88f4362))
20
+ - add TODO comment for tax support in campaign price label ([c6a7063](https://github.com/WeAreHausTech/haus-tech-vendure-plugins/commit/c6a7063))
21
+
22
+ ## 1.0.2
23
+
24
+ ### 🚀 Features
25
+
26
+ - optimize price resolution in campaign price plugin ([706bc2e](https://github.com/WeAreHausTech/haus-tech-vendure-plugins/commit/706bc2e))
27
+ - add index file for campaign price plugin ([d0123d7](https://github.com/WeAreHausTech/haus-tech-vendure-plugins/commit/d0123d7))
28
+ - add campaign price plugin for Vendure ([e6579e9](https://github.com/WeAreHausTech/haus-tech-vendure-plugins/commit/e6579e9))
29
+
30
+ ### 🩹 Fixes
31
+
32
+ - add TODO comment for tax support in campaign price label ([c6a7063](https://github.com/WeAreHausTech/haus-tech-vendure-plugins/commit/c6a7063))
33
+
1
34
  ## 1.0.1
2
35
 
3
36
  ### 🚀 Features
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
  name: campaign-price-plugin
3
3
  title: Campaign Price Plugin
4
4
  description: Vendure plugin that adds campaign pricing with an ordinaryPrice field for "was / now" display.
5
- version: 1.0.0
5
+ version: 1.0.2
6
6
  tags: [vendure, plugin, campaign, price, sale]
7
7
  ---
8
8
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haus-tech/campaign-price-plugin",
3
- "version": "1.0.2",
3
+ "version": "2.0.0",
4
4
  "description": "Campaign price plugin",
5
5
  "author": "Haus Tech",
6
6
  "repository": "https://github.com/WeAreHausTech/haus-tech-vendure-plugins",
@@ -15,6 +15,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.CampaignPriceProductResolver = void 0;
16
16
  const graphql_1 = require("@nestjs/graphql");
17
17
  const core_1 = require("@vendure/core");
18
+ const helper_1 = require("../helpers/helper");
18
19
  let CampaignPriceProductResolver = class CampaignPriceProductResolver {
19
20
  productVariantService;
20
21
  constructor(productVariantService) {
@@ -48,7 +49,8 @@ let CampaignPriceProductResolver = class CampaignPriceProductResolver {
48
49
  if (!variant)
49
50
  return 0;
50
51
  const variantPrices = await this.productVariantService.getProductVariantPrices(ctx, variant.id);
51
- return variantPrices?.[0]?.price || 0;
52
+ const activePrice = (0, helper_1.selectActiveVariantPrice)(ctx, variantPrices);
53
+ return activePrice?.price || 0;
52
54
  }));
53
55
  const min = Math.min(...prices);
54
56
  const max = Math.max(...prices);
@@ -1 +1 @@
1
- {"version":3,"file":"campaign-price-product.resolver.js","sourceRoot":"","sources":["../../../../../packages/campaign-price-plugin/src/api/campaign-price-product.resolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6CAAgE;AAChE,wCAAmF;AAI5E,IAAM,4BAA4B,GAAlC,MAAM,4BAA4B;IACnB;IAApB,YAAoB,qBAA4C;QAA5C,0BAAqB,GAArB,qBAAqB,CAAuB;IAAG,CAAC;IAE5D,YAAY,CAAC,GAAY,EAAE,GAAY;QAC7C,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YAC3C,OAAO;gBACL,UAAU,EAAE,aAAa;gBACzB,KAAK,EAAE,CAAC;aACT,CAAA;QACH,CAAC;QAED,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;YAChB,OAAO;gBACL,UAAU,EAAE,aAAa;gBACzB,KAAK,EAAE,GAAG;aACX,CAAA;QACH,CAAC;QAED,OAAO;YACL,UAAU,EAAE,YAAY;YACxB,GAAG;YACH,GAAG;SACJ,CAAA;IACH,CAAC;IAGK,AAAN,KAAK,CAAC,aAAa,CACV,GAAmB,EAChB,OAAgB;QAE1B,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC9D,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAChC,CAAC;QAED,yBAAyB;QACzB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YACrC,IAAI,CAAC,OAAO;gBAAE,OAAO,CAAC,CAAA;YACtB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,uBAAuB,CAC5E,GAAG,EACH,OAAO,CAAC,EAAE,CACX,CAAA;YACD,OAAO,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAA;QACvC,CAAC,CAAC,CACH,CAAA;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAA;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAA;QAE/B,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACpC,CAAC;CACF,CAAA;AAnDY,oEAA4B;AA0BjC;IADL,IAAA,sBAAY,EAAC,eAAe,CAAC;IAE3B,WAAA,IAAA,UAAG,GAAE,CAAA;IACL,WAAA,IAAA,gBAAM,GAAE,CAAA;;qCADG,qBAAc;QACP,cAAO;;iEAsB3B;uCAlDU,4BAA4B;IADxC,IAAA,kBAAQ,EAAC,SAAS,CAAC;qCAEyB,4BAAqB;GADrD,4BAA4B,CAmDxC"}
1
+ {"version":3,"file":"campaign-price-product.resolver.js","sourceRoot":"","sources":["../../../../../packages/campaign-price-plugin/src/api/campaign-price-product.resolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6CAAgE;AAChE,wCAAmF;AAEnF,8CAA4D;AAGrD,IAAM,4BAA4B,GAAlC,MAAM,4BAA4B;IACnB;IAApB,YAAoB,qBAA4C;QAA5C,0BAAqB,GAArB,qBAAqB,CAAuB;IAAG,CAAC;IAE5D,YAAY,CAAC,GAAY,EAAE,GAAY;QAC7C,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YAC3C,OAAO;gBACL,UAAU,EAAE,aAAa;gBACzB,KAAK,EAAE,CAAC;aACT,CAAA;QACH,CAAC;QAED,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;YAChB,OAAO;gBACL,UAAU,EAAE,aAAa;gBACzB,KAAK,EAAE,GAAG;aACX,CAAA;QACH,CAAC;QAED,OAAO;YACL,UAAU,EAAE,YAAY;YACxB,GAAG;YACH,GAAG;SACJ,CAAA;IACH,CAAC;IAGK,AAAN,KAAK,CAAC,aAAa,CACV,GAAmB,EAChB,OAAgB;QAE1B,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC9D,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAChC,CAAC;QAED,yBAAyB;QACzB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YACrC,IAAI,CAAC,OAAO;gBAAE,OAAO,CAAC,CAAA;YACtB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,uBAAuB,CAC5E,GAAG,EACH,OAAO,CAAC,EAAE,CACX,CAAA;YACD,MAAM,WAAW,GAAG,IAAA,iCAAwB,EAAC,GAAG,EAAE,aAAa,CAAC,CAAA;YAChE,OAAO,WAAW,EAAE,KAAK,IAAI,CAAC,CAAA;QAChC,CAAC,CAAC,CACH,CAAA;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAA;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAA;QAE/B,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACpC,CAAC;CACF,CAAA;AApDY,oEAA4B;AA0BjC;IADL,IAAA,sBAAY,EAAC,eAAe,CAAC;IAE3B,WAAA,IAAA,UAAG,GAAE,CAAA;IACL,WAAA,IAAA,gBAAM,GAAE,CAAA;;qCADG,qBAAc;QACP,cAAO;;iEAuB3B;uCAnDU,4BAA4B;IADxC,IAAA,kBAAQ,EAAC,SAAS,CAAC;qCAEyB,4BAAqB;GADrD,4BAA4B,CAoDxC"}
@@ -15,21 +15,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.CampaignPriceVariantResolver = void 0;
16
16
  const graphql_1 = require("@nestjs/graphql");
17
17
  const core_1 = require("@vendure/core");
18
+ const helper_1 = require("../helpers/helper");
18
19
  let CampaignPriceVariantResolver = class CampaignPriceVariantResolver {
19
20
  productVariantService;
20
21
  constructor(productVariantService) {
21
22
  this.productVariantService = productVariantService;
22
23
  }
23
24
  async ordinaryPrice(ctx, productVariant) {
24
- // Prefer using the already-loaded price on the ProductVariant, if available,
25
- // to avoid triggering an extra service call per variant (N+1 pattern).
26
- const directPrice = productVariant.price;
27
- if (typeof directPrice === 'number') {
28
- return directPrice;
29
- }
30
- // TODO: Cache the prices
31
25
  const variantPrices = await this.productVariantService.getProductVariantPrices(ctx, productVariant.id);
32
- return variantPrices[0]?.price || 0;
26
+ const activePrice = (0, helper_1.selectActiveVariantPrice)(ctx, variantPrices);
27
+ return activePrice?.price || 0;
33
28
  }
34
29
  };
35
30
  exports.CampaignPriceVariantResolver = CampaignPriceVariantResolver;
@@ -1 +1 @@
1
- {"version":3,"file":"campaign-price-variant.resolver.js","sourceRoot":"","sources":["../../../../../packages/campaign-price-plugin/src/api/campaign-price-variant.resolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6CAAgE;AAChE,wCAA0F;AAGnF,IAAM,4BAA4B,GAAlC,MAAM,4BAA4B;IACnB;IAApB,YAAoB,qBAA4C;QAA5C,0BAAqB,GAArB,qBAAqB,CAAuB;IAAG,CAAC;IAG9D,AAAN,KAAK,CAAC,aAAa,CACV,GAAmB,EAChB,cAA8B;QAExC,6EAA6E;QAC7E,uEAAuE;QACvE,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAA;QACxC,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACpC,OAAO,WAAW,CAAA;QACpB,CAAC;QAED,yBAAyB;QACzB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,uBAAuB,CAC5E,GAAG,EACH,cAAc,CAAC,EAAE,CAClB,CAAA;QAED,OAAO,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAA;IACrC,CAAC;CACF,CAAA;AAvBY,oEAA4B;AAIjC;IADL,IAAA,sBAAY,GAAE;IAEZ,WAAA,IAAA,UAAG,GAAE,CAAA;IACL,WAAA,IAAA,gBAAM,GAAE,CAAA;;qCADG,qBAAc;QACA,qBAAc;;iEAgBzC;uCAtBU,4BAA4B;IADxC,IAAA,kBAAQ,EAAC,gBAAgB,CAAC;qCAEkB,4BAAqB;GADrD,4BAA4B,CAuBxC"}
1
+ {"version":3,"file":"campaign-price-variant.resolver.js","sourceRoot":"","sources":["../../../../../packages/campaign-price-plugin/src/api/campaign-price-variant.resolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6CAAgE;AAChE,wCAA0F;AAC1F,8CAA4D;AAGrD,IAAM,4BAA4B,GAAlC,MAAM,4BAA4B;IACnB;IAApB,YAAoB,qBAA4C;QAA5C,0BAAqB,GAArB,qBAAqB,CAAuB;IAAG,CAAC;IAG9D,AAAN,KAAK,CAAC,aAAa,CACV,GAAmB,EAChB,cAA8B;QAExC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,uBAAuB,CAC5E,GAAG,EACH,cAAc,CAAC,EAAE,CAClB,CAAA;QACD,MAAM,WAAW,GAAG,IAAA,iCAAwB,EAAC,GAAG,EAAE,aAAa,CAAC,CAAA;QAChE,OAAO,WAAW,EAAE,KAAK,IAAI,CAAC,CAAA;IAChC,CAAC;CACF,CAAA;AAfY,oEAA4B;AAIjC;IADL,IAAA,sBAAY,GAAE;IAEZ,WAAA,IAAA,UAAG,GAAE,CAAA;IACL,WAAA,IAAA,gBAAM,GAAE,CAAA;;qCADG,qBAAc;QACA,qBAAc;;iEAQzC;uCAdU,4BAA4B;IADxC,IAAA,kBAAQ,EAAC,gBAAgB,CAAC;qCAEkB,4BAAqB;GADrD,4BAA4B,CAexC"}
@@ -36,7 +36,7 @@ exports.CampaignPricePlugin = CampaignPricePlugin = __decorate([
36
36
  ui: { component: 'currency-form-input' },
37
37
  label: [
38
38
  { languageCode: core_1.LanguageCode.en, value: 'Campaign Price' },
39
- { languageCode: core_1.LanguageCode.sv, value: 'Kampanjpris (inkl. moms)' }, // TODO: We need to support prices without tax?
39
+ { languageCode: core_1.LanguageCode.sv, value: 'Kampanjpris' },
40
40
  ],
41
41
  });
42
42
  config.catalogOptions.productVariantPriceCalculationStrategy = new campaign_price_strategy_1.CampaignPriceStrategy(config.catalogOptions.productVariantPriceCalculationStrategy);
@@ -1 +1 @@
1
- {"version":3,"file":"campaign-price.plugin.js","sourceRoot":"","sources":["../../../../packages/campaign-price-plugin/src/campaign-price.plugin.ts"],"names":[],"mappings":";;;;;;;;;AAAA,wCAA+E;AAC/E,gFAA0E;AAC1E,yDAAoD;AACpD,2FAAoF;AACpF,2FAAoF;AACpF,yFAAkF;AAgC3E,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;CAAG,CAAA;AAAtB,kDAAmB;8BAAnB,mBAAmB;IA9B/B,IAAA,oBAAa,EAAC;QACb,OAAO,EAAE,CAAC,yBAAkB,CAAC;QAC7B,iBAAiB,EAAE;YACjB,MAAM,EAAE,8BAAa;YACrB,SAAS,EAAE;gBACT,8DAA4B;gBAC5B,8DAA4B;gBAC5B,4DAA2B;aAC5B;SACF;QACD,aAAa,EAAE,CAAC,MAAM,EAAE,EAAE;YACxB,MAAM,CAAC,YAAY,CAAC,mBAAmB,CAAC,IAAI,CAAC;gBAC3C,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,KAAK;gBACX,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,IAAI;gBACZ,EAAE,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE;gBACxC,KAAK,EAAE;oBACL,EAAE,YAAY,EAAE,mBAAY,CAAC,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE;oBAC1D,EAAE,YAAY,EAAE,mBAAY,CAAC,EAAE,EAAE,KAAK,EAAE,0BAA0B,EAAE,EAAE,+CAA+C;iBACtH;aACF,CAAC,CAAA;YAEF,MAAM,CAAC,cAAc,CAAC,sCAAsC,GAAG,IAAI,+CAAqB,CACtF,MAAM,CAAC,cAAc,CAAC,sCAAsC,CAC7D,CAAA;YAED,OAAO,MAAM,CAAA;QACf,CAAC;KACF,CAAC;GACW,mBAAmB,CAAG"}
1
+ {"version":3,"file":"campaign-price.plugin.js","sourceRoot":"","sources":["../../../../packages/campaign-price-plugin/src/campaign-price.plugin.ts"],"names":[],"mappings":";;;;;;;;;AAAA,wCAA+E;AAC/E,gFAA0E;AAC1E,yDAAoD;AACpD,2FAAoF;AACpF,2FAAoF;AACpF,yFAAkF;AAgC3E,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;CAAG,CAAA;AAAtB,kDAAmB;8BAAnB,mBAAmB;IA9B/B,IAAA,oBAAa,EAAC;QACb,OAAO,EAAE,CAAC,yBAAkB,CAAC;QAC7B,iBAAiB,EAAE;YACjB,MAAM,EAAE,8BAAa;YACrB,SAAS,EAAE;gBACT,8DAA4B;gBAC5B,8DAA4B;gBAC5B,4DAA2B;aAC5B;SACF;QACD,aAAa,EAAE,CAAC,MAAM,EAAE,EAAE;YACxB,MAAM,CAAC,YAAY,CAAC,mBAAmB,CAAC,IAAI,CAAC;gBAC3C,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,KAAK;gBACX,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,IAAI;gBACZ,EAAE,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE;gBACxC,KAAK,EAAE;oBACL,EAAE,YAAY,EAAE,mBAAY,CAAC,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE;oBAC1D,EAAE,YAAY,EAAE,mBAAY,CAAC,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE;iBACxD;aACF,CAAC,CAAA;YAEF,MAAM,CAAC,cAAc,CAAC,sCAAsC,GAAG,IAAI,+CAAqB,CACtF,MAAM,CAAC,cAAc,CAAC,sCAAsC,CAC7D,CAAA;YAED,OAAO,MAAM,CAAA;QACf,CAAC;KACF,CAAC;GACW,mBAAmB,CAAG"}
@@ -0,0 +1,3 @@
1
+ import { ElasticsearchOptions } from '@vendure/elasticsearch-plugin/lib';
2
+ export declare const campaignPriceIndexMappingProperties: NonNullable<ElasticsearchOptions['indexMappingProperties']>;
3
+ export declare const campaignPriceCustomProductMappings: NonNullable<ElasticsearchOptions['customProductMappings']>;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.campaignPriceCustomProductMappings = exports.campaignPriceIndexMappingProperties = void 0;
4
+ const helper_1 = require("../helpers/helper");
5
+ exports.campaignPriceIndexMappingProperties = {
6
+ 'product-ordinaryPriceMin': {
7
+ type: 'integer',
8
+ },
9
+ 'product-ordinaryPriceMax': {
10
+ type: 'integer',
11
+ },
12
+ };
13
+ exports.campaignPriceCustomProductMappings = {
14
+ ordinaryPriceMin: {
15
+ graphQlType: 'Int!',
16
+ valueFn: async (_product, productVariants, _languageCode, _injector, ctx) => {
17
+ if (!productVariants?.length) {
18
+ return 0;
19
+ }
20
+ const prices = productVariants.map((variant) => {
21
+ const activePrice = (0, helper_1.selectActiveVariantPrice)(ctx, variant.productVariantPrices ?? []);
22
+ return activePrice?.price || 0;
23
+ });
24
+ return Math.min(...prices);
25
+ },
26
+ },
27
+ ordinaryPriceMax: {
28
+ graphQlType: 'Int!',
29
+ valueFn: async (_product, productVariants, _languageCode, _injector, ctx) => {
30
+ if (!productVariants?.length) {
31
+ return 0;
32
+ }
33
+ const prices = productVariants.map((variant) => {
34
+ const activePrice = (0, helper_1.selectActiveVariantPrice)(ctx, variant.productVariantPrices ?? []);
35
+ return activePrice?.price || 0;
36
+ });
37
+ return Math.max(...prices);
38
+ },
39
+ },
40
+ };
41
+ //# sourceMappingURL=campaign-price-elasticsearch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"campaign-price-elasticsearch.js","sourceRoot":"","sources":["../../../../../packages/campaign-price-plugin/src/elasticsearch/campaign-price-elasticsearch.ts"],"names":[],"mappings":";;;AAEA,8CAA4D;AAE/C,QAAA,mCAAmC,GAE5C;IACF,0BAA0B,EAAE;QAC1B,IAAI,EAAE,SAAS;KAChB;IACD,0BAA0B,EAAE;QAC1B,IAAI,EAAE,SAAS;KAChB;CACF,CAAA;AAEY,QAAA,kCAAkC,GAE3C;IACF,gBAAgB,EAAE;QAChB,WAAW,EAAE,MAAM;QACnB,OAAO,EAAE,KAAK,EACZ,QAAiB,EACjB,eAAiC,EACjC,aAA2B,EAC3B,SAAmB,EACnB,GAAmB,EACnB,EAAE;YACF,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;gBAC7B,OAAO,CAAC,CAAA;YACV,CAAC;YAED,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC7C,MAAM,WAAW,GAAG,IAAA,iCAAwB,EAAC,GAAG,EAAE,OAAO,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAA;gBACrF,OAAO,WAAW,EAAE,KAAK,IAAI,CAAC,CAAA;YAChC,CAAC,CAAC,CAAA;YAEF,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAA;QAC5B,CAAC;KACF;IACD,gBAAgB,EAAE;QAChB,WAAW,EAAE,MAAM;QACnB,OAAO,EAAE,KAAK,EACZ,QAAiB,EACjB,eAAiC,EACjC,aAA2B,EAC3B,SAAmB,EACnB,GAAmB,EACnB,EAAE;YACF,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;gBAC7B,OAAO,CAAC,CAAA;YACV,CAAC;YAED,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC7C,MAAM,WAAW,GAAG,IAAA,iCAAwB,EAAC,GAAG,EAAE,OAAO,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAA;gBACrF,OAAO,WAAW,EAAE,KAAK,IAAI,CAAC,CAAA;YAChC,CAAC,CAAC,CAAA;YAEF,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAA;QAC5B,CAAC;KACF;CACF,CAAA"}
@@ -0,0 +1,2 @@
1
+ import { RequestContext, ProductVariantPrice } from '@vendure/core';
2
+ export declare function selectActiveVariantPrice(ctx: RequestContext, variantPrices: ProductVariantPrice[]): ProductVariantPrice | undefined;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.selectActiveVariantPrice = selectActiveVariantPrice;
4
+ const core_1 = require("@vendure/core");
5
+ function selectActiveVariantPrice(ctx, variantPrices) {
6
+ const { channelId, currencyCode } = ctx;
7
+ return variantPrices.find((price) => (0, core_1.idsAreEqual)(price.channelId, channelId) && price.currencyCode === currencyCode);
8
+ }
9
+ //# sourceMappingURL=helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helper.js","sourceRoot":"","sources":["../../../../../packages/campaign-price-plugin/src/helpers/helper.ts"],"names":[],"mappings":";;AAGA,4DAQC;AAVD,wCAA2C;AAE3C,SAAgB,wBAAwB,CACtC,GAAmB,EACnB,aAAoC;IAEpC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,GAAG,CAAA;IACvC,OAAO,aAAa,CAAC,IAAI,CACvB,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,kBAAW,EAAC,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,KAAK,CAAC,YAAY,KAAK,YAAY,CAC1F,CAAA;AACH,CAAC"}
package/src/index.d.ts CHANGED
@@ -1 +1,2 @@
1
1
  export * from './campaign-price.plugin';
2
+ export * from './elasticsearch/campaign-price-elasticsearch';
package/src/index.js CHANGED
@@ -15,4 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./campaign-price.plugin"), exports);
18
+ __exportStar(require("./elasticsearch/campaign-price-elasticsearch"), exports);
18
19
  //# sourceMappingURL=index.js.map
package/src/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/campaign-price-plugin/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAuC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/campaign-price-plugin/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAuC;AACvC,+EAA4D"}
@@ -11,20 +11,21 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.CampaignPriceStrategy = void 0;
13
13
  const common_1 = require("@nestjs/common");
14
+ const core_1 = require("@vendure/core");
14
15
  let CampaignPriceStrategy = class CampaignPriceStrategy {
15
16
  existingStrategy;
16
17
  constructor(existingStrategy) {
17
18
  this.existingStrategy = existingStrategy;
18
19
  }
19
20
  async calculate(args) {
20
- const { productVariant } = args;
21
- const variantPrices = productVariant.productVariantPrices;
22
- const campaignPrice = variantPrices[0]?.customFields?.campaignPrice;
23
- if (campaignPrice != null && campaignPrice > 0) {
24
- return {
25
- price: campaignPrice,
26
- priceIncludesTax: true,
27
- };
21
+ const { productVariant, ctx } = args;
22
+ const { currencyCode, channelId } = ctx;
23
+ const campaignPriceForChannel = productVariant.productVariantPrices.find((price) => (0, core_1.idsAreEqual)(price.channelId, channelId) && price.currencyCode === currencyCode)?.customFields?.campaignPrice;
24
+ if (campaignPriceForChannel != null && campaignPriceForChannel > 0) {
25
+ return this.existingStrategy.calculate({
26
+ ...args,
27
+ inputPrice: campaignPriceForChannel,
28
+ });
28
29
  }
29
30
  return this.existingStrategy.calculate(args);
30
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"campaign-price.strategy.js","sourceRoot":"","sources":["../../../../../packages/campaign-price-plugin/src/strategy/campaign-price.strategy.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA2C;AAcpC,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IACZ;IAApB,YAAoB,gBAAwD;QAAxD,qBAAgB,GAAhB,gBAAgB,CAAwC;IAAG,CAAC;IAEhF,KAAK,CAAC,SAAS,CAAC,IAAwC;QACtD,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAA;QAE/B,MAAM,aAAa,GAAG,cAAc,CAAC,oBAAoB,CAAA;QACzD,MAAM,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,aAAa,CAAA;QAEnE,IAAI,aAAa,IAAI,IAAI,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;YAC/C,OAAO;gBACL,KAAK,EAAE,aAAa;gBACpB,gBAAgB,EAAE,IAAI;aACvB,CAAA;QACH,CAAC;QAED,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IAC9C,CAAC;CACF,CAAA;AAlBY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,mBAAU,GAAE;;GACA,qBAAqB,CAkBjC"}
1
+ {"version":3,"file":"campaign-price.strategy.js","sourceRoot":"","sources":["../../../../../packages/campaign-price-plugin/src/strategy/campaign-price.strategy.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA2C;AAC3C,wCAKsB;AASf,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IACZ;IAApB,YAAoB,gBAAwD;QAAxD,qBAAgB,GAAhB,gBAAgB,CAAwC;IAAG,CAAC;IAEhF,KAAK,CAAC,SAAS,CAAC,IAAwC;QACtD,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;QACpC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,GAAG,CAAA;QAEvC,MAAM,uBAAuB,GAAG,cAAc,CAAC,oBAAoB,CAAC,IAAI,CACtE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,kBAAW,EAAC,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,KAAK,CAAC,YAAY,KAAK,YAAY,CAC1F,EAAE,YAAY,EAAE,aAAa,CAAA;QAE9B,IAAI,uBAAuB,IAAI,IAAI,IAAI,uBAAuB,GAAG,CAAC,EAAE,CAAC;YACnE,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC;gBACrC,GAAG,IAAI;gBACP,UAAU,EAAE,uBAAuB;aACpC,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IAC9C,CAAC;CACF,CAAA;AApBY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,mBAAU,GAAE;;GACA,qBAAqB,CAoBjC"}