A webinar by Rameez Akram, Sitecore Commerce MVP on Extending Sitecore Experience Commerce 9 Business Tools for Sitecore User Group Bangalore on 4th November 2018
SUG Bangalore - Extending Sitecore Experience Commerce 9 Business Tools
1. EXTENDING SITECORE XC9 BUSINESS TOOLS
A DATA DRIVEN APPROACH
RAMEEZ AKRAM
SITECORE USER GROUP BANGALORE
4 NOV 2018
2. Who are you dude?
• Tech Lead & Architect at Redhotminute Australia
• Sitecore Commerce MVP
• Background in digital, fintech, and startups
• Blog at sitecoredude.com & medium.com/redhotminute-australia
3. Agenda
• Overview of Business Tools in XC9
• Commerce Views service architecture
• How to extend views with Commerce plugins
• How to perform actions on views
• Q&A
4. Business Tools
• Rich & responsive UI for merchandisers and CSRs
• Built with Angular
• Extended using Commerce plugin framework
• Hosted as a separate site in IIS or Azure App Service
5. Business Tools
• User authentication is provided by Identity Server
• Checks against the ASP.NET membership tables in the Core
database
6. Business Tools
Business Tools interacts with the Commerce Authoring role to:
• Populate the user interface
• Get catalog data
• Get order data
• Edit and persist commerce entities
• Catalog data driven commerce indexes- CatalogItemsScope,
CustomersScope, OrdersScope
9. Commerce Views Service
• Provided by Sitecore.Commerce.Plugin.Views plugin
• Data-driven mechanism to dynamically create the UI
• View components are defined on server side instead of client side
• No front end code required to extend views
10. Commerce Views Service
• Commerce views are exposed through the Commerce Authoring API
• Plugin architecture used to extend views
• Custom views can be isolated with associated business functionality
• Makes upgrades easier
11. Composite EntityView
• A composite EntityView consists of a set of EntityViews
• Contains a Master view and Child views
Master view = The page itself
Child views = Individual UI components that make up the page
15. EntityView – UI Hint & UI
Type• A UIHint can be added to the EntityView to render the desired type of
view- such as Flat, Table, Grid etc.
• A UIType can be added to the ViewProperty in the EntityView to
render that specific property- such as string, Boolean, DatTime,
• You can even inject your own html by setting UIType = Html!
For a list of supported UIHints and UITypes, refer to the following excellent blog post by Andrew Sutherland from
Sitecore:
http://andrewsutherland.azurewebsites.net/2018/10/02/business-tools-ui-hints-and-ui-types/
16. Primer: Commerce Engine Plugins
• Commerce Engine is based on a plugin model
• Allows customization by creating your own custom plugins
• Main building blocks: Commands, Pipelines, Blocks
• Extend functionality using Pipelines & Blocks
17. Adding a Dashboard Pane - Custom Pipeline
Block
Add a new ‘Sandbox’ child navigation view to the main BizFX Navigation
view:
18. Adding a Dashboard Pane Extend
Pipeline
Extend the IBizFxNavigationPipeline by adding our own custom block
after the GetNavigationViewBlock:
21. Adding and Removing Views
View can be removed or added by removing/adding the respective block
from the GetEntityViewPipeline:
22. EntityAction – Interacting with Data in
Views
Allows users to edit values in an EntityView. Sequence of steps:
1. View renders available actions
2. User clicks on action (button)
3. Based on the button clicked, the UI gets the Edit View for that action.
4. Dialog box opens for user to edit properties
5. User completes action
28. Tips
• Postman is your friend. Use ‘Get Registered Pipelines’ call to find
configured sequence of pipelines/blocks.
• dotPeek is your best friend. Commerce OOTB functionality is built
using plugins. De-compile OOTB plugins to get ideas on how to
implement your customisations.
• Explore commerce blogs, slack e-commerce channel, and Sitecore
StackeExchange when in doubt.
29. How to connect with me
Blog: https://sitecoredude.com
Twitter: https://twitter.com/rameez_akram
LinkedIn:
https://au.linkedin.com/in/rameezakram
Medium: https://medium.com/@rameez.akram
Questions?