Magento Extensions Rating 2024
EXTENSIONS BY CATEGORY
B2B (Business-To-Business)
Blog
Customer
ERP (Enterprise Resource Planning)
Mega Menu
One Step Checkout
Order
POS (Point Of Sale)
Search
Shopping Cart
Sitemap
SEO
Social
Stock & Inventory Management
EXTENSIONS BY DEVELOPER
aheadWorks
Amasty
Boost My Shop
BSS Commerce
Magestore
MageWorx
Mirasvit
Templates Master
Wyomind
XTENTO
Magento 2 Documentation
Magento 2 Documentation
2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
vendor
magento
module-catalog
Model
Api
SearchCriteria
CollectionProcessor
ConditionProcessor
ConditionBuilder
NativeAttributeCondition.php
Go to the documentation of this file.
1
<?php
6
declare(strict_types=1);
7
8
namespace
Magento\Catalog\Model\Api\SearchCriteria\CollectionProcessor\ConditionProcessor\ConditionBuilder
;
9
10
use
Magento\Catalog\Api\Data\ProductInterface
;
11
use
Magento\Framework\Api\SearchCriteria\CollectionProcessor\ConditionProcessor\CustomConditionInterface
;
12
use
Magento\Framework\Api\Filter
;
13
use
Magento\Catalog\Model\ResourceModel\Product\Collection
;
14
20
class
NativeAttributeCondition
implements
CustomConditionInterface
21
{
25
private
$resourceConnection;
26
30
public
function
__construct
(
31
\
Magento
\Framework\
App
\ResourceConnection $resourceConnection
32
) {
33
$this->resourceConnection =
$resourceConnection
;
34
}
35
44
public
function
build
(
Filter
$filter): string
45
{
46
$conditionType = $this->mapConditionType($filter->
getConditionType
(), $filter->
getField
());
47
$conditionValue = $this->mapConditionValue($conditionType, $filter->
getValue
());
48
49
return
$this->resourceConnection
50
->getConnection()
51
->prepareSqlCondition(
52
Collection::MAIN_TABLE_ALIAS
.
'.'
. $filter->
getField
(),
53
[
54
$conditionType => $conditionValue
55
]
56
);
57
}
58
66
private
function
mapConditionType(
string
$conditionType,
string
$field): string
67
{
68
if
(strtolower($field) ===
ProductInterface::SKU
) {
69
$conditionsMap = [
70
'eq'
=>
'like'
,
71
'neq'
=>
'nlike'
72
];
73
}
else
{
74
$conditionsMap = [
75
'eq'
=>
'in'
,
76
'neq'
=>
'nin'
77
];
78
}
79
80
return
$conditionsMap[$conditionType] ?? $conditionType;
81
}
82
90
private
function
mapConditionValue(
string
$conditionType,
string
$conditionValue): string
91
{
92
$conditionsMap = [
'like'
,
'nlike'
];
93
94
if
(in_array($conditionType, $conditionsMap)) {
95
$conditionValue =
'%'
. $conditionValue .
'%'
;
96
}
97
98
return
$conditionValue;
99
}
100
}
Magento\Catalog\Model\ResourceModel\Product\Collection
Definition:
ProductLimitation.php:6
Magento\Framework\App
Magento\Framework\Api\Filter
Definition:
Filter.php:18
Magento\Catalog\Model\ResourceModel\Product\Collection\MAIN_TABLE_ALIAS
const MAIN_TABLE_ALIAS
Definition:
Collection.php:46
Magento\Catalog\Model\Api\SearchCriteria\CollectionProcessor\ConditionProcessor\ConditionBuilder\NativeAttributeCondition\__construct
__construct(\Magento\Framework\App\ResourceConnection $resourceConnection)
Definition:
NativeAttributeCondition.php:30
Magento\Framework\Api\Filter\getConditionType
getConditionType()
Definition:
Filter.php:74
Magento\Catalog\Model\Api\SearchCriteria\CollectionProcessor\ConditionProcessor\ConditionBuilder\NativeAttributeCondition
Definition:
NativeAttributeCondition.php:20
Magento\Catalog\Api\Data\ProductInterface\SKU
const SKU
Definition:
ProductInterface.php:19
Magento\Framework\Api\SearchCriteria\CollectionProcessor\ConditionProcessor\CustomConditionInterface
Definition:
CustomConditionInterface.php:27
Magento\Framework\Api\Filter\getValue
getValue()
Definition:
Filter.php:53
Magento
Magento\Catalog\Model\Api\SearchCriteria\CollectionProcessor\ConditionProcessor\ConditionBuilder
Definition:
EavAttributeCondition.php:8
$resourceConnection
$resourceConnection
Definition:
website_attribute_sync.php:32
Magento\Framework\Api\Filter\getField
getField()
Definition:
Filter.php:32
Magento\Catalog\Model\Api\SearchCriteria\CollectionProcessor\ConditionProcessor\ConditionBuilder\NativeAttributeCondition\build
build(Filter $filter)
Definition:
NativeAttributeCondition.php:44
Magento\Catalog\Api\Data\ProductInterface
Definition:
ProductInterface.php:14