Take the community feedback survey now.

Manoj Kumawat
Mar 17, 2021
  2436
(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 Opal — working notes from me

A short, practical orientation I use when introducing Opal. Lately I’ve been helping customers and developers understand Opal, and I kept finding...

Pär Wissmark | Nov 26, 2025 |

How to setup Entra ID (formerly Azure AD) for CMS 12 site

Recently, I created a doc about configuring AAD with CMS 12, but it has been posted internally only So today, I would like to introduce it again in...

Tuan Anh Hoang | Nov 25, 2025

Running Optimizely CMS 12 on .NET 10 in Azure

Upgrade your Optimizely CMS website to .NET 10!

Tomas Hensrud Gulla | Nov 21, 2025 |

Experimentation Evolution with AI (Masterclass Recap)

If you think you are not using AI in your experimentation program you are probably wrong. Ever asked an AI to rephrase a hypothesis or brainstorm a...

Polly Walton | Nov 21, 2025