Йо-йо! Недавно мне нужно было реализовать нестандартный шаблон бланка заказа. Видимо он был нужен для печати заказа и набора товара. Чтобы это было удобнее делать, в шаблоне нужны картинки товара. Итак, сейчас я расскажу как сделать пользовательский шаблон бланка заказа в битрике.
Сначала нам нужно сделать так, чтобы у нас был собственный файл с шаблоном, в котором мы будем вносить правки. Для этого из папки /bitrix/modules/sale/reports/ в папку /bitrix/admin/reports/
копируем нужный нам шаблон, в моём случае это order_form.php. В некоторых сборках битрикса изначальный шаблон может лежать в другой папке, а в /bitrix/modules/sale/reports/ он будет только подключаться. Так что будьте внимательны.
В этом шаблоне в различных переменных не хранятся все данные, которые нам нужны. Так что нам нужно будет их получить. Внутри шаблона есть строки:
//определяем начальную цену $item_price = $b_AMOUNT; if(DoubleVal($arBasket["VAT_RATE"]) > 0) { $nds_val = ($b_AMOUNT - DoubleVal($b_AMOUNT/(1+$arBasket["VAT_RATE"]))); $item_price = $b_AMOUNT - $nds_val; $taxRate = $arBasket["VAT_RATE"]*100; } elseif(!$bUseVat) { $basket_tax = CSaleOrderTax::CountTaxes($b_AMOUNT*$arQuantities[$i], $arTaxList, $arOrder["CURRENCY"]); for ($mi = 0, $countTaxList = count($arTaxList); $mi < $countTaxList; $mi++) { if ($arTaxList[$mi]["IS_IN_PRICE"] == "Y") { $item_price -= $arTaxList[$mi]["TAX_VAL"]; } $nds_val += DoubleVal($arTaxList[$mi]["TAX_VAL"]); $taxRate += ($arTaxList[$mi]["VALUE"]); } }
Поле их нужно получить данные, которые дальше будем использовать:
// Получаем данные инфоблока для элемента по ID $c_CIBlockElement = CIBlockElement::GetByID($arBasket['PRODUCT_ID'])->GetNextElement(); $detailPictureId = ''; // ID картинки $codePriont = ""; // Код товара $ostPrint = ""; // Остаток if(!empty($c_CIBlockElement)){ $detailPictureId = $c_CIBlockElement->GetFields()['DETAIL_PICTURE']; $codePriont = $c_CIBlockElement->GetProperties()['CODE_5']['VALUE']; $ostPrint = CCatalogProduct::GetByID($arBasket['PRODUCT_ID'])['QUANTITY']; }
Так мы получим данные, которые нам нужны и можем распечатать их внутри таблицы бланка заказа, кроме картинки.
Чтобы распечатать картинку мы используем следующий код:
<img src="<?php echo (isset($detailPictureId)) ? CFile::GetPath($detailPictureId) : ''; ?>"/>
В результате мы получим пример следующие:
Неожиданно из figma выпилили шрифт, который я раньше использовал для баннеров и это подтолкнуло меня на обновление стиля сайта. Обложка для этой записи первый шаг