Как можно вручную получить ставку НДС для товара в системе Битрикс?

Как можно получить ставку НДС для товара в Битриксе? Или, если это невозможно, как получить общую ставку НДС для всего магазина?
  • 18 октября 2023 г. 9:09
Ответы на вопрос 2
Для получения ставки НДС для товара в системе Битрикс можно использовать следующий код на стороне сервера:

```php
$productID = 123; // ID товара
$priceType = CCatalogGroup::GetBaseGroup(); // тип цены, для которого нужно получить ставку НДС

if (CModule::IncludeModule('catalog')) {
    $productInfo = CCatalogProduct::GetByID($productID);
    $priceInfo = CPrice::GetBasePrice($productID, $priceType['ID']);

    if ($productInfo && $priceInfo) {
        $vatID = $productInfo['VAT_ID'];

        if ($vatID > 0) {
            $vatRate = CCatalogVat::GetByID($vatID)['RATE'];
            $vatRateFormatted = number_format($vatRate * 100, 2, '.', '');

            echo "Ставка НДС для товара: " . $vatRateFormatted . "%";
        } else {
            echo "Товар не облагается НДС";
        }
    }
}
```

Для получения общей ставки НДС для всего магазина в системе Битрикс можно использовать следующий код:

```php
if (CModule::IncludeModule('catalog')) {
    $vatRate = CCatalogVat::GetByID(COption::GetOptionString('catalog', 'sale_vat', 0))['RATE'];
    $vatRateFormatted = number_format($vatRate * 100, 2, '.', '');

    echo "Общая ставка НДС для магазина: " . $vatRateFormatted . "%";
}
```

Оба кода предполагают, что модуль "Торговый каталог" (catalog) уже подключен.
Добрый день! Можно попробовать так: 

$product = Bitrix\Catalog\Model\Product::getList(array(
    "filter" => array("ID" => $arItem["ID"])
))->Fetch();

if ($product["VAT_ID"]) {
    $arVat = Bitrix\Catalog\VatTable::getById($product["VAT_ID"])->Fetch();

    echo '<pre>';
    print_r($arVat);
    echo  '</pre>';
    exit;
}
Похожие вопросы