@colijnit/product 257.1.9 → 257.1.10

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.
@@ -6,11 +6,13 @@ import { ProductEventService } from '../../service/product-event.service';
6
6
  import { ArticleFullObject } from '@colijnit/articleapi/build/model/article-full-object';
7
7
  import { ProductSettingsService } from '../../service/product-settings.service';
8
8
  import { ExternalSource } from '@colijnit/articleapi/build/model/external-source.bo';
9
+ import { ProductConnectorAdapterService } from '../../service/product-connector-adapter.service';
9
10
  export declare class ProductAddtocartComponent implements OnInit, OnDestroy {
10
11
  iconCache: IconCacheService;
11
12
  private _ioneControllerService;
12
13
  private _appEventService;
13
14
  private _settingsService;
15
+ private _productConnectorAdapterService;
14
16
  readonly icon: typeof IconEnum;
15
17
  addToCartButton: ElementRef;
16
18
  article: ArticleFullObject;
@@ -29,10 +31,11 @@ export declare class ProductAddtocartComponent implements OnInit, OnDestroy {
29
31
  showRelatedPopup: EventEmitter<boolean>;
30
32
  showQuoteButton: boolean;
31
33
  private _quantity;
32
- constructor(iconCache: IconCacheService, _ioneControllerService: ProductConnectorService, _appEventService: ProductEventService, _settingsService: ProductSettingsService);
34
+ constructor(iconCache: IconCacheService, _ioneControllerService: ProductConnectorService, _appEventService: ProductEventService, _settingsService: ProductSettingsService, _productConnectorAdapterService: ProductConnectorAdapterService);
33
35
  ngOnInit(): void;
34
36
  ngOnDestroy(): void;
35
37
  handleAddToCartClick(quantity: number): Promise<void>;
36
38
  handleAddToQuoteClick(quantity: number): Promise<void>;
37
39
  private _getJSONFromArticleObject;
40
+ private _getGeneratedArtDirectly;
38
41
  }
@@ -29,6 +29,7 @@ export declare class ProductConnectorAdapterService implements OnDestroy {
29
29
  getDeliveryDate2(goodId: number): Promise<DeliveryPrognosis>;
30
30
  getJsonConfiguredArticles(configuratorStatistics?: ConfiguratorStatisticsEnvironment): Promise<string>;
31
31
  getJsonArticleFlatTree(goodId: number, goodType: string, quantity: number, externalSource?: boolean, showLoader?: boolean, instanceId?: any, configuratorStatistics?: ConfiguratorStatisticsEnvironment): Promise<string>;
32
+ getGeneratedArtDirectly(goodId: number, showLoader: boolean): Promise<number>;
32
33
  getGoodIdFromArticleNr(sku: string): Promise<number>;
33
34
  getArticleFullObject(goodId: number, showLoader?: boolean): Promise<ArticleFullObject>;
34
35
  getSuperArticle(id: string, branch?: string): Promise<SuperArticle>;
@@ -33,6 +33,7 @@ export declare class ProductConnectorService implements OnDestroy {
33
33
  getDeliveryDate2(goodId: number): Promise<DeliveryPrognosis>;
34
34
  getSuperArticle(id: string): Promise<SuperArticle>;
35
35
  getJsonArticleFlatTree(goodId: number, goodType: string, quantity: number, externalSource?: boolean, showLoader?: boolean, configuratorStatistics?: ConfiguratorStatisticsEnvironment): Promise<string>;
36
+ getGeneratedArtDirectly(goodId: number, showLoader?: boolean): Promise<number>;
36
37
  addWebSessionTransactionLine(transactionUuid: string, sku: string, quantity: number): Promise<string>;
37
38
  onShowLoaderChange(showLoader: boolean): void;
38
39
  }
@@ -31,8 +31,8 @@
31
31
  function Version() {
32
32
  this.name = "@colijnit/product";
33
33
  this.description = "Product detail page project for iOne";
34
- this.symVer = "257.1.9";
35
- this.publishDate = "16-6-2025 08:46:40";
34
+ this.symVer = "257.1.10";
35
+ this.publishDate = "20-6-2025 15:30:05";
36
36
  }
37
37
  return Version;
38
38
  }());
@@ -748,6 +748,17 @@
748
748
  });
749
749
  });
750
750
  };
751
+ ProductConnectorAdapterService.prototype.getGeneratedArtDirectly = function (goodId, showLoader) {
752
+ return __awaiter(this, void 0, void 0, function () {
753
+ var _this = this;
754
+ return __generator(this, function (_a) {
755
+ return [2 /*return*/, this.articleConnector.getGeneratedArtDirectly(goodId, showLoader).catch(function (messages) {
756
+ _this._eventService.errorMessage.next(messages);
757
+ return null;
758
+ })];
759
+ });
760
+ });
761
+ };
751
762
  ProductConnectorAdapterService.prototype.getGoodIdFromArticleNr = function (sku) {
752
763
  return __awaiter(this, void 0, void 0, function () {
753
764
  var response;
@@ -1302,6 +1313,10 @@
1302
1313
  if (showLoader === void 0) { showLoader = true; }
1303
1314
  return this._adapterService.getJsonArticleFlatTree(goodId, goodType, quantity, externalSource, showLoader, this._instanceId, configuratorStatistics);
1304
1315
  };
1316
+ ProductConnectorService.prototype.getGeneratedArtDirectly = function (goodId, showLoader) {
1317
+ if (showLoader === void 0) { showLoader = true; }
1318
+ return this._adapterService.getGeneratedArtDirectly(goodId, showLoader);
1319
+ };
1305
1320
  ProductConnectorService.prototype.addWebSessionTransactionLine = function (transactionUuid, sku, quantity) {
1306
1321
  return __awaiter(this, void 0, void 0, function () {
1307
1322
  return __generator(this, function (_a) {
@@ -1710,7 +1725,7 @@
1710
1725
  this._ione.getFullArticle(this._sku).then(function (article) {
1711
1726
  _this.article = article;
1712
1727
  if (_this.article) {
1713
- _this.configurable = _this.article.goodType === 'B';
1728
+ _this.configurable = !(_this.article.goodType === 'B' && !_this.article.isConfigurable);
1714
1729
  if (_this.configurable) {
1715
1730
  _this.showAddToCart = false;
1716
1731
  _this.currentView = SelectorType.TwoD;
@@ -1748,7 +1763,7 @@
1748
1763
  ProductPageComponent.decorators = [
1749
1764
  { type: i0.Component, args: [{
1750
1765
  selector: 'app-product-page',
1751
- template: "<ng-container *ngIf=\"settingsLoaded\">\r\n <div class=\"page-wrapper\">\r\n <div class=\"page-wrapper-content\">\r\n <div class=\"page-wrapper-left\">\r\n <div class=\"product-image-container\">\r\n <div class=\"product-page-block-selector-type\">\r\n <app-product-selector-type class=\"default-padding\"\r\n [(currentType)]=\"currentView\"\r\n [show2D]=\"configurable\"\r\n [show3D]=\"threeD\"\r\n ></app-product-selector-type>\r\n </div>\r\n <div class=\"product-page-block-image default-padding\" [class.full]=\"fullScreen\">\r\n <app-image-carousel [@toggleVisibilityByState]=\"show2D ? 'show' : 'hide'\" [images]=\"article?.images\" [showRefresh]=\"configurable && threeD\"></app-image-carousel>\r\n <ng-container *ngIf=\"settingsLoaded\">\r\n <threed-configurator #configurator class=\"threed-configurator\"\r\n [class.configurator-full-screen]=\"fullScreen\"\r\n [@toggleVisibilityByState]=\"show3D ? 'show' : 'hide'\"\r\n [@toggleFullScreen]=\"fullScreen ? 'fullscreen' : 'halfscreen'\"\r\n ></threed-configurator>\r\n </ng-container>\r\n <co-icon #fullscreenbutton class=\"fullscreen-button\" *ngIf=\"show3D\"\r\n [@toggleTopLeft]=\"fullScreen ? 'fullscreen' : 'halfscreen'\"\r\n [iconData]=\"iconCache.getIcon(fullScreenIcon)\"\r\n (click)=\"showFullScreen()\"></co-icon>\r\n <co-icon class=\"threed-watermark\" *ngIf=\"show3D && fullScreen\"\r\n [iconData]=\"iconCache.getIcon(icon.Logo)\"></co-icon>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"page-wrapper-right\">\r\n <div class=\"product-page-block-description\">\r\n <app-product-description class=\"default-padding\" [article]=\"article\"></app-product-description>\r\n </div>\r\n <div class=\"product-page-block-additional\">\r\n <div class=\"product-page-block-additional-description\">\r\n <app-product-additional-description class=\"default-padding\" [article]=\"article\"></app-product-additional-description>\r\n </div>\r\n <div class=\"product-page-block-price\" [class.full]=\"configuring\">\r\n <app-product-price class=\"s-padding\" *ngIf=\"!configuring\"\r\n [pricing]=\"article?.pricing\"\r\n [configurable]=\"configurable\"\r\n ></app-product-price>\r\n <ng-container *ngIf=\"settingsLoaded\">\r\n <threed-selections #selections class=\"threed-selections\" [class.show-selections]=\"configuring\" [@toggleFullScreenRight]=\"fullScreen ? 'fullscreen' : 'halfscreen'\"\r\n [class.default-padding]=\"!fullScreen\"\r\n [class.show-full-screen]=\"fullScreen\"\r\n [class.mini-scrollbar]=\"fullScreen\"\r\n [sku]=\"sku\"\r\n [settings]=\"settings\"\r\n (onUserActionFromThreeD)=\"configuring = true\"\r\n (instanceSet)=\"setInstance($event)\"\r\n (onImageReceived)=\"appEventService.onImageReceived.next($event)\"\r\n (onRenderStarted)=\"appEventService.onRenderStarted.next()\"\r\n (onDraftRenderImageReceived)=\"appEventService.onDraftRenderImageReceived.next($event)\"\r\n (onArticleReceived)=\"appEventService.onArticleReceived.next($event.detail)\"\r\n (onSelectionsReceived)=\"appEventService.onSelectionsReceived.next($event.detail)\"\r\n (onArticleInfoReceived)=\"appEventService.onArticleInfoReceived.next($event.detail)\"\r\n (onAnswersAvailable)=\"appEventService.onAnswersAvailable.next($event.detail)\"\r\n ></threed-selections>\r\n </ng-container>\r\n </div>\r\n <div class=\"product-page-block-addtocart no-padding product-action-buttons\" *ngIf=\"!configuring\" [@toggleTopRight]=\"fullScreen ? 'fullscreen' : 'halfscreen'\">\r\n <app-product-addtocart\r\n [configurable]=\"configurable\"\r\n [createFrozenArticle]=\"createFrozenArticle\"\r\n [configuring]=\"configuring\"\r\n [showAddToCart]=\"showAddToCart\"\r\n [article]=\"article\"\r\n [externalSource]=\"externalSource\"\r\n [isReturn]=\"isReturn\"\r\n (startConfiguration)=\"handleStartConfiguration()\"\r\n (showRelatedPopup)=\"handlePopUpChange($event)\"\r\n ></app-product-addtocart>\r\n </div>\r\n <div class=\"addtocart-reserved product-action-buttons\" *ngIf=\"configuring\" [class.full-screen]=\"fullScreen\">\r\n <app-product-addtocart class=\"default-padding\"\r\n [configurable]=\"false\"\r\n [fullscreen]=\"fullScreen\"\r\n [showAddToCart]=\"showAddToCart\"\r\n [configuring]=\"configuring\"\r\n [article]=\"article\"\r\n [externalSource]=\"externalSource\"\r\n [isReturn]=\"isReturn\"\r\n (startConfiguration)=\"handleStartConfiguration()\"\r\n ></app-product-addtocart>\r\n </div>\r\n <div class=\"product-page-block-variants\">\r\n <app-product-related class=\"no-padding\" *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\r\n [externalSource]=\"externalSource\"\r\n [articles]=\"article?.relatedArticles\" [refType]=\"64\" [label]=\"'VARIANTS' | localize\"></app-product-related>\r\n </div>\r\n <div class=\"product-page-block-stock\">\r\n <app-product-stock class=\"no-padding\" [goodId]=\"article?.goodId\" (openStockEvent)=\"openStock()\"></app-product-stock>\r\n </div>\r\n <div class=\"product-page-block-delivery\">\r\n <app-product-delivery class=\"no-padding\" [stockAndDelivery]=\"stockAndDelivery\"></app-product-delivery>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"page-wrapper-content\">\r\n <div class=\"page-wrapper-left\">\r\n <app-product-info-tabs class=\"no-padding\" [article]=\"article\"></app-product-info-tabs>\r\n </div>\r\n <div class=\"page-wrapper-right\">\r\n <div class=\"product-page-block-related s-padding\">\r\n <app-product-related\r\n *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\r\n [externalSource]=\"externalSource\"\r\n [articles]=\"article?.relatedArticles\"\r\n [refType]=\"1\"\r\n [label]=\"'RELATED_PRODUCTS' | localize\">\r\n </app-product-related>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"page-wrapper-content no-top-margin\">\r\n <div class=\"page-wrapper-full\">\r\n <div class=\"product-page-block-alternatives s-padding\">\r\n <app-product-related\r\n *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\r\n [externalSource]=\"externalSource\"\r\n [articles]=\"article?.relatedArticles\"\r\n [refType]=\"4\"\r\n [isSmallModus]=\"false\"\r\n [label]=\"'ALTERNATIVE_PRODUCTS' | localize\">\r\n </app-product-related>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <div *ngIf=\"showRelatedProductsPopup\">\r\n <co-product-dialog\r\n [mainArticle]=\"article\"\r\n [articles]=\"article?.relatedArticles\"\r\n [refType]=\"1\"\r\n (closeRelatedPopup)=\"handlePopUpChange($event)\"\r\n >\r\n </co-product-dialog>\r\n\r\n<!-- <app-product-related class=\"no-padding\" *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"-->\r\n<!-- [articles]=\"article?.relatedArticles\" [refType]=\"64\" [label]=\"'VARIANTS' | localize\"></app-product-related>-->\r\n </div>\r\n\r\n\r\n </div>\r\n</ng-container>\r\n",
1766
+ template: "<ng-container *ngIf=\"settingsLoaded\">\r\n <div class=\"page-wrapper\">\r\n <div class=\"page-wrapper-content\">\r\n <div class=\"page-wrapper-left\">\r\n <div class=\"product-image-container\">\r\n <div class=\"product-page-block-selector-type\">\r\n <app-product-selector-type class=\"default-padding\"\r\n [(currentType)]=\"currentView\"\r\n [show2D]=\"configurable\"\r\n [show3D]=\"threeD\"\r\n ></app-product-selector-type>\r\n </div>\r\n <div class=\"product-page-block-image default-padding\" [class.full]=\"fullScreen\">\r\n <app-image-carousel [@toggleVisibilityByState]=\"show2D ? 'show' : 'hide'\" [images]=\"article?.images\" [showRefresh]=\"configurable && threeD\"></app-image-carousel>\r\n <ng-container *ngIf=\"settingsLoaded && this.configurable\">\r\n <threed-configurator #configurator class=\"threed-configurator\"\r\n [class.configurator-full-screen]=\"fullScreen\"\r\n [@toggleVisibilityByState]=\"show3D ? 'show' : 'hide'\"\r\n [@toggleFullScreen]=\"fullScreen ? 'fullscreen' : 'halfscreen'\"\r\n ></threed-configurator>\r\n </ng-container>\r\n <co-icon #fullscreenbutton class=\"fullscreen-button\" *ngIf=\"show3D\"\r\n [@toggleTopLeft]=\"fullScreen ? 'fullscreen' : 'halfscreen'\"\r\n [iconData]=\"iconCache.getIcon(fullScreenIcon)\"\r\n (click)=\"showFullScreen()\"></co-icon>\r\n <co-icon class=\"threed-watermark\" *ngIf=\"show3D && fullScreen\"\r\n [iconData]=\"iconCache.getIcon(icon.Logo)\"></co-icon>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"page-wrapper-right\">\r\n <div class=\"product-page-block-description\">\r\n <app-product-description class=\"default-padding\" [article]=\"article\"></app-product-description>\r\n </div>\r\n <div class=\"product-page-block-additional\">\r\n <div class=\"product-page-block-additional-description\">\r\n <app-product-additional-description class=\"default-padding\" [article]=\"article\"></app-product-additional-description>\r\n </div>\r\n <div class=\"product-page-block-price\" [class.full]=\"configuring\">\r\n <app-product-price class=\"s-padding\" *ngIf=\"!configuring\"\r\n [pricing]=\"article?.pricing\"\r\n [configurable]=\"configurable\"\r\n ></app-product-price>\r\n <ng-container *ngIf=\"settingsLoaded\">\r\n <threed-selections #selections class=\"threed-selections\" [class.show-selections]=\"configuring\" [@toggleFullScreenRight]=\"fullScreen ? 'fullscreen' : 'halfscreen'\"\r\n [class.default-padding]=\"!fullScreen\"\r\n [class.show-full-screen]=\"fullScreen\"\r\n [class.mini-scrollbar]=\"fullScreen\"\r\n [sku]=\"sku\"\r\n [settings]=\"settings\"\r\n (onUserActionFromThreeD)=\"configuring = true\"\r\n (instanceSet)=\"setInstance($event)\"\r\n (onImageReceived)=\"appEventService.onImageReceived.next($event)\"\r\n (onRenderStarted)=\"appEventService.onRenderStarted.next()\"\r\n (onDraftRenderImageReceived)=\"appEventService.onDraftRenderImageReceived.next($event)\"\r\n (onArticleReceived)=\"appEventService.onArticleReceived.next($event.detail)\"\r\n (onSelectionsReceived)=\"appEventService.onSelectionsReceived.next($event.detail)\"\r\n (onArticleInfoReceived)=\"appEventService.onArticleInfoReceived.next($event.detail)\"\r\n (onAnswersAvailable)=\"appEventService.onAnswersAvailable.next($event.detail)\"\r\n ></threed-selections>\r\n </ng-container>\r\n </div>\r\n <div class=\"product-page-block-addtocart no-padding product-action-buttons\" *ngIf=\"!configuring\" [@toggleTopRight]=\"fullScreen ? 'fullscreen' : 'halfscreen'\">\r\n <app-product-addtocart\r\n [configurable]=\"configurable\"\r\n [createFrozenArticle]=\"createFrozenArticle\"\r\n [configuring]=\"configuring\"\r\n [showAddToCart]=\"showAddToCart\"\r\n [article]=\"article\"\r\n [externalSource]=\"externalSource\"\r\n [isReturn]=\"isReturn\"\r\n (startConfiguration)=\"handleStartConfiguration()\"\r\n (showRelatedPopup)=\"handlePopUpChange($event)\"\r\n ></app-product-addtocart>\r\n </div>\r\n <div class=\"addtocart-reserved product-action-buttons\" *ngIf=\"configuring\" [class.full-screen]=\"fullScreen\">\r\n <app-product-addtocart class=\"default-padding\"\r\n [configurable]=\"false\"\r\n [fullscreen]=\"fullScreen\"\r\n [showAddToCart]=\"showAddToCart\"\r\n [configuring]=\"configuring\"\r\n [article]=\"article\"\r\n [externalSource]=\"externalSource\"\r\n [isReturn]=\"isReturn\"\r\n (startConfiguration)=\"handleStartConfiguration()\"\r\n ></app-product-addtocart>\r\n </div>\r\n <div class=\"product-page-block-variants\">\r\n <app-product-related class=\"no-padding\" *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\r\n [externalSource]=\"externalSource\"\r\n [articles]=\"article?.relatedArticles\" [refType]=\"64\" [label]=\"'VARIANTS' | localize\"></app-product-related>\r\n </div>\r\n <div class=\"product-page-block-stock\">\r\n <app-product-stock class=\"no-padding\" [goodId]=\"article?.goodId\" (openStockEvent)=\"openStock()\"></app-product-stock>\r\n </div>\r\n <div class=\"product-page-block-delivery\">\r\n <app-product-delivery class=\"no-padding\" [stockAndDelivery]=\"stockAndDelivery\"></app-product-delivery>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"page-wrapper-content\">\r\n <div class=\"page-wrapper-left\">\r\n <app-product-info-tabs class=\"no-padding\" [article]=\"article\"></app-product-info-tabs>\r\n </div>\r\n <div class=\"page-wrapper-right\">\r\n <div class=\"product-page-block-related s-padding\">\r\n <app-product-related\r\n *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\r\n [externalSource]=\"externalSource\"\r\n [articles]=\"article?.relatedArticles\"\r\n [refType]=\"1\"\r\n [label]=\"'RELATED_PRODUCTS' | localize\">\r\n </app-product-related>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"page-wrapper-content no-top-margin\">\r\n <div class=\"page-wrapper-full\">\r\n <div class=\"product-page-block-alternatives s-padding\">\r\n <app-product-related\r\n *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\r\n [externalSource]=\"externalSource\"\r\n [articles]=\"article?.relatedArticles\"\r\n [refType]=\"4\"\r\n [isSmallModus]=\"false\"\r\n [label]=\"'ALTERNATIVE_PRODUCTS' | localize\">\r\n </app-product-related>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <div *ngIf=\"showRelatedProductsPopup\">\r\n <co-product-dialog\r\n [mainArticle]=\"article\"\r\n [articles]=\"article?.relatedArticles\"\r\n [refType]=\"1\"\r\n (closeRelatedPopup)=\"handlePopUpChange($event)\"\r\n >\r\n </co-product-dialog>\r\n\r\n<!-- <app-product-related class=\"no-padding\" *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"-->\r\n<!-- [articles]=\"article?.relatedArticles\" [refType]=\"64\" [label]=\"'VARIANTS' | localize\"></app-product-related>-->\r\n </div>\r\n\r\n\r\n </div>\r\n</ng-container>\r\n",
1752
1767
  animations: [
1753
1768
  animations.trigger('toggleFullScreen', [
1754
1769
  animations.state('fullscreen', animations.style({ 'position': 'fixed', 'top': '0', 'left': '0', 'width': '100%', 'height': '100%' })),
@@ -2327,12 +2342,15 @@
2327
2342
  this.fromPrice = this._pricing.retailBasePrice ? this._pricing.retailBasePrice : this._pricing.priceBaseline;
2328
2343
  this.fromLabel = this._pricing.retailBasePrice ? 'PRICE' : 'FROM';
2329
2344
  this.toPrice = undefined;
2345
+ this.toLabel = '';
2330
2346
  }
2331
2347
  else {
2332
- this.fromPrice = this._pricing.retailSuggestedPrice ? this._pricing.retailSuggestedPrice : this._pricing.retailBasePrice;
2333
- this.fromLabel = this._pricing.retailSuggestedPrice ? 'Was' : 'PRICE';
2334
- this.toPrice = this._pricing.retailSuggestedPrice ? this._pricing.retailBasePrice : undefined;
2335
- this.toLabel = this._pricing.retailSuggestedPrice ? 'IS_NOW' : '';
2348
+ var hasSuggested = this._pricing.retailSuggestedPrice !== undefined && this._pricing.retailSuggestedPrice !== null;
2349
+ this.fromPrice = hasSuggested ? this._pricing.retailSuggestedPrice : this._pricing.retailBasePrice;
2350
+ this.fromLabel = hasSuggested ? 'Was' : 'PRICE';
2351
+ // Always set toPrice to base price
2352
+ this.toPrice = this._pricing.retailBasePrice;
2353
+ this.toLabel = hasSuggested ? 'IS_NOW' : 'PRICE';
2336
2354
  }
2337
2355
  this._changeDetector.detectChanges();
2338
2356
  }
@@ -2384,11 +2402,12 @@
2384
2402
  ];
2385
2403
 
2386
2404
  var ProductAddtocartComponent = /** @class */ (function () {
2387
- function ProductAddtocartComponent(iconCache, _ioneControllerService, _appEventService, _settingsService) {
2405
+ function ProductAddtocartComponent(iconCache, _ioneControllerService, _appEventService, _settingsService, _productConnectorAdapterService) {
2388
2406
  this.iconCache = iconCache;
2389
2407
  this._ioneControllerService = _ioneControllerService;
2390
2408
  this._appEventService = _appEventService;
2391
2409
  this._settingsService = _settingsService;
2410
+ this._productConnectorAdapterService = _productConnectorAdapterService;
2392
2411
  this.icon = IconEnum;
2393
2412
  this.createFrozenArticle = true;
2394
2413
  this.configurable = false;
@@ -2430,40 +2449,52 @@
2430
2449
  };
2431
2450
  ProductAddtocartComponent.prototype.handleAddToCartClick = function (quantity) {
2432
2451
  return __awaiter(this, void 0, void 0, function () {
2433
- var article, article, article;
2452
+ var article, generatedGoodId, articleFull, article, article, article;
2434
2453
  return __generator(this, function (_a) {
2435
2454
  switch (_a.label) {
2436
2455
  case 0:
2437
- if (!this.createFrozenArticle) return [3 /*break*/, 7];
2438
- if (!(this.article.goodType === 'B')) return [3 /*break*/, 2];
2456
+ if (!this.createFrozenArticle) return [3 /*break*/, 11];
2457
+ if (!(this.article.goodType === 'B')) return [3 /*break*/, 6];
2458
+ if (!this.article.isConfigurable) return [3 /*break*/, 2];
2439
2459
  return [4 /*yield*/, this._getJSONFromArticleObject({ article: this.article, quantity: quantity })];
2440
2460
  case 1:
2441
2461
  article = _a.sent();
2442
2462
  if (article) {
2443
2463
  this._appEventService.onAddToCart.next({ article: article, quantity: quantity });
2444
2464
  }
2445
- return [3 /*break*/, 6];
2446
- case 2:
2465
+ return [3 /*break*/, 5];
2466
+ case 2: return [4 /*yield*/, this._getGeneratedArtDirectly(this.article.goodId)];
2467
+ case 3:
2468
+ generatedGoodId = _a.sent();
2469
+ if (!generatedGoodId) return [3 /*break*/, 5];
2470
+ return [4 /*yield*/, this._productConnectorAdapterService.getArticleFullObject(generatedGoodId, true)];
2471
+ case 4:
2472
+ articleFull = _a.sent();
2473
+ article = this._ioneControllerService.convertArticleFullObjectToArticleExtended(articleFull);
2474
+ this._appEventService.onAddToCart.next({ article: article, quantity: quantity });
2475
+ _a.label = 5;
2476
+ case 5: return [3 /*break*/, 10];
2477
+ case 6:
2447
2478
  article = void 0;
2448
- if (!!!this.externalSource) return [3 /*break*/, 4];
2479
+ if (!!!this.externalSource) return [3 /*break*/, 8];
2449
2480
  return [4 /*yield*/, this._getJSONFromArticleObject({ article: this.article, quantity: quantity })];
2450
- case 3:
2481
+ case 7:
2451
2482
  article = _a.sent();
2452
- return [3 /*break*/, 5];
2453
- case 4:
2483
+ return [3 /*break*/, 9];
2484
+ case 8:
2454
2485
  article = this._ioneControllerService.convertArticleFullObjectToArticleExtended(this.article);
2455
- _a.label = 5;
2456
- case 5:
2486
+ _a.label = 9;
2487
+ case 9:
2457
2488
  if (article) {
2458
2489
  this._appEventService.onAddToCart.next({ article: article, quantity: quantity });
2459
2490
  }
2460
- _a.label = 6;
2461
- case 6: return [3 /*break*/, 8];
2462
- case 7:
2491
+ _a.label = 10;
2492
+ case 10: return [3 /*break*/, 12];
2493
+ case 11:
2463
2494
  article = this._ioneControllerService.convertArticleFullObjectToArticleExtended(this.article);
2464
2495
  this._appEventService.onAddToCart.next({ article: article, quantity: quantity });
2465
- _a.label = 8;
2466
- case 8: return [2 /*return*/];
2496
+ _a.label = 12;
2497
+ case 12: return [2 /*return*/];
2467
2498
  }
2468
2499
  });
2469
2500
  });
@@ -2502,6 +2533,16 @@
2502
2533
  });
2503
2534
  });
2504
2535
  };
2536
+ ProductAddtocartComponent.prototype._getGeneratedArtDirectly = function (goodId) {
2537
+ return __awaiter(this, void 0, void 0, function () {
2538
+ return __generator(this, function (_a) {
2539
+ switch (_a.label) {
2540
+ case 0: return [4 /*yield*/, this._ioneControllerService.getGeneratedArtDirectly(goodId, true)];
2541
+ case 1: return [2 /*return*/, _a.sent()];
2542
+ }
2543
+ });
2544
+ });
2545
+ };
2505
2546
  return ProductAddtocartComponent;
2506
2547
  }());
2507
2548
  ProductAddtocartComponent.decorators = [
@@ -2515,7 +2556,8 @@
2515
2556
  { type: IconCacheService },
2516
2557
  { type: ProductConnectorService },
2517
2558
  { type: ProductEventService },
2518
- { type: ProductSettingsService }
2559
+ { type: ProductSettingsService },
2560
+ { type: ProductConnectorAdapterService }
2519
2561
  ]; };
2520
2562
  ProductAddtocartComponent.propDecorators = {
2521
2563
  addToCartButton: [{ type: i0.ViewChild, args: ['addtocartbutton', { read: i0.ElementRef },] }],