diff --git a/src/app/extensions/punchout/pages/punchout/punchout-page.guard.ts b/src/app/extensions/punchout/pages/punchout/punchout-page.guard.ts index 807e51656b..cf229b9d58 100644 --- a/src/app/extensions/punchout/pages/punchout/punchout-page.guard.ts +++ b/src/app/extensions/punchout/pages/punchout/punchout-page.guard.ts @@ -69,23 +69,17 @@ export class PunchoutPageGuard implements CanActivate { // tslint:disable-next-line: no-console console.log('STARTING cXML PUNCHOUT with sid:', route.queryParamMap.get('sid')); + // fetch sid session information (basketId, returnURL, operation, ...) return this.punchoutService.getCxmlPunchoutSession(route.queryParamMap.get('sid')).pipe( log('session data'), + // persist returnURL in a cookie for later cart transfer (TODO: should survive page reload) tap(data => this.cookiesService.put('punchoutReturnURL', data.returnURL, { sameSite: 'Strict' })), tap(data => this.cookiesService.put('punchoutBasketID', data.basketId, { sameSite: 'Strict' })), - tap(data => this.checkoutFacade.setCurrentBasketId(data.basketId)), + // use the basketId basket for the current PWA session (instead of default current basket) + tap(data => this.checkoutFacade.loadBasketWithId(data.basketId)), mapTo(this.router.parseUrl('/home')) ); - /* TODO: - - fetch sid session information (basketId, returnURL, operation, ...) with /customers/{customerId}/punchout/cxml1.2/sessions/{sid} - - use the basketId basket for the current PWA session (instead of default basket, no basket merge, start with given basket) - - persist returnURL for later cart transfer (cookie, local storage, should survive page reload) - - FOR LATER: handle different operations or routing to a specific product, etc. - */ - - // return of(this.router.parseUrl('/home')); - // handle OCI punchout with HOOK_URL (save HOOK_URL to 'hookURL' cookie) } else if (route.queryParamMap.get('HOOK_URL')) { this.cookiesService.put('hookURL', route.queryParamMap.get('HOOK_URL'), { sameSite: 'Strict' });