2016-02-10 27 views
0

我有一项任务:在Sitecore中创建一个自定义管理页面以显示完整订单历史记录。我找到了一种方法来获取每位访问者的订单历史记录,但找不到任何内容以获取订单的完整列表。Sitecore Commerce Server - 获取完整订单清单

为了获得订单列表每个访问者,我们可以使用方法

public virtual GetVisitorOrdersResult GetVisitorOrders(GetVisitorOrdersRequest request); 

Sitecore.Commerce.Services.Orders.OrderServiceProvider类 和组装:Sitecore.Commerce

我觉得我们能得到的所有用户,之后拿到订单为每个用户。但是,我认为这不是解决任务的最佳方式。如果您通过其他方式获取所有数据,我将不胜感激。

非常感谢您的帮助。

P.S.我使用Sitecore的8

+0

我想你的答案可能在这个函数中。只是一个猜测。 https://github.com/Sitecore/Reference-Storefront/blob/1ba2990d08dc705ad0475975c01cd7803687426c/Storefront/CS/CSF/Managers/OrderManager.cs#L156 –

+0

谢谢您的评论。我看着店面的例子。我需要一个不同的功能,我想我找到了它(如果你有兴趣,请看下面的答案)。 – Max

回答

1

我想我找到了解决办法

var contextManager = new CommerceServerContextManager(); //using Sitecore.Commerce.Connect.CommerceServer; 
OrderManagementContext orderManagementContext = contextManager.OrderManagementContext; 
var orderManager = orderManagementContext.PurchaseOrderManager; 

CultureInfo culture = new CultureInfo("en-US"); 
DataSet searchableProperties = orderManager.GetSearchableProperties(culture.ToString()); 
SearchClauseFactory searchClauseFactory = orderManager.GetSearchClauseFactory(searchableProperties, "PurchaseOrder"); //using CommerceServer.Core; Assembly CommerceServer.Core.CrossTier 
SearchClause searchClause = searchClauseFactory.CreateClause(ExplicitComparisonOperator.OnOrAfter, "Created", StartDate); 

SearchOptions options = new SearchOptions(); 
options.SetPaging(10, 1); 

var result = orderManager.SearchPurchaseOrders(searchClause, options); 

可能对别人有用。