Try our conversational search powered by Generative AI!

Manoj Kumawat
Mar 17, 2021
  1846
(4 votes)

Getting Purchase Orders filtered via date from OrderContext

In this blog post I'll be sharing my experience with OrderContext using date b/w condition. 

What was the need ?

Get the PurchaseOrders from Commerce based on dates (with between condition) and status. 

What was done ?

The following pattern is the simplest way to execute order search in Episerver Commerce using the API.

Begin the search code with:

OrderSearchOptions searchOptions = new OrderSearchOptions();
searchOptions.StartingRecord = 0; //or whatever you want to specify for paging purposes
searchOptions.RecordsToRetrieve = 10000

To retrieve only Purchase Orders specify 'PurchaseOrder' as a search parameter - 

 searchOptions.Classes.Add("PurchaseOrder");

The next thing is to build parameters against the table - 

// initializes search parameter options to be used while querying against db.
OrderSearchParameters parameters = new OrderSearchParameters(); 

StringBuilder metaWhere = new StringBuilder();

// specify your conditions, my case it should be the orders with GersOrderNumber column!=null
metaWhere.Append("NOT META.GersOrderNumber IS NULL"); 

//the dates against the Created Column of OrderGroup_PurchaseOrder table
metaWhere.Append($" AND META.Created>='{startDate}' AND META.Created<='{endDate}'");

parameters.SqlMetaWhereClause = metaWhere.ToString();

// Get the inner query to have OrderGroupId from PurchaseOrder table.
parameters.SqlWhereClause = "OrderGroupId IN (Select ObjectId FROM OrderGroup_PurchaseOrder)";

The last thing is to call the API - 

PurchaseOrder[] purchaseOrderCollection = OrderContext.Current.Search<PurchaseOrder>(parameters, searchOptions);

The API would return all Purchase orders within specified conditions.

Mar 17, 2021

Comments

Please login to comment.
Latest blogs
Optimizely and the never-ending story of the missing globe!

I've worked with Optimizely CMS for 14 years, and there are two things I'm obsessed with: Link validation and the globe that keeps disappearing on...

Tomas Hensrud Gulla | Apr 18, 2024 | Syndicated blog

Visitor Groups Usage Report For Optimizely CMS 12

This add-on offers detailed information on how visitor groups are used and how effective they are within Optimizely CMS. Editors can monitor and...

Adnan Zameer | Apr 18, 2024 | Syndicated blog

Azure AI Language – Abstractive Summarisation in Optimizely CMS

In this article, I show how the abstraction summarisation feature provided by the Azure AI Language platform, can be used within Optimizely CMS to...

Anil Patel | Apr 18, 2024 | Syndicated blog

Fix your Search & Navigation (Find) indexing job, please

Once upon a time, a colleague asked me to look into a customer database with weird spikes in database log usage. (You might start to wonder why I a...

Quan Mai | Apr 17, 2024 | Syndicated blog