Как в Битрикс отфильтровать элементы по артикулу?

Есть массив артикулов.
"128806", "145267", "103748", "124208", "128804", "128805", "147683", "124201", "125533", "128801", "115858", "133042"

Нужно понять сколько их на складе и когда они обновлены.

Не пойму через что искать. По ID найти проблемы нет
$amount = \Bitrix\Catalog\StoreProductTable::getList([
        'filter' => [
            'PRODUCT_ID' => $request['offerId']
        ]
    ])->fetchAll();


Не пойму как искать по артикулу не зная ID товара.
Куда думать то?
  • Вопрос задан
  • 241 просмотр
Решения вопроса 1
@PetrPo
use Bitrix\Iblock\ElementPropertyTable;
use Bitrix\Main\ORM\Fields\Relations\Reference;
use Bitrix\Main\ORM\Query\Join;

\Bitrix\Main\Loader::includeModule('catalog');

$propertyId = 20;
$propertyValue = ['188-12-07'];

$result = \Bitrix\Catalog\StoreProductTable::getList([
	'filter' => [
		'ELEMENT_PROPERTIES.IBLOCK_PROPERTY_ID' => $propertyId,
		'ELEMENT_PROPERTIES.VALUE' => $propertyValue,
	],
	'runtime' => [
		new Reference('ELEMENT_PROPERTIES', ElementPropertyTable::class, Join::on('this.PRODUCT_ID', 'ref.IBLOCK_ELEMENT_ID'))
	]
])->fetchAll();

print_r($result);


Если точно известно, что значения свойства артикул и других не совпадают, можно не передавать
'ELEMENT_PROPERTIES.IBLOCK_PROPERTY_ID' => $propertyId,
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы