Skip to content

Commit c19acc9

Browse files
author
Henrique Venchiarutti
committed
Adding created_at, status and grand_total filters to customer Orders query and fixing multiple filters failure
1 parent aab3ee6 commit c19acc9

File tree

2 files changed

+10
-6
lines changed

2 files changed

+10
-6
lines changed

app/code/Magento/SalesGraphQl/Model/Resolver/CustomerOrders/Query/OrderFilter.php

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ class OrderFilter
2525
*/
2626
private $fieldTranslatorArray = [
2727
'number' => 'increment_id',
28+
'order_date' => 'created_at',
29+
'grand_total' => 'base_grand_total',
2830
];
2931

3032
/**
@@ -85,7 +87,6 @@ public function createFilterGroups(
8587
$filterGroups[] = $this->filterGroupBuilder->create();
8688

8789
if (isset($args['filter'])) {
88-
$filters = [];
8990
foreach ($args['filter'] as $field => $cond) {
9091
if (isset($this->fieldTranslatorArray[$field])) {
9192
$field = $this->fieldTranslatorArray[$field];
@@ -96,21 +97,21 @@ public function createFilterGroups(
9697
throw new InputException(__('Invalid match filter'));
9798
}
9899
$searchValue = $value !== null ? str_replace('%', '', $value) : '';
99-
$filters[] = $this->filterBuilder->setField($field)
100+
$filter = $this->filterBuilder->setField($field)
100101
->setValue("%{$searchValue}%")
101102
->setConditionType('like')
102103
->create();
103104
} else {
104-
$filters[] = $this->filterBuilder->setField($field)
105+
$filter = $this->filterBuilder->setField($field)
105106
->setValue($value)
106107
->setConditionType($condType)
107108
->create();
108109
}
109110
}
110-
}
111111

112-
$this->filterGroupBuilder->setFilters($filters);
113-
$filterGroups[] = $this->filterGroupBuilder->create();
112+
$this->filterGroupBuilder->setFilters([$filter]);
113+
$filterGroups[] = $this->filterGroupBuilder->create();
114+
}
114115
}
115116
return $filterGroups;
116117
}

app/code/Magento/SalesGraphQl/etc/schema.graphqls

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,10 @@ type Customer {
3131
}
3232

3333
input CustomerOrdersFilterInput @doc(description: "Identifies the filter to use for filtering orders.") {
34+
order_date: FilterRangeTypeInput @doc(description: "Filters by order created_at time.")
35+
status: FilterEqualTypeInput @doc(description: "Filters by order status.")
3436
number: FilterStringTypeInput @doc(description: "Filters by order number.")
37+
grand_total: FilterRangeTypeInput @doc(description: "Filters by order number.")
3538
}
3639

3740
input CustomerOrderSortInput @doc(description: "CustomerOrderSortInput specifies the field to use for sorting search results and indicates whether the results are sorted in ascending or descending order.") {

0 commit comments

Comments
 (0)