CommerceSDK Overview
CommerceSDK Overview
Luke Graham
Mugunthan Mani
1
Dynamics 365 Product
guidance
Implementation Guide General Case
guidance studies
Collective experience gained through
thousands of Dynamics 365 implementations
Highlights Recommended
deliverables
Conceptual
graphic
support
❑ Session Takeaways
❑ Q & A.
3
Architecture Overview
4
DYNAMICS 365 COMMERCE
COMPONENT ARCHITECTURE
ENVIRONMENT BACK OFFICE/HEAD OFFICE OPERATIONS IN-STORE COMPONENTS E-COMMERCE WEBSITE VISIT SITE DESIGN & ADMINISTRATION
ADMINISTRATION
IT PRO CALL CENTER AGENT BACK OFFICE USER STORE ASSOCIATE CLOUD POS MODERN POS E-COMM CUSTOMER SITE DESIGNER CONTENT AUTHOR
w/OFFLINE
HARDWARE
LCS WEB PORTAL HQ CLIENT: CALL CENTER HQ CLIENT: BACK OFFICE IOS POS ANDROID POS E-COMM WEBSITE E-COMM SITE BUILDER WEBSITE SITE BUILDER WEBSITE
STATION
MOBILE WEB
ENVIRONMENT BACK OFFICE COMMERCE CORE RUNTIME E-COMMERCE WEBSITE SITE DESIGN & ADMINISTRATION
ADMINISTRATION
DYNAMICS 365
SUPPLY CHAIN
LIFECYCLE SERVICES
(ADMIN PORTAL)
POWER BI AZURE DATALAKE COMMON DATA DYNAMICS 365 DYNAMICS 365 DYNAMICS 365 DYNAMICS 365 DYNAMICS 365 POWER APPS
STORAGE SERVICE MARKETING SALES CUSTOMER SERVICE FIELD SERVICE PROJECT OPS.
5
COMPILATION
EXTENSIBILITY OVERVIEW
COMPILATION DEVELOPER EXPERIENCE
DYNAMICS 365 FIN & OPS EXTENSION E-COMMERCE EXTENSION HEADLESS COMMERCE & POS EXTENSION
FIN & OPS APP E-COMMERCE HEADLESS COMMERCE HEADLESS COMMERCE MODERN POS
DEPLOYMENT EXTENSION PACKAGE EXTENSION PACKAGE EXTENSION PACKAGE ON-PREM INSTALLER ON-PREM INSTALLER
Runtime/Service Extension Modules, Themes, Data Actions POS UI & Runtime Extension Commerce Runtime Commerce Runtime
Database Extension Configuration Runtime / API Extension Channel Database Schema Channel Database Schema
Modules, Themes, Data Actions Database Extension POS UI & Runtime POS UI & Runtime
6
Commerce SDK Overview
7
Commerce SDK
Reference libraries Published in the public feed. Published in the Retail SDK\Pkgs
Packaging tools Packages available in the public feed to generate packages. Retail SDK\Packages
8
Commerce SDK
Why?
9
Setup Commerce Development Environment
10
Setup Local Commerce Development Environment
Pain points
11
Setup Local Commerce Development Environment
Benefits
12
Demo - Setup Commerce Development Environment
13
Headless Commerce Extension
14
HEADLESS COMMERCE
SAMPLE NATIVE APPS HEADLESS SAMPLE THIRD PARTY
AND SERVICES COMMERCE APPS AND SERVICES
Typescript Proxy Payments Controller Pricing Controller … Tax Controller Ext C# Proxy
MIDDLEWARES
THIRD-PARTY
COMMERCE RUNTIME
SHIPPING SERVICE
CHANNEL DATABASE
15
COMMERCE RUNTIME
Common Extensions Cloud Extensions Common Extensions On-Prem Extensions Common Extensions Offline Extensions
CHANNEL
CHANNEL DATABASE
DATABASE CHANNEL
CHANNEL DATABASE
DATABASE OFFLINE
CHANNEL DATABASE
DATABASE
16
COMMERCE RUNTIME
Common Extensions Cloud Extensions Common Extensions On-Prem Extensions Common Extensions Offline Extensions
CHANNEL
CHANNEL DATABASE
DATABASE CHANNEL
CHANNEL DATABASE
DATABASE OFFLINE
CHANNEL DATABASE
DATABASE
17
Demo – Headless Commerce Extension
18
Extension installers
19
Extension installers
20
Demo – Extension installers
21
Point of Sale Extensions
22
POS Extensions Overview
Extend existing POS functionality
Views –extensions to modify the UI on POS views
Ex. App Bar Buttons, Custom Column Sets, Custom Controls, etc.
Request Handlers – Extensions that replace the handlers for select requests within the POS runtime
Triggers – that add functionality to existing POS business logic workflows
Header –extensions that add custom functionality to the POS header bar
Create new functionality
Controls – that can be re-used throughout the custom UI flows in POS
Dialogs –that look and feel like existing POS dialogs
Operations –that can perform custom business logic
Request Handlers – that enable extensions to re-use business logic throughout the extension package
Views – that look and feel like core POS views
23
POS Extensions Overview
Developed in TypeScript/HTML using the PosApi library
Each POS extension is made up of one or more a TypeScript modules and/or HTML fragments
PosApi is JavaScript module library organized into three parts
Create – These APIs enable extensions to create new user experiences and workflows
Consume – These APIs provide opportunities for extensions to consume existing POS functionality & controls
Extend – These APIs that enable extensions to extend existing POS functionality like Views and Request Handlers
24
Changes to POS Extensions in the Commerce SDK
25
Improved way to use common POS controls
The PosUISdk control library was replaced with a new APIs in PosApi/Consume/Controls
26
Simplified custom View creation
Extensions that create new Views
should use the new base class
CustomViewControllerBase
instead of
ExtensionViewControllerBase
Provides a more maintainable API for
creating custom views and simplifies
extension development
Automatic handling of the spinner and
header bar
27
Configuring POS Extension Packages
POS now loads the list of configured
extension package definitions from the
headless Commerce engine by calling
the GetExtensionPackageDefinitions API
instead of from extensions.json
Removes the need for a code merge in the
extensions.json file
Enables a true independent packaging model for all
extension packages
28
Independent Packaging of Extensions in the
Commerce SDK
Retail SDK Commerce SDK
29
POS Extension Project Types in the Commerce SDK
Pos Extension Package Project – Compiles all extensions in an extension package.
Commerce SDK Nuget Package: Microsoft.Dynamics.Commerce.Sdk.Pos
Project Type: .NET SDK Class Library Project (netstandard2.0, .csproj)
Output: POS extensions web artifacts to be included in a Modern POS Modification Package and/or the Commerce
Scale Unit Deployable Package for CPOS
Modern Pos Extension App Package Project – Creates a package with all the POS, Headless
Commerce & HWS extensions into a Universal Windows Platform App Modification Package.
Commerce SDK Nuget Package: Microsoft.Dynamics.Commerce.Sdk.Pos
Project Type: Universal Windows App Package Project (.jsproj)
Output: The POS Extension Modification Package (.msix)
Modern Pos Extension App Package Installer Project – Generates a ModernPos extension app
package installer.
Commerce SDK Nuget Package: Microsoft.Dynamics.Commerce.Sdk.Installers.ModernPos
Project Type: .NET SDK Console Application Project (net461, .csproj)
Output: The Modern POS Extension Installer Executable (.exe) used to install the Modern POS extension app package
and channel database extensions
30
Demo – Point of Sale Extensions
31
Takeaways
Commerce SDK modernizes the development experience while maintaining compatibility the
most of the existing code extensions from the Retail SDK
Dependencies managed through NuGet simplifying update experience
No dev VM required
Independent packaging of extensions enables streamlined upgrade experience with no code
merge required
Migration to Commerce SDK is required by October 2022 when support for the Retail SDK will
be dropped
We’re hear to help ensure the migration process is a success
Upcoming Tech Talks:
8 am PST November 17th, 2021 - POS Extensions Deep Dive
8 am PST December 8th, 2021 – Migrating a POS Extension to the Commerce SDK
TBD – Packages and Build Automation with the Commerce SDK
TBD – Headless Commerce Engine Extensions Deep Dive
TBD – Hardware Station Extensions Deep Dive
32
Q&A
33