Close Menu
    DevStackTipsDevStackTips
    • Home
    • News & Updates
      1. Tech & Work
      2. View All

      Sunshine And March Vibes (2025 Wallpapers Edition)

      May 16, 2025

      The Case For Minimal WordPress Setups: A Contrarian View On Theme Frameworks

      May 16, 2025

      How To Fix Largest Contentful Paint Issues With Subpart Analysis

      May 16, 2025

      How To Prevent WordPress SQL Injection Attacks

      May 16, 2025

      Microsoft has closed its “Experience Center” store in Sydney, Australia — as it ramps up a continued digital growth campaign

      May 16, 2025

      Bing Search APIs to be “decommissioned completely” as Microsoft urges developers to use its Azure agentic AI alternative

      May 16, 2025

      Microsoft might kill the Surface Laptop Studio as production is quietly halted

      May 16, 2025

      Minecraft licensing robbed us of this controversial NFL schedule release video

      May 16, 2025
    • Development
      1. Algorithms & Data Structures
      2. Artificial Intelligence
      3. Back-End Development
      4. Databases
      5. Front-End Development
      6. Libraries & Frameworks
      7. Machine Learning
      8. Security
      9. Software Engineering
      10. Tools & IDEs
      11. Web Design
      12. Web Development
      13. Web Security
      14. Programming Languages
        • PHP
        • JavaScript
      Featured

      The power of generators

      May 16, 2025
      Recent

      The power of generators

      May 16, 2025

      Simplify Factory Associations with Laravel’s UseFactory Attribute

      May 16, 2025

      This Week in Laravel: React Native, PhpStorm Junie, and more

      May 16, 2025
    • Operating Systems
      1. Windows
      2. Linux
      3. macOS
      Featured

      Microsoft has closed its “Experience Center” store in Sydney, Australia — as it ramps up a continued digital growth campaign

      May 16, 2025
      Recent

      Microsoft has closed its “Experience Center” store in Sydney, Australia — as it ramps up a continued digital growth campaign

      May 16, 2025

      Bing Search APIs to be “decommissioned completely” as Microsoft urges developers to use its Azure agentic AI alternative

      May 16, 2025

      Microsoft might kill the Surface Laptop Studio as production is quietly halted

      May 16, 2025
    • Learning Resources
      • Books
      • Cheatsheets
      • Tutorials & Guides
    Home»Development»Useful Tips for Customizing IBM Sterling Store Engagement

    Useful Tips for Customizing IBM Sterling Store Engagement

    August 21, 2024

    Customizing IBM Sterling Store Engagement allows businesses to tailor the application to their specific needs, enhancing both functionality and user experience. This guide provides advanced tips and strategies for technical stakeholders who are involved in customizing the UI components of the IBM Sterling Store Engagement application. Here are some useful tips to start with the customization efforts.

    Understanding the Architecture

    Before you start customizing IBM Sterling Store Engagement, it’s essential to have a deep understanding of its architecture. The platform is built on a modular framework that leverages microservices, allowing for flexible and scalable customizations. Familiarize yourself with the key components, including the front-end (UI layer), back-end services, and the communication protocols between them. Knowing how these pieces interact will help you identify the best points for integration and customization. This foundational knowledge ensures that your customizations are both effective and maintainable, reducing the risk of conflicts and enhancing the overall stability of your deployment.

    Directory Layout of the application

    Understanding the UI structure

    Before customizing UI components, familiarize yourself with the existing structure and layout of IBM Sterling Store Engagement. Identify the components you wish to modify or extend based on your business needs.

    Customizing UI Component

    To add a new flow in the UI, go to the <store-temp> directory, and run the following command:

    yarn new-extension-feature –module-name=<module-name> –port=<port>

    Creates a new Angular application with prefix “isf” under <store-temp>/extensions/features/<module-name>.
    Installs single-spa-angular.
    Generates main.single-spa.ts in the src folder.
    Creates a lazy-loaded module with <module-name> in the src/app folder.
    Updates src/app-routing.module.ts with:
    – A route for the lazy-loaded module.
    – An EmptyRouteComponent for unmatched routes.
    Adds start and build scripts to package.json.
    Registers the application in <store-temp>/extensions/override-static-assets/root-config/custom/import-map.json.
    Generates i18n folders in src/assets for localization, including an empty en.json in src/assets/<module-name>/i18n.
    Sets up TranslateModule to load the appropriate translation bundle JSON files.

    HTML and CSS Customization

    Locate Component Files: Navigate to the relevant component directories in your project structure. Update the HTML templates (.html files) to reflect new layouts or incorporate additional functionality. Adjust CSS (.scss files) to match your brand’s design guidelines or improve visual appeal. Leverage Angular Material for consistent UI elements if applicable.

    Enhancing Functionality of Angular Components and Services

    Extend Component Logic: If required, extend TypeScript (*.ts) files to add or modify component behavior. Write the Business logic to invoke the mashup. Here’s a sample code snippet.

    Service.ts file

    import { Injectable } from ‘@angular/core’;
    import { MashupService, WizardService, AppCtxStore } from ‘@store/core’;

    @Injectable()
    export class ExtnCustomDataService {

    private MASHUP_NAME = ‘extn_isf_getOrderList’;
    constructor(
    private _mashupService: MashupService,
    ) { }

    public getOrderList(input) {
    return this. _mashupService.callMashup(this. MASHUP_NAME, input,
    {‘handleMashupError’: true, ‘showMask’: false }).then(
    mashupOutput => this. _mashupService.getMashupOutput(mashupOutput, this. MASHUP_NAME),
    mashupError => Promise.reject(mashupError));
    }
    }

    Component.ts file

    this._extnCustomDataService. getOrderList (inputMashup).then((output) => {
    //logic to handle the mashup output
    });

    Navigation to routes

    Managing routing efficiently is key to a smooth user experience. Here’s how to handle routing. The new routes are present in <store-temp>/extensions/root-config/custom.

    {“type”: “route”,
    “path”: “shell/module_name”,
    “routes”: [
    {
    “type”: “application”,
    “name”: “module_name”
    }
    ]
    }

    Communication with different components

    Angular components can communicate with each other in the following ways:

    Parent to Child: Using @Input() decorator to pass data from a parent component to a child component.
    Child to Parent: Using @Output() decorator and EventEmitter to send data from a child component to a parent component.
    Sibling Components: Using a shared service to exchange data and messages.
    Unrelated Components: Also using a shared service for data exchange.
    Component Interaction via ViewChild: Accessing child component methods and properties using @ViewChild decorator in the parent component.

    Working with Mashups

    Mashup layer is used for XAPI calls for handling data in the backend layer. Each XAPI call and multiple XAPI call are always called under one transaction. Each multiple XAPI is under one transaction. The mashup layer is a mixture of XAPIs and other mashups.

    New custom Mashups

    Save the Custom Mashups:
    – Place your custom mashup files in the <runtime>/extensions/isf/webpages/mashupxmls/ directory.
    – Ensure that each file name ends with _mashups.xml.Naming Convention:
    – Use the following format for the mashup ID: extn_isf.<module_name>.<component_name>.<task>.

    Overriding mashups

    Extend an application-provided mashup by using the override extensibility, copy the existing mashups into files with names suffixed _overridemashups.xml in the <runtime>/extensions/isf/webpages/mashupxmls/ directory.

    Incrementing mashups

    Extend mashups incrementally, when you need attributes to be added to the mashup input or output, copy the existing mashup into files with names suffixed _incrementalmashups.xml in the <runtime>/extensions/isf/webpages/mashupxmls/ directory.

    Copy the updated mashup file to appserver- /smcfs.ear/isf.war/extn/mashupxmls

    restart the app-server to validate your changes.

    Testing

    To locally verify the new flow, start the application by running the following command,

    yarn start-app

     

    Reference Links:

    IBM Sterling Store Engagement (Next-generation) – IBM Documentation
    Working with mashups – IBM Documentation
    Adding a new view and portlet – IBM Documentation
    Customizing micro front-end architecture-based user interface – IBM Documentation

     

     

     

    Source: Read More 

    Hostinger
    Facebook Twitter Reddit Email Copy Link
    Previous ArticleUnlocking and Igniting Your Leadership Potential: Perficient’s Leading With Impact Program
    Next Article 4 Ways Perficient’s Adobe Practice is Forging the Future So Far in 2024

    Related Posts

    Machine Learning

    Salesforce AI Releases BLIP3-o: A Fully Open-Source Unified Multimodal Model Built with CLIP Embeddings and Flow Matching for Image Understanding and Generation

    May 16, 2025
    Security

    Nmap 7.96 Launches with Lightning-Fast DNS and 612 Scripts

    May 16, 2025
    Leave A Reply Cancel Reply

    Continue Reading

    Good design is structure for the work

    Web Development

    ERROR_CANT_ENABLE_DENY_ONLY: 5 Ways to Fix

    Operating Systems

    Critical ‘BatBadBut’ Rust Vulnerability Exposes Windows Systems to Attacks

    Development

    Linux System Performance Tuning: Optimizing CPU, Memory, and Disk

    Learning Resources

    Highlights

    Development

    JP Morgan AI Research Introduces FlowMind: A Novel Machine Learning Approach that Leverages the Capabilities of LLMs such as GPT to Create an Automatic Workflow Generation System

    April 25, 2024

    Automation in modern industries often involves repetitive tasks, but the challenge arises when tasks require…

    No signal on your phone? 5 quick and easy ways to get better reception

    January 31, 2025

    Azure GPT-4 Analysis of the New CRA: Part 1

    June 4, 2024

    CVE-2025-4117 – Netgear JWNR2000 Buffer Overflow Vulnerability

    April 30, 2025
    © DevStackTips 2025. All rights reserved.
    • Contact
    • Privacy Policy

    Type above and press Enter to search. Press Esc to cancel.