Этот код получает все торговые предложения, цены и остатки для указанного ID товара через параметр PRODUCT_ID и возвращает данные в формате JSON.
| Код |
|---|
<?php
require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php");
use Bitrix\Main\Loader;
use Bitrix\Catalog\PriceTable;
use Bitrix\Catalog\StoreProductTable;
if (Loader::includeModule("catalog") && Loader::includeModule("iblock")) {
$productId = (int)$_GET['PRODUCT_ID'];
$result = [];
if ($productId > 0) {
$offers = CCatalogSKU::getOffersList($productId, 0, [], ['ID', 'NAME']);
foreach ($offers[$productId] as $offer) {
$price = PriceTable::getList([
'filter' => ['PRODUCT_ID' => $offer['ID']],
'select' => ['PRICE']
])->fetch();
$stock = StoreProductTable::getList([
'filter' => ['PRODUCT_ID' => $offer['ID']],
'select' => ['AMOUNT']
])->fetch();
$result[] = [
'ID' => $offer['ID'],
'NAME' => $offer['NAME'],
'PRICE' => $price['PRICE'] ?? 0,
'STOCK' => $stock['AMOUNT'] ?? 0
];
}
}
header('Content-Type: application/json');
echo json_encode($result);
}
?> |