Skip to content

Commit e934df6

Browse files
committed
Merge remote-tracking branch 'magento-l3/ACP2E-331' into L3_PR_21-12-13
2 parents df5a306 + 1838951 commit e934df6

File tree

3 files changed

+27
-19
lines changed

3 files changed

+27
-19
lines changed

app/code/Magento/Catalog/Model/Api/SearchCriteria/CollectionProcessor/ConditionProcessor/ProductCategoryCondition.php

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
use Magento\Framework\Api\SearchCriteria\CollectionProcessor\ConditionProcessor\CustomConditionInterface;
1111
use Magento\Catalog\Model\ResourceModel\Product\Collection;
1212
use Magento\Framework\Api\Filter;
13-
use Magento\Framework\Data\Collection\AbstractDb;
1413
use Magento\Framework\Exception\NoSuchEntityException as CategoryDoesNotExistException;
1514

1615
/**
@@ -63,12 +62,12 @@ public function build(Filter $filter): string
6362
)->where(
6463
$this->resourceConnection->getConnection()->prepareSqlCondition(
6564
'cat.category_id',
66-
[$this->mapConditionType($filter->getConditionType()) => $this->getCategoryIds($filter)]
65+
['in' => $this->getCategoryIds($filter)]
6766
)
6867
);
6968

7069
$selectCondition = [
71-
'in' => $categorySelect
70+
$this->mapConditionType($filter->getConditionType()) => $categorySelect
7271
];
7372

7473
return $this->resourceConnection->getConnection()
@@ -116,12 +115,7 @@ private function getCategoryIds(Filter $filter): array
116115
*/
117116
private function mapConditionType(string $conditionType): string
118117
{
119-
$conditionsMap = [
120-
'eq' => 'in',
121-
'neq' => 'nin',
122-
'like' => 'in',
123-
'nlike' => 'nin',
124-
];
125-
return $conditionsMap[$conditionType] ?? $conditionType;
118+
$ninConditions = ['nin', 'neq', 'nlike'];
119+
return in_array($conditionType, $ninConditions, true) ? 'nin' : 'in';
126120
}
127121
}

dev/tests/integration/testsuite/Magento/CatalogRule/Model/ResourceModel/Product/ConditionsToCollectionApplierTest.php

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,8 @@ private function conditionProvider()
247247
'simple-product-9',
248248
'simple-product-10',
249249
'simple-product-11',
250-
'simple-product-12'
250+
'simple-product-12',
251+
'simple-product-13',
251252
]
252253
],
253254

@@ -272,7 +273,8 @@ private function conditionProvider()
272273
'simple-product-9',
273274
'simple-product-10',
274275
'simple-product-11',
275-
'simple-product-12'
276+
'simple-product-12',
277+
'simple-product-13',
276278
]
277279
],
278280

@@ -386,7 +388,8 @@ private function conditionProvider()
386388
'simple-product-9',
387389
'simple-product-10',
388390
'simple-product-11',
389-
'simple-product-12'
391+
'simple-product-12',
392+
'simple-product-13',
390393
]
391394
],
392395

@@ -416,20 +419,18 @@ private function conditionProvider()
416419
'simple-product-9',
417420
'simple-product-10',
418421
'simple-product-11',
419-
'simple-product-12'
422+
'simple-product-12',
423+
'simple-product-13',
420424
]
421425
],
422426

423427
// test filter for case "If ALL/ANY of these conditions are FALSE" with multiple levels
424428
'variation 22' => [
425429
'condition' => $this->getConditionsForVariation22(),
426430
'expected-sku' => [
427-
'simple-product-1',
428-
'simple-product-2',
429-
'simple-product-3',
430-
'simple-product-4',
431431
'simple-product-7',
432-
'simple-product-8'
432+
'simple-product-8',
433+
'simple-product-13',
433434
]
434435
],
435436
];

dev/tests/integration/testsuite/Magento/CatalogRule/_files/conditions_to_collection/products.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,19 @@
173173
'qty' => 42,
174174
'categories' => ['Category 1.1.1'],
175175
],
176+
[
177+
'type-id' => 'simple',
178+
'attribute-set-id' => $attributeSetGuardians->getId(),
179+
'website-ids' => [1],
180+
'name' => 'Simple Product 13',
181+
'sku' => 'simple-product-13',
182+
'price' => 10,
183+
'visibility' => \Magento\Catalog\Model\Product\Visibility::VISIBILITY_BOTH,
184+
'status' => \Magento\Catalog\Model\Product\Attribute\Source\Status::STATUS_ENABLED,
185+
'stock-data' => ['use_config_manage_stock' => 1, 'qty' => 22, 'is_in_stock' => 1],
186+
'qty' => 42,
187+
'categories' => [],
188+
],
176189
];
177190

178191
foreach ($productsData as $productData) {

0 commit comments

Comments
 (0)