function OnOrderNewSendEmailHandler($orderID, &$eventName, &$arFields) { // Поменять вид списка товаров if (!CModule::IncludeModule('sale') || !CModule::IncludeModule('catalog')) return; //global $pre_defined_variables, $DB; $arOrder = CSaleOrder::GetById($orderID); $dbBasketItems = CSaleBasket::GetList(array("NAME" => "ASC"), array("ORDER_ID" => $orderID), false, false, array("ID", "NAME", "QUANTITY", "PRICE", "CURRENCY", "DETAIL_PAGE_URL")); $strOrderList = ""; $strOrderList .= '<table width="100%">'; $strOrderList .= '<thead><tr>'; foreach(array("Название","Количество","Цена","Сумма") as $th) $strOrderList .= '<th>'.$th.'</th>'; $strOrderList .= '</tr></thead>'; $strOrderList .= '<tbody>'; $price_total = 0; $arBasketItems = array(); while ($arBasketItem = $dbBasketItems->Fetch()) { $dbProp = CSaleBasket::GetPropsList(Array("SORT" => "ASC", "NAME" => "ASC"), Array("BASKET_ID" => $arBasketItem["ID"], "!CODE" => array("CATALOG.XML_ID", "PRODUCT.XML_ID"))); while($arProp = $dbProp -> GetNext()) $arBasketItem["PROPS"][] = $arProp; $arBasketItems[] = $arBasketItem; $strOrderList .= '<tr>'; $strOrderList .= '<td>'; $strOrderList .= '<a href="http://www.zakrepi.ru'.$arBasketItem["DETAIL_PAGE_URL"].'" target="_blank">'.$arBasketItem["NAME"].'</a>'; // Из свойств товара заказа показать лишь стандартные и название филиала foreach($arBasketItem['PROPS'] as &$arProp) { $strOrderList .= '<div style="font-size:80%">'.$arProp['NAME'].': '.$arProp['VALUE'].'</div>'; } $strOrderList .= '</td>'; $strOrderList .= '<td style="text-align: center;">'.$arBasketItem["QUANTITY"].' шт.</td>'; $strOrderList .= '<td style="text-align: center;">'.SaleFormatCurrency($arBasketItem["PRICE"], $arBasketItem["CURRENCY"]).'</td>'; $strOrderList .= '<td style="text-align: center;">'.SaleFormatCurrency($arBasketItem["PRICE"] * $arBasketItem["QUANTITY"], $arBasketItem["CURRENCY"]).'</td>'; $strOrderList .= '</tr>'; $price_total += $arBasketItem["PRICE"] * $arBasketItem["QUANTITY"]; $price_currency = $arBasketItem["CURRENCY"]; } $price_total_formatted = $price_currency? SaleFormatCurrency($price_total, $price_currency): '0'; $strOrderList .= '<tr><td colspan="3" style="text-align:right;">Общая стоимость: </td><td style="text-align: center;">'.$price_total_formatted.'</td></tr>'; //Получаем стоимость доставки цену и общую сумму вместе с ценой доставки // Указываем способ доставки // $arOrder['PRICE'] - Общая стоимость $arFields['DELIVERY'] = ''; if (strlen($arOrder['DELIVERY_ID'])) { if (is_string($arOrder['DELIVERY_ID'])) { $sid = explode(":", $arOrder['DELIVERY_ID']); $dbDeliv = CSaleDeliveryHandler::GetBySID($sid[0]); $arDeliv = $dbDeliv->GetNext(); $arFields['DELIVERY'] = '<p><b>Способ доставки:</b> '.$arDeliv['NAME'].'</p>'; $price_total += $arOrder['PRICE_DELIVERY']; $strOrderList .= '<tr><td colspan="3" style="text-align:right;">Стоимость доставки: </td><td style="text-align: center;">'.SaleFormatCurrency($arOrder['PRICE_DELIVERY'], $price_currency).'</td></tr>'; $strOrderList .= '<tr><td colspan="3" style="text-align:right;">Итого: </td><td style="text-align: center;">'.SaleFormatCurrency($price_total, $price_currency).'</td></tr>'; $arFields['ALL_PRICE'] = '<p><b>Итого: </b>'.SaleFormatCurrency($price_total, $price_currency).'</p>'; } else{ $arDelivery = CSaleDelivery::GetById($arOrder['DELIVERY_ID']); if ($arDelivery) { $value = $arDelivery['NAME']; $value_name = $arDelivery['NAME']; $value_price = ''; if ($arDelivery['PRICE']<=0) { $value .= ', Бесплатно'; $value_price = 'Бесплатно'; } else { $value .= ', '.SaleFormatCurrency($arDelivery['PRICE'], $arDelivery['CURRENCY']); $value_price = SaleFormatCurrency($arDelivery['PRICE'], $arDelivery['CURRENCY']); $strOrderList .= '<tr><td colspan="3" style="text-align:right;">Стоимость доставки: </td><td style="text-align: center;">'.$value_price.'</td></tr>'; } $arFields['DELIVERY'] = '<p><b>Способ доставки:</b> '.$value_name.'</p>'; $price_total += $arDelivery['PRICE']; $strOrderList .= '<tr><td colspan="3" style="text-align:right;">Итого: </td><td style="text-align: center;">'.SaleFormatCurrency($price_total, $price_currency).'</td></tr>'; $arFields['ALL_PRICE'] = '<p><b>Итого: </b>'.SaleFormatCurrency($price_total, $price_currency).'</p>'; } } } $strOrderList .= '</tbody>'; $strOrderList .= '</table>'; $arFields["ORDER_LIST_NEW"] = $strOrderList; // Указываем свойства заказа - Начало /* $arProps = array(); $dbProps = CSaleOrderPropsValue::GetOrderProps($orderID); while ($arProp = $dbProps->Fetch()) { $arProps[$arProp['CODE']] = $arProp; $val = $arProp['VALUE']; if ($arProp['TYPE']=="LOCATION") { $v = CSaleLocation::GetByID($val); $val = $v['CITY_NAME_LANG']; } elseif (in_array($arProp['TYPE'], array("SELECT", "MULTISELECT", "RADIO"))) { $v = CSaleOrderPropsVariant::GetByValue($arProp['ORDER_PROPS_ID'], $val); $val = $v['NAME']; } $arProp['VALUE_FORMATTED'] = $val; }*/ // Получаем список исключенных свойств в зависимости от выбранной службы доставки /*$delivery_id = $arOrder['DELIVERY_ID']; $EXCLUDE_PROPS = $pre_defined_variables['ORDER_MAKE']["EXCLUDE_PROP_ON_DELIVERY_ID"]; if (array_key_exists($delivery_id, $EXCLUDE_PROPS)) $EXCLUDE_PROP = $EXCLUDE_PROPS[$delivery_id]; else $EXCLUDE_PROP = array(); $EXCLUDE_PROP = array_merge(array('AGREE'), $EXCLUDE_PROP); // Выводим свойства $strPropsList = ''; foreach($arProps as $prop_code=>&$arProp) { if (in_array($prop_code, $EXCLUDE_PROP)) continue; $strPropsList .= '<p>'; $value = strlen(trim($arProp['VALUE']))? $arProp['VALUE']: '<i>не указано</i>'; $strPropsList .= '<b>'.$arProp['NAME'].':</b> '.$value; $strPropsList .= '</p>'; } $arFields['PROPS_LIST'] = $strPropsList;*/ // Указываем свойства заказа - Конец // Указываем способ оплаты $arFields['PAY_SYSTEM'] = ''; if (strlen($arOrder['PAY_SYSTEM_ID'])) { $arPaySystem = CSalePaySystem::GetByID($arOrder['PAY_SYSTEM_ID'], $arOrder['PERSON_TYPE_ID']); if ($arPaySystem) { $value = strlen(trim($arPaySystem['PSA_NAME']))? $arPaySystem['PSA_NAME']: $arPaySystem['NAME']; if($arOrder['PAY_SYSTEM_ID'] == 1 || $arOrder['PAY_SYSTEM_ID'] == 2) { $arFields['PAY_SYSTEM'] = '<p><b>Способ оплаты:</b> <a href="http://www.zakrepi.ru/checkout/?ORDER_ID='.$orderID.'" target="_blank">'.$value.'</a></p>'; } else { $arFields['PAY_SYSTEM'] = '<p><b>Способ оплаты:</b> '.$value.'</p>'; } } } // Получаем склад, указанный при доставке $arFields['STORE_LIST'] = ''; $arFields['STORE_LIST_NEUTRAL'] = ''; $arFields['STORE_EMAIL'] = ''; $arStores = array(); if ($arOrder['DELIVERY_ID'] == 1) { $dbStores = CCatalogStore::GetList(array(), array('ID'=>1), false, false, array()); $arStore = $dbStores->Fetch(); $strStoreList = ''; if ($arStore) { // Получаем свойства склада в нужном порядке $prop_codes = array('TITLE'=>'', 'ADDRESS'=>'Адрес', 'PHONE'=>'Телефон', 'SCHEDULE'=>'Время работы'); // Выводим склад $strStoreList = '<span style="font-size: 90%">'; $have_value = false; $prev_value = false; foreach($prop_codes as $prop_code=>&$name) { if ($prev_value) { $strStoreList .= ', '; $prev_value = false; } if (strlen(trim($arStore[$prop_code]))) { $have_value = true; if (strlen($name)) { $strStoreList .= $name.': '; } $strStoreList .= trim($arStore[$prop_code]); $prev_value = true; } } $strStoreList .= '</span><br />'; // Добавляем поле списка складов в почтовый шаблон //$arFields['STORE_LIST_NEUTRAL'] = '<p>Указанный '$strStoreList; if (strlen($have_value)) { $arFields['STORE_LIST_NEUTRAL'] = '<p><b>Пункт выдачи:</b></p>' . $strStoreList; $arFields['STORE_LIST'] = '<p><b>Пожалуйста, сообщите номер вашего заказа для оплаты по адресу:</b></p>' . $strStoreList; } } } else if($arOrder['DELIVERY_ID'] > 1) { $strStoreList = ''; $arOrderProps = CSaleOrderPropsValue::GetOrderProps($arOrder['ID']); while ($arProps = $arOrderProps->Fetch()) { switch ($arProps['CODE']) { case 'CITY': $strStoreList .= $arProps['NAME'].': '.$arProps['VALUE']; break; case 'STREET': $strStoreList .= '<br/>'.$arProps['NAME'].': '.$arProps['VALUE']; break; case 'HOUSE': $strStoreList .= '<br/>'.$arProps['NAME'].': '.$arProps['VALUE']; break; case 'KORPUS': if($arProps['VALUE']!='') $strStoreList .= '<br/>'.$arProps['NAME'].': '.$arProps['VALUE']; break; case 'FLAT': if($arProps['VALUE']!='') $strStoreList .= '<br/>'.$arProps['NAME'].': '.$arProps['VALUE']; break; } } $arFields['STORE_LIST_NEUTRAL'] = '<div><p><b>Доставка по адресу:</b></p>' . $strStoreList.'</div>'; } else if(is_string($arOrder['DELIVERY_ID'])) { $strStoreList = ''; $arOrderProps = CSaleOrderPropsValue::GetOrderProps($arOrder['ID']); while ($arProps = $arOrderProps->Fetch()) { switch ($arProps['CODE']) { case 'CITY': $strStoreList .= $arProps['NAME'].': '.$arProps['VALUE']; break; case 'STREET': $strStoreList .= '<br/>'.$arProps['NAME'].': '.$arProps['VALUE']; break; case 'HOUSE': $strStoreList .= '<br/>'.$arProps['NAME'].': '.$arProps['VALUE']; break; case 'KORPUS': if($arProps['VALUE']!='') $strStoreList .= '<br/>'.$arProps['NAME'].': '.$arProps['VALUE']; break; case 'FLAT': if($arProps['VALUE']!='') $strStoreList .= '<br/>'.$arProps['NAME'].': '.$arProps['VALUE']; break; } } $arFields['STORE_LIST_NEUTRAL'] = '<div><p><b>Доставка по адресу:</b></p>' . $strStoreList.'</div>'; } //Получение данных пользователя $rsUser = CUser::GetByID($arOrder['USER_ID']); $arUser = $rsUser->Fetch(); if(in_array(5, CUser::GetUserGroup($arOrder['USER_ID']))) { $arFields['STORE_PHONE'] = $arUser['WORK_PHONE']; $arFields['STORE_NAME_USER'] = '******'.$arUser['NAME'].' '.$arUser['LAST_NAME']; } else if(in_array(6, CUser::GetUserGroup($arOrder['USER_ID']))) { $arFields['STORE_PHONE'] = $arUser['WORK_PHONE']; $arFields['STORE_NAME_USER'] = '******'.$arUser['WORK_COMPANY'].' Контактное лицо '.$arUser['UF_CONTACT_MANAGER']; } }