SAP Spartacus : CMS content page with dynamic parameter

CMS content page with dynamic parameter:

refer below example:
here we are passing savedCart id as a dynamic parameter.
e.g. 'my-account/saved-cart/000101010' 

Angular/Saprtacus Configuration
 

@NgModule({
  imports: [
    CommonModule,
    SpinnerModule,
    I18nModule,
    PaginationModule,
    ReactiveFormsModule,
    FormsModule,
    RouterModule,
    IconModule,
    FormErrorsModule,
    MyAccountTopMenuModule,
    RouterModule.forChild([
      {
  //path with dynamic parameter
        path: 'my-account/saved-cart/:cartid',
       
        data: {
//label of cms page without parameter.  
          pageLabel: '/my-account/saved-cart',
        },
// for displaying CMS slots,components
component: PageLayoutComponent, 
        canActivate: [CmsPageGuard],
      },
    ]),
  ],
  declarations: [BDISavedCartDetailsComponent],
  providers: [
    provideDefaultConfig(<CmsConfig>{
      cmsComponents: {
        BDISavedCartDetailsComponent: {
          component: BDISavedCartDetailsComponent,
          providers: [],
          guards: [AuthGuard],
        },
      },
    }),
  ],
  entryComponents: [BDISavedCartDetailsComponent],
  exports: [BDISavedCartDetailsComponent],
})
export class SavedCartDetailsModule {}
 
CMS page with Label (my-account/saved-cart):
 INSERT_UPDATE ContentPage;$contentCV[unique=true];uid[unique=true];name;masterTemplate(uid,$contentCV);label;defaultPage[default='true'];approvalStatus(code)[default='approved'];homepage[default='false']
;;savedCartDetailsPageSpa;Saved Cart Details Page;BDIAccountPageTemplateSpa;/my-account/saved-cart;;;
Mapping angular component with CMS component:  
INSERT_UPDATE CMSFlexComponent;$contentCV[unique=true];uid[unique=true];name;flexType;&componentRef
;;BDISavedCartDetailsComponent;Saved Cart Details Component;BDISavedCartDetailsComponent;BDISavedCartDetailsComponent
 
Content slot/component/page association: 
INSERT_UPDATE ContentSlot;$contentCV[unique=true];uid[unique=true];name;active;cmsComponents(&componentRef)
;;SavedCartDetailsBodySlot;Body Content Slot for Saved Cart details;true;BDISavedCartDetailsComponent
INSERT_UPDATE ContentSlotForPage;$contentCV[unique=true];uid[unique=true];position[unique=true];page(uid,$contentCV)[unique=true];contentSlot(uid,$contentCV)[unique=true]
;;BodyContent-SavedCartDetails;BodyContent;savedCartDetailsPageSpa;SavedCartDetailsBodySlot

Comments

Popular posts from this blog

Hybris / SAP Commerce Cloud Groovy Scripting Job to Generate CSV/Excel Reports and copy to Commerce cloud Blob Storage

Emma's dream - a kids story - By Kavya

Hybris/ SAP commerce Cloud: Retry failed/not sent emails due to SMTP connection issue.