Меню
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";
    }
}
Читают тему
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить файлы
 
Поблагодарить и поддержать:
Или подписаться на boosty канал: Видео на Bst

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

Вывести информацию, только на первом уровне раздела каталога, в 1С-Битрикс

Задача: на сайте, в каталоге, выводится два фильтра - боковой и верхний. Оба компонента подключены в файле section.php к...

Создать pdf файл из элемента инфоблока, дать скачать пользователю, поддерживать в актуальном состоянии или отправить на e-mail.

Задача: при каждом посещении статьи, на сайте, нужно создавать pdf файл с ее содержимым и записывать в свойство инфоблок...

Список новостей с автопрокруткой через overflow:scroll

Простенький javascript позволит сделать автопрокрутку в шаблоне списка новостей. Достаточно актуально для новостных сайт...

Дать пользователю возможность быстро отредактировать материал

На одном из разрабатываемых сайтов, пользователи формируют его контент. После регистрации, становится доступен персональ...

Отфильтровать товары бренда и вывести по разделам каталога

Задача: на странице бренда, который выводится компонентом новостей, нужно показать все товары этого бренда из каталога. ...

Проверка на наличие элементов, текущего пользователя, в заданном инфоблоке.

Если стоит задача, определить наличие элементов созданных пользователем на сайте. Можно воспользоваться API: CUser и CIB...

Как работает система сертификации партнеров 1С-Битрикс, уровни партнеров и специалистов

Сертификация от «1С-Битрикс» – это объективная оценка знаний и практических навыков разработки проектов на платформе от ...

Получить все товары из всех заказов пользователя. История купленных товаров.

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

Работа с HTTP-запросами в Bitrix: Обзор возможностей класса \Bitrix\Main\HttpRequest

Класс \Bitrix\Main\HttpRequest, является наследником класса Request, представляет собой мощный инструмент для работы с д...