This page demonstrate  How To Customize Order Hub  Application ..
	  
	
1. Introduction:
Customization of Sterling Commerce Application is difficult task. This
steps help you on customize orderhub application.
Following product documentation is for reference.
Sterling Webstore is being all most all store to do the store operation
by store user and store mamager. There is very good demand of sterling
resources who konows store ui customization.
In this page we will discuss how to do setup for store ui customization
and how the do the store ui customization.
Mainly we will go-through following types of store ui customization.
	- Adding a a label (static text) in the product screen /page
- Adding a level and showing value from api output. Example- We
		will be showing OrderKey value alogng with order number.
- We will add new link.
- we will create a new screen.
- we control some of the resources through permission.
2. Order Hub Customization
Onece you finish the order hub installation, you customize the order hub
application.
There are two type of customuization:
	- Type 1: crate custom menu and custom page / screen.
- Type 2: Customize existing pages that are order hub
		application. 
 Order Hub supports 3 levels of customization
		when it comes to adding functionality to existing pages:
			- Customization by configuration
- Differential customization
- Customization by overrides
 
2.1 PreRequiste Software / Setup
	- Docker Installation : It is done as part of Sterling and order
		hub installation
- Install Node.js -:
 Execute following commands to
		download and install nodejs.
 wget
		https://nodejs.org/dist/v6.12.2/node-v6.12.2-linux-x64.tar.gz
 if you get "bash: wget: command not found" error, install wget running
		"yum install wget"
 unzip it
 tar --strip-components
		1 -xzvf node-v* -C /usr/local
 Check Node Installated
		Version. /usr/local/bin/node -v
 
- Install Yarn. Command:-
- Install Angular CLI globally : Command : npm install -g
		@angular/cli@13.3.9
- Configure the hosts file:- Configure the hosts file to map
		bucgenerichost to localhost. You need the mapping to allow Order Hub
		to connect to your local development environment. 
 Open the
		hosts file C:\Windows\System32\drivers\etc\hosts
 127.0.0.1
		localhost bucgenerichost
 
- Update the om-compose.properties file to set
		ORDERHUB_MODE=omoc
- Start Docker. Command : sudo service docker start
- Run the following command to extract the source code to your
		local workstation. Use the source code to customize Order Hub.:
 Command: - ./om-compose.sh extract-orderhub-code <version>
 Valid values for version are oms or omoc.
 The source code is
		available on your local workstation at
		devtoolkit_docker/orderhub-code.
2.1 Creating new applications (Type 1)
Try to login to webstore (url: https://ip or
hotname:9443/wsc/store/login.do url) with userid=admin and password.
You will get the error message " User is not assdigned to store".
Please use the following steps to do the setup and customization for Web
store UI
2.1 Creating new applications
Use IBM-provided Angular schematics to generate a brand new application
to access the application from orderhub.
	
		| An Angular monorepo | A basic Angular repository. | 
2.1.1 Creating an Order Hub monorepo
	- Ensure that you have extracted the Order Hub code. Code should
		be in orderhub-code (e.g. /oms/devtoolkit_docker/orderhub-code )
		folder
- Go to devtoolkit_docker/orderhub-code foder. (command: cd
		/oms/devtoolkit_docker/orderhub-code)
- Run the command :  npm config set "strict-ssl" false 
		.If you get "bash: npm: command not found" error, then Install npm. (
			https://tecadmin.net/how-to-install-nodejs-on-centos-stream-9)
	
- un Install and reinstallschematics: Command To Uninstall:
			npm uninstall -g @buc/schematics  
 Command to reinstall: 
			npm install -g ./lib/buc/schematics/schematics-v2latest.tgz
- Create a folder custom-monorepo. Coomand : mkdir
		custom-monorepo ; Give perimission. chmod 777 custom-monorepo 
 path should look like
		/oms/devtoolkit_docker/orderhub-code/custom-monorepo
- Go to folder
		/oms/devtoolkit_docker/orderhub-code/custom-monorepo. Command cd
		/oms/devtoolkit_docker/orderhub-code/custom-monorepo .
- Create a file app-config.json. add the following content 
 
	{
  "name": "custom-monorepo",
  "devServerConfig": {
      "port": 9300,
      "contextRoot": "/custom-monorepo"
  },
  "prodServerConfig": {
      "hostName": "static.omsbusinessusercontrols.ibm.com"
  },
  "routes": {
      "custom-page1": {
          "devServerConfig": {
              "port": 9301,
              "contextRoot": "/custom-page1"
          }
      },
      "custom-page2": {
          "devServerConfig": {
              "port": 9302,
              "contextRoot": "/custom-page2"
          }
      }
  }
}
	
	
	
- Check ng version. Command: ng version . If you get the error
		"bash: ng: command not found", install ng. 
 Steps to install
		ng:
 
		1. npm install -g @angular/cli@latest
		2. alias ng="/usr/local/lib/node_modules/\@angular/cli/bin/ng.js"
		3. ng version
		 
- Install yarn: command: npm install -g yarn
- 196 Install angular-cli globally using command (npm install -g
		angular-cli)
- commands: 
		npm uninstall -g angular-cli
npm uninstall -g @angular/cli
npm cache clean
npm install -g @angular/cli@latest
alias ng="/usr/local/lib/node_modules/@angular/cli/bin/ng.js"
		
		 
- Go to
			/oms/devtoolkit_docker/orderhub-code/custom-monorepo 
- Open a new terminal windiw 
- Run following command. 
	
	ng new --collection=@buc/schematics  --app-config-json=app-config.json --module-short-name=monorepo  --prefix=monorepo --mode=on-prem
	
	 
- 
	[root@ip-172-26-8-124 custom-monorepo]# ng new --collection=@buc/schematics  --app-config-json=app-config.json   --module-short-name=monorepo  --prefix=monorepo --mode=on-prem
Workspace extension with invalid name (defaultProject) found.
Error: This command is not available when running the Angular CLI inside a workspace.
[root@ip-172-26-8-124 custom-monorepo]# ls
	
	 
-  Remove the line   ,"defaultProject": "monorepo-shared"/li>
	
. For more information, see Getting started with customizing Order Hub.