Skip to content

Commit 2bdd574

Browse files
committed
MC-15250: Explicit product sorting in PageBuilder Products Content type
- Fix stock sorting
1 parent 8202eca commit 2bdd574

File tree

4 files changed

+21
-207
lines changed

4 files changed

+21
-207
lines changed

app/code/Magento/PageBuilder/Model/Catalog/Sorting/Price.php

Lines changed: 0 additions & 60 deletions
This file was deleted.

app/code/Magento/PageBuilder/Model/Catalog/Sorting/SimpleOption.php

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,21 +28,21 @@ class SimpleOption implements OptionInterface
2828
/**
2929
* @var string
3030
*/
31-
private $attribute_field;
31+
private $attributeField;
3232

3333
/**
3434
* @param string $label
3535
* @param string $sortDirection
36-
* @param string $attribute_field
36+
* @param string $attributeField
3737
*/
3838
public function __construct(
3939
string $label,
4040
string $sortDirection,
41-
string $attribute_field
41+
string $attributeField
4242
) {
4343
$this->label = $label;
4444
$this->sortDirection = $sortDirection;
45-
$this->attribute_field = $attribute_field;
45+
$this->attributeField = $attributeField;
4646
}
4747

4848
/**
@@ -52,7 +52,9 @@ public function sort(
5252
\Magento\Catalog\Model\ResourceModel\Product\Collection $collection
5353
): \Magento\Catalog\Model\ResourceModel\Product\Collection {
5454
$collection->getSelect()->reset(Select::ORDER);
55-
$collection->addOrder($this->attribute_field, $this->sortDirection);
55+
$collection->addAttributeToSort($this->attributeField, $this->sortDirection);
56+
$collection->addAttributeToSort('entity_id', $this->sortDirection);
57+
5658
return $collection;
5759
}
5860

app/code/Magento/PageBuilder/Model/Catalog/Sorting/Stock.php

Lines changed: 0 additions & 132 deletions
This file was deleted.

app/code/Magento/PageBuilder/etc/di.xml

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -148,66 +148,70 @@
148148
<arguments>
149149
<argument name="label" xsi:type="string">Newest products first</argument>
150150
<argument name="sortDirection" xsi:type="const">\Magento\Framework\DB\Select::SQL_DESC</argument>
151-
<argument name="attribute_field" xsi:type="string">entity_id</argument>
151+
<argument name="attributeField" xsi:type="string">entity_id</argument>
152152
</arguments>
153153
</virtualType>
154154
<virtualType name="Magento\PageBuilder\Model\Catalog\Sorting\Date\OldestTop" type="Magento\PageBuilder\Model\Catalog\Sorting\SimpleOption">
155155
<arguments>
156156
<argument name="label" xsi:type="string">Oldest products first</argument>
157157
<argument name="sortDirection" xsi:type="const">\Magento\Framework\DB\Select::SQL_ASC</argument>
158-
<argument name="attribute_field" xsi:type="string">entity_id</argument>
158+
<argument name="attributeField" xsi:type="string">entity_id</argument>
159159
</arguments>
160160
</virtualType>
161161
<virtualType name="Magento\PageBuilder\Model\Catalog\Sorting\Name\Ascending" type="Magento\PageBuilder\Model\Catalog\Sorting\SimpleOption">
162162
<arguments>
163163
<argument name="label" xsi:type="string">Name: A - Z</argument>
164164
<argument name="sortDirection" xsi:type="const">\Magento\Framework\DB\Select::SQL_ASC</argument>
165-
<argument name="attribute_field" xsi:type="string">name</argument>
165+
<argument name="attributeField" xsi:type="string">name</argument>
166166
</arguments>
167167
</virtualType>
168168
<virtualType name="Magento\PageBuilder\Model\Catalog\Sorting\Name\Descending" type="Magento\PageBuilder\Model\Catalog\Sorting\SimpleOption">
169169
<arguments>
170170
<argument name="label" xsi:type="string">Name: Z - A</argument>
171171
<argument name="sortDirection" xsi:type="const">\Magento\Framework\DB\Select::SQL_DESC</argument>
172-
<argument name="attribute_field" xsi:type="string">name</argument>
172+
<argument name="attributeField" xsi:type="string">name</argument>
173173
</arguments>
174174
</virtualType>
175175
<virtualType name="Magento\PageBuilder\Model\Catalog\Sorting\Sku\Ascending" type="Magento\PageBuilder\Model\Catalog\Sorting\SimpleOption">
176176
<arguments>
177177
<argument name="label" xsi:type="string">SKU: ascending</argument>
178178
<argument name="sortDirection" xsi:type="const">\Magento\Framework\DB\Select::SQL_ASC</argument>
179-
<argument name="attribute_field" xsi:type="string">sku</argument>
179+
<argument name="attributeField" xsi:type="string">sku</argument>
180180
</arguments>
181181
</virtualType>
182182
<virtualType name="Magento\PageBuilder\Model\Catalog\Sorting\Sku\Descending" type="Magento\PageBuilder\Model\Catalog\Sorting\SimpleOption">
183183
<arguments>
184184
<argument name="label" xsi:type="string">SKU: descending</argument>
185185
<argument name="sortDirection" xsi:type="const">\Magento\Framework\DB\Select::SQL_DESC</argument>
186-
<argument name="attribute_field" xsi:type="string">sku</argument>
186+
<argument name="attributeField" xsi:type="string">sku</argument>
187187
</arguments>
188188
</virtualType>
189-
<virtualType name="Magento\PageBuilder\Model\Catalog\Sorting\Stock\Ascending" type="Magento\PageBuilder\Model\Catalog\Sorting\Stock">
189+
<virtualType name="Magento\PageBuilder\Model\Catalog\Sorting\Stock\Ascending" type="Magento\PageBuilder\Model\Catalog\Sorting\SimpleOption">
190190
<arguments>
191191
<argument name="label" xsi:type="string">Stock: low stock first</argument>
192192
<argument name="sortDirection" xsi:type="const">\Magento\Framework\DB\Select::SQL_ASC</argument>
193+
<argument name="attributeField" xsi:type="string">quantity_and_stock_status</argument>
193194
</arguments>
194195
</virtualType>
195-
<virtualType name="Magento\PageBuilder\Model\Catalog\Sorting\Stock\Descending" type="Magento\PageBuilder\Model\Catalog\Sorting\Stock">
196+
<virtualType name="Magento\PageBuilder\Model\Catalog\Sorting\Stock\Descending" type="Magento\PageBuilder\Model\Catalog\Sorting\SimpleOption">
196197
<arguments>
197198
<argument name="label" xsi:type="string">Stock: high stock first</argument>
198199
<argument name="sortDirection" xsi:type="const">\Magento\Framework\DB\Select::SQL_DESC</argument>
200+
<argument name="attributeField" xsi:type="string">quantity_and_stock_status</argument>
199201
</arguments>
200202
</virtualType>
201-
<virtualType name="Magento\PageBuilder\Model\Catalog\Sorting\Price\HighToLow" type="Magento\PageBuilder\Model\Catalog\Sorting\Price">
203+
<virtualType name="Magento\PageBuilder\Model\Catalog\Sorting\Price\HighToLow" type="Magento\PageBuilder\Model\Catalog\Sorting\SimpleOption">
202204
<arguments>
203205
<argument name="label" xsi:type="string">Price: high to low</argument>
204206
<argument name="sortDirection" xsi:type="const">\Magento\Framework\DB\Select::SQL_DESC</argument>
207+
<argument name="attributeField" xsi:type="string">price</argument>
205208
</arguments>
206209
</virtualType>
207-
<virtualType name="Magento\PageBuilder\Model\Catalog\Sorting\Price\LowToHigh" type="Magento\PageBuilder\Model\Catalog\Sorting\Price">
210+
<virtualType name="Magento\PageBuilder\Model\Catalog\Sorting\Price\LowToHigh" type="Magento\PageBuilder\Model\Catalog\Sorting\SimpleOption">
208211
<arguments>
209212
<argument name="label" xsi:type="string">Price: low to high</argument>
210213
<argument name="sortDirection" xsi:type="const">\Magento\Framework\DB\Select::SQL_ASC</argument>
214+
<argument name="attributeField" xsi:type="string">price</argument>
211215
</arguments>
212216
</virtualType>
213217
<type name="Magento\PageBuilder\Model\Catalog\Sorting">

0 commit comments

Comments
 (0)