volume_up

A critical vulnerability was discovered in React Server Components (Next.js). Our systems remain protected but we advise to update packages to newest version. Learn More

volume_up

A critical vulnerability was discovered in React Server Components (Next.js). Our systems remain protected but we advise to update packages to newest version. Learn More

Order by Created in PurchaseOrder.Search

Here we go again. Something apparently easy to do, does not behave as expected in Commerce...

So Created (creation timestamp) is actually a metafields (in the db) even tho is a property of the OrderGroup (so all tables that extend OrderGroup ofcourse has it) ... and everyone go huh?!?!?!

I can specify a where clause on the metafield using the property SqlMetaWhereClause on the OrderSearchParameters. So where so i specify an OrderByClaus for metafields? (it does not exist and the OrderByClaus does not recognize the meta fields columns).

So the question is ... tada ... how do i order my search on metafield values?

#62487
Oct 25, 2012 18:02

There is currently no "out of the box" way to order by MetaField values when searching for orders in Commerce. This is because the stored procedure being used, ecf_OrderSearch, does not return all columns of an OrderGroup meta class table (e.g. OrderGroup_PurchaseOrder) in one of the subqueries being built.

One quick hack you could do is to change the ecf_OrderSearch stored procedure to do exactly what I just said does not happen, by changing

SELECT DISTINCT U.[KEY], U.RANK

to

SELECT DISTINCT U.*

and then using something like

OrderByClause = "META.Created ASC"

but "SELECT *" is not the ideal solution in an ideal world.. This would probably be a feature request for a future release.

#62497
Edited, Oct 26, 2012 2:28
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.