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

Просмотров: 3165

Веб-разработка часто требует работы с базой данных для получения и обработки информации о товарах, в том числе и их цен. В 1С-Битрикс это можно сделать с помощью Object-Relational Mapping (ORM) и соответствующих классов.

Использование ORM для получения цен товаров в 1С-Битрикс

Один из основных компонентов 1С-Битрикс для работы с товарами и каталогами – это модуль каталога (catalog). В этом модуле предоставляются удобные средства для работы с товарами, их свойствами и ценами. Давайте рассмотрим пример использования ORM для получения цен товаров из каталога.

Шаг 1: Подключение необходимых модулей

Прежде всего, необходимо подключить модуль catalog и, возможно, другие модули, которые могут понадобиться для работы с каталогом товаров. Для этого мы используем класс Bitrix\Main\Loader, который позволяет динамически подключать модули в коде.

use Bitrix\Catalog\PriceTable;
use Bitrix\Main\Loader;
Loader::includeModule('catalog');

Шаг 2: Получение цен товаров с помощью ORM

После подключения модуля catalog мы можем использовать класс PriceTable для получения цен товаров из базы данных. Метод getList позволяет получить список цен с определенными условиями.

$prices = PriceTable::getList([
    'select' => [
        'ID',
        'PRODUCT_ID',
        'CATALOG_GROUP_ID',
        'PRICE',
        'CURRENCY'
    ],
    'order' => [
        'PRODUCT_ID' => 'ASC'
    ]
]);

В этом запросе мы указываем, какие поля нам нужны (ID, PRODUCT_ID, CATALOG_GROUP_ID, PRICE, CURRENCY) и как упорядочить результаты (по PRODUCT_ID в порядке возрастания).

Шаг 3: Обработка результатов

Полученные данные можно обрабатывать в цикле, например, выводить на страницу в удобном формате.

while ($price = $prices->fetch()) {
    print_r($price); // Распечатка всех полученных данных
}

Этот код выводит информацию о ценах товаров в формате массива. Вы можете адаптировать его под свои нужды, например, формировать HTML-разметку для вывода на странице или использовать полученные данные для дальнейших вычислений или операций.

Получение цен через API - код целиком

require_once($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php');
use Bitrix\Catalog\PriceTable;
use Bitrix\Main\Loader;

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

while ($price = $prices->fetch()) {
    print_r($price);
}

require_once($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/epilog_after.php');

Стоимость разработки на 1С-Битрикс:

Индивидуальная разработка магазина

от 500 000 руб. от 6-ти недель

Разработка магазина на 1С-Битрикс с нуля. Дизайн, сборка и оптимизация производительности под конкретный проект и требования. Реализация любого функционала без ограничений готовых решений.

Запуск сайта на готовом решении

от 150 000 руб. от 7-ми дней

Вариант для тех, кто не хочет тратить много средств на индивидуальный проект, и не имеет серьезных требований к сайту. Магазин, быстро запускается на базе одного из 200-та готовых решений.

Мобильное приложение

от 500 000 руб. от 1-го месяца

Разработка кроссплатформенного мобильного приложения, которое не уступает нативным решениям как в производительности, так и пользовательском опыте. Публикуется в AppStore, GooglePlay и RuStore

Сайт компании

от 350 000 руб. от 1-го месяца

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

Инфресурс

от 400 000 руб. от 5-ти недель

Информационный ресурс любой сложности. Сайт для СМИ, городской портал или многопользовательская доска объявлений. Внутренние форумы, блоги- по необходимости.

Лечение сайтов от вирусов

от 40 000 руб. от 2-х дней

Выполню полную проверку сайта и окружения. В случае обнаружения вирусов проведу полный комплекс лечения проекта и закрытия лазеек.