如何在 Kentico 商店设置中传播舍入配置以进行自定义计算?

How to propagate the rounding configuration in a Kentico store settings for custom calculations?

我正在 Kentico 11 CMS 中开发一个商业网站,除了产品价格外,还需要根据用户的输入计算其保险费用。

Kentico 允许在 商店配置应用程序 -> 商店设置 -> 常规选项卡 中配置价格舍入选项,我也想将它用于我的自定义计算,这样我的定制功能根据全局商店设置的小数位数对结果进行四舍五入。

根据 Kentico documentation,您可以通过创建服务 class 实现 IRoundingService 接口,根据您的具体要求和 Round() 方法自定义全局舍入SeviceFactory class 使用 GetRoundingService() 方法实现 IRoundingServiceFactory 接口。理想情况下,我想避免这种情况,因为我对 Kentico 中的标准 financial 舍入选项感到满意,只是想将其应用于我的自定义功能以保持一致性。

您可以按如下方式检索上下文站点的舍入服务:

using CMS.Core;
using CMS.Ecommerce;
using CMS.SiteProvider;
IRoundingService roundingService = Service.Resolve<IRoundingServiceFactory().GetRoundingService(SiteContext.CurrentSiteID);

然后调用舍入方法 roundingService.Round(insurance, currency) 传递给它一个十进制值和当前货币。

当前可获得的货币如下:

CurrencyInfo currencyInfo = ECommerceContext.CurrentCurrency;