Меню
RSS
Получить цены товаров с помощью D7-ORM в 1С-Битрикс
 
Получить цены товаров с помощью D7-ORM в 1С-Битрикс

Веб-разработка часто требует работы с базой данных для получения и обработки информации о товарах, в том числе и их
цен. В 1С-Битрикс это можно сделать с помощью Object-Relational Mapping (ORM) и соответствующих классов.
 
Код из заметки выведет вообще все товары которые есть в системе, из всех инфоблоков.
Что бы получить из конкретного инфоблока нужно добавить дополнительную фильтрацию в метод.
Изменено: Михаил Базаров - 03.02.2024 18:49:28
 
А как получить цены с учетом скидок?
 
Алмаз, перейти на symfony
 
Или
Код
require_once($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php');

use Bitrix\Catalog\PriceTable;
use Bitrix\Main\Loader;
use Bitrix\Catalog\ProductTable;
use Bitrix\Catalog\Discount\DiscountManager;

Loader::includeModule('catalog');

// Получаем товары и их цены
$prices = PriceTable::getList([
    'select' => [
        'ID',
        'PRODUCT_ID',
        'CATALOG_GROUP_ID',
        'PRICE',
        'CURRENCY'
    ],
    'order' => [
        'PRODUCT_ID' => 'ASC'
    ]
]);

while ($price = $prices->fetch()) {
    // Получаем информацию о продукте
    $product = ProductTable::getById($price['PRODUCT_ID'])->fetch();

    // Получаем оптимальную цену с учетом скидок
    $optimalPrice = \CCatalogProduct::GetOptimalPrice(
        $price['PRODUCT_ID'],
        1, // количество
        [], // группы пользователей
        'N', // не учитывать скидки
        [$price], // массив цен
        's1', // сайт
        []
    );

    // Если есть оптимальная цена, выводим ее
    if ($optimalPrice) {
        echo "Product ID: " . $price['PRODUCT_ID'] . "\n";
        echo "Base Price: " . $price['PRICE'] . " " . $price['CURRENCY'] . "\n";
        echo "Discounted Price: " . $optimalPrice['RESULT_PRICE']['DISCOUNT_PRICE'] . " " . $optimalPrice['RESULT_PRICE']['CURRENCY'] . "\n";
        echo "Discount: " . $optimalPrice['RESULT_PRICE']['DISCOUNT'] . "\n";
        echo "--------------------------\n";
    }
}
Читают тему
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить файлы
 

Блог-note: заметки разработчика

Отсортировать предложения по цене в каталоге 1С-Битрикс

Задача: в 1С-Битрикс есть настройка для вывода предложений по стоимости, но она не функционирует должным образом. Необхо...

Установка Битрикс24 "Интернет-Магазин + CRM" на один домен и настройка работы почты.

Задача: установить лицензию "Интернет-Магазин + CRM" на один домен. Что бы crm была доступна по адресу crm...

FTP доступ на Виртуальной машине Битрикс

Бывает что нужно открыть FTP доступ к заранее известной папке на сайте под управлением 1С Битрикс, который работает на в...

Автоматическое создание подразделов в инфоблоке при добавлении раздела: реализация события OnAfterIBlockSectionAdd

Задача: когда контент-менеджер создает раздел в инфоблоке, необходимо автоматически создавать подразделы с заранее задан...

Настройка обмена между 1С:Предприятие и магазином на "1С-Битрикс24: Интернет-магазин + CRM" по REST протоколу

В этой заметке расскажу как настроить синхронизацию между 1С:предприятие и "1С-Битрикс24: Интернет-магазин + CR...

Композитный сайт на 1С-Битрикс

Для новых клиентов: Все новые проекты будут включать в себя применение технологии "Композитный сайт" - данная услуга уже...

Постраничная навигация в списке разделов Битрикс- catalog.section.list

Если в магазине очень много разделов и хочется вывести их с постраничной навигацией: можно воспользоваться методами CDBR...

Сниппеты типографики bootstrap, для Битрикс

Если вы подключили bootstrap к своему сайту, или сверстали весь шаблон, подключив bootstrap из ядра битрикс. Имеет смысл...

Не дать купить товара больше, чем находится на определенных складах

Задача: в магазине 20 складов, на всех есть остатки но нужно ограничить покупку товара только остатками на двух складах,...