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

RSS
Изменение перечня или таблицы заказа NEW_ORDER, SALE_NEW_ORDER - Добавление красивой таблицы товаров количества цены и суммы
 
Очень часто "хочется" вывести не просто "тупо" перечень товара а с информацией для покупателя сколько по какой цене и сумме

Для подключения данной "функции" предлагается скрипт который нужно вставить

в init.php

в результате чего появится

переменная: #ORDER_TABLE_ITEMS#

которую уже в свою очередь можно отформатировать нужным образом в файле init.php


В этом варианте таблица целиком вставляется функцией и нужно просто вставить #ORDER_TABLE_ITEMS#
Код
//#ORDER_TABLE_ITEMS# - выводит в таблице строки заказа <tr><td> о <table> и закрывающем теге нужно подумать самостоятельно в настройках шаблона.

AddEventHandler("sale", "OnOrderNewSendEmail", "ModifyOrderSaleMails");
function ModifyOrderSaleMails($orderID, &$eventName, &$arFields)
{
   if(CModule::IncludeModule("sale") && CModule::IncludeModule("iblock"))
   {
//СОСТАВ ЗАКАЗА РАЗБИРАЕМ SALE_ORDER НА ЗАПЧАСТИ
      $strOrderList = "";
      $dbBasketItems = CSaleBasket::GetList(
                 array("NAME" => "ASC"),
                 array("ORDER_ID" => $orderID),
                 false,
                 false,
                 array("PRODUCT_ID", "ID", "NAME", "QUANTITY", "PRICE", "CURRENCY")
               );
$strCustomOrderList .= '<table cellpadding="10" cellspacing="10"  style="border:1px solid #d1d1d1;margin:0 auto" border="1">';

while ($arProps = $dbBasketItems->Fetch())
  {
  //ПЕРЕМНОЖАЕМ КОЛИЧЕСТВО НА ЦЕНУ
      $summ = $arProps['QUANTITY'] * $arProps['PRICE'];
  //СОБИРАЕМ В СТРОКУ ТАБЛИЦЫ

       $strCustomOrderList .= "<tr><td>".$arProps['NAME']."</td><td>".$arProps['QUANTITY']."</td><td>".$arProps['PRICE']."</td><td>".$arProps['CURRENCY']."</td><td>".$summ."</td><tr>";
  }

$strCustomOrderList .= '</table>';
  //ОБЪЯВЛЯЕМ ПЕРЕМЕННУЮ ДЛЯ ПИСЬМА
  $arFields["ORDER_TABLE_ITEMS"] = $strCustomOrderList; 
} 
}

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

теперь вставка в Html код почтового шаблона будет выглядеть так например:
Код
<table cellpadding="10" cellspacing="10"  style="border:1px solid #d1d1d1;margin:0 auto" border="1">
#ORDER_TABLE_ITEMS#
</table>

а код функции соответственно:
Код
//#ORDER_TABLE_ITEMS# - выводит в таблице строки заказа <tr><td> о <table> и закрывающем теге нужно подумать самостоятельно в настройках шаблона.

AddEventHandler("sale", "OnOrderNewSendEmail", "ModifyOrderSaleMails");
function ModifyOrderSaleMails($orderID, &$eventName, &$arFields)
{
   if(CModule::IncludeModule("sale") && CModule::IncludeModule("iblock"))
   {
//СОСТАВ ЗАКАЗА РАЗБИРАЕМ SALE_ORDER НА ЗАПЧАСТИ
      $strOrderList = "";
      $dbBasketItems = CSaleBasket::GetList(
                 array("NAME" => "ASC"),
                 array("ORDER_ID" => $orderID),
                 false,
                 false,
                 array("PRODUCT_ID", "ID", "NAME", "QUANTITY", "PRICE", "CURRENCY")
               );


while ($arProps = $dbBasketItems->Fetch())
  {
  //ПЕРЕМНОЖАЕМ КОЛИЧЕСТВО НА ЦЕНУ
      $summ = $arProps['QUANTITY'] * $arProps['PRICE'];
  //СОБИРАЕМ В СТРОКУ ТАБЛИЦЫ

       $strCustomOrderList .= "<tr><td>".$arProps['NAME']."</td><td>".$arProps['QUANTITY']."</td><td>".$arProps['PRICE']."</td><td>".$arProps['CURRENCY']."</td><td>".$summ."</td><tr>";
  }


  //ОБЪЯВЛЯЕМ ПЕРЕМЕННУЮ ДЛЯ ПИСЬМА
  $arFields["ORDER_TABLE_ITEMS"] = $strCustomOrderList; 
} 
}