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

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

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

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

Вообще, про возможность добавления своих полей в печатные формы достаточно много ответов в интернете. 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С, из свойств элемента и... Просмотров: 11883 Если Ваш интернет-магазин интегрирован с 1С, скорее всего столкнулись с такой проблемой: 1... Настройка обмена между 1С:Предприятие и магазином на "1С-Битрикс24: И... Просмотров: 3462 В этой заметке расскажу как настроить синхронизацию между 1С:предприятие и "1С-Битрикс24: ... Установить остатки товара на складе из доступных остатков. Просмотров: 6266 Задача, заполнить остатки товаров, в 1С-Битрикс, из параметра "Доступное количество". Автоматически отгрузить заказ и сменить статус отгрузки, при выполнен... Просмотров: 975 Проблема: Заказы, на сайте, обрабатываются только в 1С. При этом 1С не работает с отгрузка... Ускорение работы сайта на 1С-Битрикс Просмотров: 17806 Данная статья написана специально под видеоролик (приложен в конце статьи), опубликованный... Автоматическая загрузка каталогов из csv файлов в Битрикс Просмотров: 11828 Если требуется настроить автоматический импорт каталогов из csv файлов, от поставщиков. В... Time Capsule на Windows 10. Хранение бекапов Time Machine на компьюте... Просмотров: 7926 Заметку написал скорее для себя, что бы собрать все в одну кучу. Написана на базе нескольк... Отфильтровать новости в Битрикс за заданный период Просмотров: 16728 Иногда, нужно отфильтровать элементы (новости например) по дате в Битрикс, с помощью компо... Отфильтровать товары бренда и вывести по разделам каталога Просмотров: 1660 Задача: на странице бренда, который выводится компонентом новостей, нужно показать все тов... Связанные элементы в карточке товара, с помощью catalog.section Просмотров: 15800 Достаточно часто, при разработке магазинов на битрикс, требуется выводить связанные элемен... XML в формате Commerce ML-2, города России и Мира, для выгрузки в инф... Просмотров: 6976 Подвернулась задачка, создать инфоблок для Битрикс, в котором будут просто города России и... Прятать или показывать описание раздела каталога Просмотров: 1066 В новых компонентах и шаблонах catalog.section есть не документированный и не выводимый па... Вывести свойство привязка к Яндекс Картам в Битрикс Просмотров: 19476 Часто бывает нужно вывести свойство привязка к Яндекс карте в детальном описании элемента... Ленивая подгрузка картинок в компоненте, на vue js Битрикс Просмотров: 10376 Если на одну страницу сайта выводится большое количество картинок, которые могут долго под... Использование WebP изображений в 1С-Битрикс (на Битрикс: Веб окружени... Просмотров: 28200 WebP это современный формат сжатия изображений, который позволяет, при правильных настройк... Автоматически помечаем новинки лейблом в каталоге битрикс Просмотров: 6030 Если вы хотите помечать новинки каталога, вашего магазина на Битрикс, лейблом "Новинка". И... Добавление своих полей в почтовые шаблоны Битрикс Просмотров: 45851 Иногда нужно внести свои поля в почтовые шаблоны битрикс. Например: добавить имя и номе... Заполнить картинки разделов каталога из картинок товаров Просмотров: 966 Задача: в каталоге, разделы и подразделы выводятся в виде плитки над товарами, с картинкам... Добавление в избранное или отложенные, на AJAX из карточки товара Просмотров: 29256 В этой заметке рассакажу как добавлять товары в "Отложенные", для иммитации функционала "И... Самодельная форма добавления элемента на API Битрикс Просмотров: 45380 Компонент iblock.element.add.form написан таким образом, что вы не сможете (не попотев изр...