页面类型 | 语言 | 产品 | 姓名 | 描述 | |||
---|---|---|---|---|---|---|---|
样本 |
|
| 扩展 Commerce POS、HWS 和 Headless Commerce API 以及 Commerce 运行时。 | 此存储库包含有关如何扩展 Dynamics 365 Commerce POS、硬件站、Headless Commerce API 和 Commerce 运行时的示例代码。 |
此存储库包含有关如何自定义 POS、硬件站 (HWS) 和商务运行时 (CRT)、无头商务 API 和通道数据库的示例代码。请注意,这些只是示例,不需要克隆此存储库来开发 Dynamics 365 Commerce 扩展。本主题适用于 Dynamics 365 commerce 应用程序版本 10.0.18 或更高版本。
此文件说明了 InStore 示例存储库的结构,并说明了如何设置存储库以引用公共源中的 Commerce SDK nuget 包以进行 Dynamics 365 Commerce 扩展开发。请访问我们的文档网站,获取有关 Dynamics 365 Commerce 开发的其他资源。
此过程不需要特定的预配置环境或虚拟机。开发和测试可以在任何具有相对现代的 Windows 版本的计算机上完成。如果您不需要现代 POS 开发,您可以利用 Windows 10、Windows Server 2016/2019。如果您需要 Sealed Modern POS 开发,请安装这些先决条件。有关开发环境先决条件的更多详细信息,请参阅本文
示例 InStore 存储库包含 nuget.config、repo.props、CustomizationPackage.props 和构建管道脚本,这些脚本提供有关扩展如何设置存储库元数据文件的指导。
文件夹 | 描述 |
---|---|
硬件站样品 | 该项目包含有关如何创建硬件站、支付扩展和扩展安装程序的示例。 |
商店商务样品 | 此文件夹包含演示如何扩展 Store Commerce 应用程序以实现各种自定义场景的示例。 |
包装样品 | 此文件夹包含演示如何构建 Commerce SDK 解决方案以便为适当的 Commerce 组件创建包/安装程序的示例。 |
管道 | YAML 和 PowerShell 脚本文件 |
Dynamics365Commerce.ScaleUnit 存储库包含专注于无头商务扩展开发方案(例如无头商务 API 和商务运行时)的其他示例。
此存储库中的每个示例都附有一个 readme.md 文件,其中包含以下信息:
其功能描述
构建和运行示例的步骤
示例中使用的 Commerce API 和扩展点的列表以及它们的用途的描述。
Commerce API 和功能区域相关文档的链接
功能的 gif 或屏幕截图(如果适用)
Commerce 团队已构建自动化,可验证此存储库中的所有示例是否已成功构建,但这并不能保证这些示例始终能够构建和运行,而不会出现软件开发过程中常见的问题。如果您遇到 InStore 示例或 Commerce SDK 的问题,请搜索此 Github 存储库的问题部分,看看它是否是已知问题。可能已经有可用的修复或解决方法。
如果问题部分中没有列出您的问题,请创建一个新问题,并提供有关您所面临问题的详细信息。这将有助于确保使用 Commerce SDK 和这些示例的每个人都拥有尽可能最佳的体验,并且所有已知问题都可以在线搜索。我们将监控这些问题并尽快提供帮助。
注意:为了获得最佳体验,请限制使用问题部分来报告 Commerce SDK 和 InStore 示例的问题。
存储库中的分支按 Dynamics 365 Commerce 应用程序版本进行组织,存储库中的每个分支都指向 Dynamics 365 Commerce 的应用程序版本,请根据您的上线版本使用正确的版本分支。
发布分支名称 | 版本 | 应用发布版本 |
---|---|---|
发布/9.49 | 9.49.* | 10.0.39 |
发布/9.50 | 9.50.* | 10.0.40 |
发布/9.51 | 9.51.* | 10.0.41 |
发布/9.52 | 9.52.* | 10.0.42 |
商务合同、消息、实体和请求包在此公共源中发布,以供商务扩展代码使用和自定义现有功能或为 Dynamics 365 Commerce 产品构建新功能。
从该位置使用商务包,扩展可以在其扩展项目文件的 nuget.config 中添加包源位置。
<包来源> <添加键=“dynamics365-commerce”值=“https://pkgs.dev.azure.com/commerce-partner/Registry/_packaging/dynamics365-commerce/nuget/v3/index.json”/> <添加键=“nuget.org”值=“https://api.nuget.org/v3/index.json”/> </包来源>
套餐名称 | 描述 |
---|---|
Microsoft.Dynamics.Commerce.Sdk.ChannelDatabase | 使用 CSU 生成数据库包需要此包。 |
Microsoft.Dynamics.Commerce.Sdk.Runtime | 该软件包包含所有商业运行时库 |
Microsoft.Dynamics.Commerce.Sdk.ScaleUnit | 需要此包来生成用于部署的 CSU 包。 |
Microsoft.Dynamics.Commerce.Sdk.Installers.ScaleUnit | 需要此包来生成用于部署的 ScaleUnit 包 |
Microsoft.Dynamics.Commerce.Sdk.HardwareAndPeripherals | 该包包含所有商业硬件站和外设库 |
Microsoft.Dynamics.Commerce.Sdk.Installers | 该软件包包含所有安装程序库 |
Microsoft.Dynamics.Commerce.Sdk.Installers.HardwareStation | 需要此包来生成用于部署的硬件站包 |
Microsoft.Dynamics.Commerce.Sdk.Installers.StoreCommerce | 生成 Store Commerce 扩展安装程序需要此包。 |
Microsoft.Dynamics.Commerce.Sdk.Pos | 该软件包包含所有 POS 库 |
Microsoft.Dynamics.Commerce.Sdk.Installers.ModernPos | 需要此软件包来生成 POS 扩展安装程序以进行部署 |
Microsoft.Dynamics.Commerce.Diagnostics | 该软件包包含所有诊断库 |
Microsoft.Dynamics.Commerce.Runtime.Data | 该包包含所有数据合约库 |
Microsoft.Dynamics.Commerce.Runtime.DataServices.Messages | 该包包含所有数据服务消息库 |
Microsoft.Dynamics.Commerce.Runtime.Entities | 该包包含所有商业实体定义 |
Microsoft.Dynamics.Commerce.Runtime.Framework | 该软件包包含所有商业框架库 |
Microsoft.Dynamics.Commerce.Runtime.Hosting.Contracts | 该软件包包含所有商业控制器库 |
Microsoft.Dynamics.Commerce.Runtime.Messages | 该包包含所有商业运行时消息库 |
Microsoft.Dynamics.Commerce.Runtime.RealtimeServices.Messages | 该软件包包含所有商业真实运行时库 |
Microsoft.Dynamics.Commerce.Runtime.Services.Messages | 该包包含所有商务服务消息库 |
Microsoft.Dynamics.Commerce.HardwareStation.Core | 该软件包包含所有 HWS 库 |
Microsoft.Dynamics.Commerce.HardwareStation.PeripheralRequests | 该包包含所有HWS外设请求库 |
Microsoft.Dynamics.Commerce.HardwareStation.Peripherals.Contracts | 该软件包包含所有 HWS 外设合约库 |
Microsoft.Dynamics.Commerce.HardwareStation.Peripherals.Entities | 该包包含所有HWS外设实体库 |
Microsoft.Dynamics.Commerce.Installers.Framework | 该软件包包含所有安装程序框架库 |
Microsoft.Dynamics.Commerce.KeyVault.Contracts | 该软件包包含所有密钥保管库合约库 |
Microsoft.Dynamics.Commerce.PaymentSDK.Extensions.Portable | 该包包含所有支付扩展库 |
Microsoft.Dynamics.Commerce.PaymentSDK.Portable | 该包包含所有支付库 |
Microsoft.Dynamics.Commerce.Runtime.FIF.Connector.Messages | 该软件包包含所有 FIF 连接器库 |
Microsoft.Dynamics.Commerce.Runtime.FIF.DocumentProvider.Messages | 该软件包包含所有 FIF 文档提供程序库 |
Microsoft.Dynamics.Commerce.Installers.Framework.DatabaseExtensions | 该软件包包含所有数据库安装程序框架库 |
Microsoft.Dynamics.Commerce.Tools.DbUtilities | 该软件包包含所有数据库实用程序库 |
Microsoft.Dynamics.Commerce.Tools.ExtensionsProxyGenerator.AspNetCore | 该软件包包含所有扩展代理生成器实用程序 |
Microsoft.Dynamics.Commerce.Proxy.ScaleUnit | 该包包含扩展应用程序在在线模式下使用 Headless Commerce API(连接到 Headless Commerce)的所有代理类。 |
套餐版本 | 应用发布 |
---|---|
9.49.xx-预览版 | 10.0.39 PEAP 发布 |
9.49.xx | 10.0.39 客户预览 |
9.49.xx | 10.0.39 正式发布 |
9.50.xx-预览版 | 10.0.40 PEAP 发布 |
9.50.xx | 10.0.40 客户预览 |
9.50.xx | 10.0.40 正式版 |
9.51.xx-预览版 | 10.0.41 PEAP 版本 |
9.51.xx | 10.0.41 客户预览 |
9.51.xx | 10.0.41 正式发布 |
9.52.xx-预览版 | 10.0.42 PEAP 版本 |
9.52.xx | 10.0.42 客户预览 |
9.52.xx | 10.0.42 正式版 |
扩展项目可以通过将包引用添加到具有完整版本号的项目来使用正确的版本,或者使用通配符始终获取最新版本,推荐选项是使用完整版本号并根据您的上线版本更新版本。
<PackageReference Include="Microsoft.Dynamics.Commerce.Sdk.Pos" Version="9.52.xx" />
或者
<PackageReference Include="Microsoft.Dynamics.Commerce.Sdk.Pos" Version="9.52.*" />
随着每个修补程序和新应用程序的发布,新版本的软件包将发布在同一公共源中,根据上线所需的版本使用正确的软件包版本。使用比上线应用程序版本更高的包版本可能会导致运行时和部署失败。
设置 Azure DevOps 管道以实现构建自动化和包生成:
为 Commerce SDK 设置构建管道
最佳实践和分支策略:
有关 git 分支策略的详细信息请参阅 Git 分支策略文档。
以下分支策略基于我们在 Microsoft 使用 Git 的方式。有关更多信息,请参阅我们如何在 Microsoft 使用 Git。
保持分支策略简单。从以下三个概念构建您的策略:
使用功能分支来实现所有新功能和错误修复。
使用拉取请求将功能分支合并到主分支中。
保持高质量、最新的主分支。
创建一个新的功能分支用于开发和错误修复:
为我们的扩展创建一个新的功能主分支,遵循正确的命名约定(请参阅 Git 分支文档以获取示例命名约定)
创建一个新的开发分支:
为开发创建一个私有分支:
git checkout -b private/{用户名}/{功能/描述}
使用 git -add 添加新更改并将其提交到开发分支。和 git commit -m“提交消息。”
开发完成、测试和验证后,通过执行 git push <remote> 将更改推送到主分支。 <分支>
git push origin {私有分支名称}
开发完成后创建release分支:
将开发更改推送到主分支后,创建一个新的发布分支,并从发布分支创建可部署的包。
git checkout -b 发布/xxx
如果发布分支中进行了任何更改,则将发布分支中的更改合并回主分支。
- git checkout master git merge release/x.x.x
扩展修补程序分支:
与发布分支一样,从主分支创建用于扩展的修补程序分支并发布修复程序,然后将更改合并回主分支。
将新发布分支合并到主分支和开发分支:
发布新版本的示例后,如果需要,请将您的开发分支与新分支合并。该存储库仅包含示例,因此不需要始终从分支获取更新的更改。
- git checkout master git merge release/x.x.x