Телеграм: @camouf_ru Почта: mihail@bazarow.ru

Вывести артикул в печатную форму бланка заказа

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

Задача: в печатную форму бланка заказа добавить артикулы товаров и данные о пользователе.

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

Вывести артикул в печатную форму бланка заказа

Расширяем данные в печатной форме

Мне нужно добавить, в печатную форму:

  • Данные о покупателе: адрес доставки
  • Вывести службу доставки с ценой доставки.
  • Артикулы каждого товара

Копируем файл order_form.php, который находится по пути /bitrix/modules/sale/ru/reports/, в папку /bitrix/admin/reports/

Собственно, в этом файле полностью работает API битрикс и с помощью запросов к getList можно получить любые данные. Дальше, просто вверстываем их таблицу, обычную html табилицу - которая размазана по этому файлу

$order = \Bitrix\Sale\Order::load($arOrder['ID']);
$collection = $order->getPropertyCollection();
$dbRes = \Bitrix\Sale\PropertyValueCollection::getList([
    'select' => ['VALUE', 'CODE', 'NAME'],
    'filter' => [
            '=ORDER_ID' => $arOrder['ID']
    ]
]);
while ($item = $dbRes->fetch()){
    if (
        ($item['CODE'] == 'REGION') or
        ($item['CODE'] == 'CITY') or
        ($item['CODE'] == 'STREET') or
        ($item['CODE'] == 'HOME') or
        ($item['CODE'] == 'kvartira_ofis')
    ) {
        $fullAdress += $item['NAME'] . ': '. $item['VALUE'] . '.';
    }
}
$arDeliv = CSaleDelivery::GetByID($arOrder['DELIVERY_ID']);
if ($arDeliv) {
    $deliveryInfo = $arDeliv["NAME"]." - стоит ".CurrencyFormat($arDeliv["PRICE"], $arDeliv["CURRENCY"]);
}

Этот код размещаем, где-нибудь вверху файла. И дальше, в нужным местах таблицы используем переменные:

  • $fullAdress - адрес доставки, собранный из свойств заказа.
  • $deliveryInfo - выбранная доставка и ее цена.

Добавляем артикул в бланк заказа

В том месте, где хотим вывести артикул каждого товара, добавляем новую ячейку таблицы и с помощью CIBlockElement::GetProperty получаем артикул товара. В моем случае, артикул хранится в свойстве CML2_ARTICLE. Девятка- это ID инфоблока каталога.

$db_props = CIBlockElement::GetProperty(
    9,
    $arBasket['PRODUCT_ID'], 
    array(
        "sort" => "asc"
    ), 
    array(
        "CODE"=>"CML2_ARTICLE"
    )
);
if($ar_props = $db_props->Fetch()) {
    echo $ar_props['VALUE'];
}

В общем-то и все. Бланк станет доступен в печати заказа

Михаил Базаров 06.11.2022
Готовый файл order_form.php, для большей наглядности, во вложении
http://bazarow.ru/upload/fo_all/order_form.php.zip

Записная книжка разработчика

Примерно с 2013-го года пишу заметки по разработке сайтов на Битрикс.
Вы можете задавать уточняющие вопросы в комментариях- отвечаю или дополняю заметки по возможности.

Вывести информацию, только на первом уровне раздела каталога, в 1С-Би... Просмотров: 4253 Задача: на сайте, в каталоге, выводится два фильтра - боковой и верхний. Оба компонента по... Следующая/предыдущая новость/статья при просмотре подробной в Битрикс Просмотров: 17541 Дизайн создается только для наглядного и удобного предоставления содержимого сайта, пользо... Оптимизация jpeg и png картинок на cron, с помощью jpegoptim и optipn... Просмотров: 911 Задача: на сайт каждый день проходит выгрузка из 1С с обновлением картинок. Нужно оптимиз... Картинка торгового предложения вместо иконки цвета, в выборе SKU Просмотров: 270 Задача: вместо не информативных иконок цветов нужно вывести детальную картинку торгового п... Отфильтровать новости в Битрикс за заданный период Просмотров: 15590 Иногда, нужно отфильтровать элементы (новости например) по дате в Битрикс, с помощью компо... Смена вида карточек товаров в catalog.section с иммитацией AJAX Просмотров: 818 Смену вида карточек товаров, в разделе каталога, можно реализовать с помощью сессии, запис... Denwer c PHP 7.1.8 и MYSQL 5.7 оптимизированный для Битрикс Просмотров: 29517 В последнее время, все чаще приходиться работать на Windows, хотя и не люблю эту ОС- с точ... Почтовое событие на создание нового элемента инфоблока, через API Просмотров: 14341 Иногда при разработке сайта требуется реализовать функционал добавления элементов инфоблок... Вывести все товары, с постраничной навигацией, из всех разделов инфоб... Просмотров: 28421 По сути, эта заметка, небольшой лайфхак. Достаточно часто нужно, в корне каталога, в ТОП-е... Установка веб-сервера LAMP на ubuntu 20.04 LTS, оптимизированный под ... Просмотров: 11425 В последнее время, плотно пересел c macOS на ubuntu, и решил настроить себе полноценное ра... Помечаем новинки лейблом в каталоге битрикс Просмотров: 20036 Достаточно часто, при разработке каталога товаров или интернет магазина на системе управле... Изменить размер картинок на лету в битрикс Просмотров: 46794 Встала задачка: на собственном сайте, уменьшить размер превьюшек картинок у анонсов раздел... Глобальные фильтры на всякие случаи жизни Просмотров: 44563 Глобальный фильтр, нужен чаще всего, для вывода определенных элементов, из общего массива... Цвета торговых предложений из Highload инфоблоков в списке товаров Просмотров: 14086 Подвернулся на доработку очень старый сайт, работал еще на 11-ой версии Битрикс. Выполнили... Добавление своих полей в почтовые шаблоны Битрикс Просмотров: 43635 Иногда нужно внести свои поля в почтовые шаблоны битрикс. Например: добавить имя и номе... Дать пользователю возможность быстро отредактировать материал Просмотров: 4365 На одном из разрабатываемых сайтов, пользователи формирую его контент. После регистрации, ... Менять большую картинку, при клике на маленькую, в детальной карточке Просмотров: 1764 Мини скриптик, может кому пригодится для каталога товаров или новостей при использовании д... Данные о текущем разделе каталога вывести в section.php Просмотров: 3115 Если нужно получить какие-то данные о текущем разделе, которых нет в изначальном массиве, ... Привязка к разделам в компоненте "Добавления элементов пользователем" Просмотров: 12061 В системе управления 1С Битрикс есть компонент "Форма добавления / редактирования" - котор... Пункты меню из разделов инфоблока Битрикс Просмотров: 90688 В принципе это стандартная возможность системы управления битрикс, но почему-то часто спра...