uCommerce订单属性丢失

时间:2017-09-22 12:21:04

标签: c# sitecore-ucommerce

我有以下方法来保存采购订单上的订单属性:

uCommerce_OrderProperty

当我使用此保存值时,我可以看到它显示在public string GetOrderProperty(string orderPropertyName) { PurchaseOrder purchaseOrder; using (new CacheDisabler()) { purchaseOrder = TransactionLibrary.GetBasket().PurchaseOrder; } OrderProperty orderProperty = purchaseOrder.OrderProperties.FirstOrDefault(x => x.Key == orderPropertyName); if (orderProperty != null) { return orderProperty.Value; } return string.Empty; } 表中的顺序。

但是,对于某些属性,当我尝试将它们读回来时,它们会丢失:

public string GetOrderProperty(string orderPropertyName)
{
    PurchaseOrder purchaseOrder = SiteContext.Current.OrderContext.GetBasket().PurchaseOrder;
    return purchaseOrder[orderPropertyName];
}

我也尝试过uCommerce网站上的代码:

purchaseOrder

如果我检查OrderProperties,我可以看到purchaseOrder丢失了。我在任何时候都有7个属性,但OrderProperty op = OrderProperty.FirstOrDefault(x => x.Order.OrderId == purchaseOrder.OrderId && x.Key == orderPropertyName); 似乎只有最多5个,即使表中有7个。

这些是订单属性,而不是订单行属性。任何人都可以给我任何指示,为什么我看到这种行为?

修改

这一行确实得到了我正在寻找的价值:

OrderProperty orderProperty = purchaseOrder.OrderProperties.FirstOrDefault(x => x.Key == orderPropertyName);

即使此行(称为后面的行)返回null:

FROM mcr.microsoft.com/windows/servercore:ltsc2019
SHELL ["powershell"]

RUN Invoke-WebRequest "https://aka.ms/vs/15/release/vs_community.exe" -OutFile "$env:TEMP\vs_community.exe" -UseBasicParsing
RUN & "$env:TEMP\vs_community.exe" --add Microsoft.VisualStudio.Workload.NetWeb --quiet --wait --norestart --noUpdateInstaller | Out-Default

RUN & 'C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/MSBuild/15.0/Bin/MSBuild.exe' /version

CMD ["powershell"]

(两者都在寻找相同的订单属性)

谁能告诉我为什么?

1 个答案:

答案 0 :(得分:2)

我有一个评论,但由于缺少声誉,我不被允许。

对于您的代码,一切似乎都很好。我可以说服你展示 uCommerce_OrderProperty表? - 我只想检查订单属性的OrderLineId列是否为空。

你应该能够像这样设置和获取它:

var property = order[orderPropertyName];
order[orderPropertyName] = "VALUE";

此致 MADS

我们还建议在http://eureka.ucommerce.net/发布与Ucommerce相关的问题,响应时间通常更快。