Looking into options to filter out the customer orders based on items

Hi ,
I am trying to extend a field for the customer orders and add more filter for order which are based on OrderLineItems. Filter or field would be based on OrderLineItems properties and Catalogue Properties
e.g- if we have “Product A” in “OrderLineItems” then based on its properties and its catalogue property. we have to extend field and apply the filter.
So Can you suggest what would be the best way to implement this?

The best way to implement this is using Virto Commerce Native Extensibility Framework.

  1. Read Extensibility - Overview
  2. You will need to create a new extension module and then based on your requirements. For example, you can extend default vc-module-catalog/ProductDocumentBuilder.cs with new attributes and used them as filters.
  3. Here you can find sample code of some common extensions: vc-module-catalog/samples/VirtoCommerce.CatalogModule2.Web

Thank you for your response, will get back to you if we have any further questions.

Hi @OlegoO , adding to the above question how can we add new options like filter by Category & Products in Customer Orders Advance Filter ?

Order Filter blade built with Extensibility Points - Metaform.

So, yes, it is possible to add new options like filter by Category & Products in Customer Orders Advance Filter.

Meta Form definitions:

  1. vc-module-order/filter-detail.js at dev · VirtoCommerce/vc-module-order (github.com)
  2. vc-module-order/order.js at dev · VirtoCommerce/vc-module-order (github.com)

And sample my-module-order\MyExtension.OrderModule.Web\Scripts\module.js

angular.module(moduleName, [])
    .run([
....
            metaFormsService.registerMetaFields('orderFilterDetail', [
                {
                    name: 'currency',
                    templateUrl: 'Modules/$(MyExtension.Order)/Scripts/components/currency.html'
                },
                {
                    name: 'sector',
                    templateUrl: 'Modules/$(MyExtension.Order)/Scripts/components/sector.html'
                },
...