Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
_marisha
7 / 7 / 2
Регистрация: 29.05.2011
Сообщений: 347
#1

Информация о заказе на почту - PHP

13.03.2017, 07:48. Просмотров 224. Ответов 5
Метки нет (Все метки)

Доброго времени суток!
При оформлении заказа необходимо отправить информацию о заказе на почту.
Почтовый шаблон настроен. При добавлении 2х товаров в корзину и дальнейшем оформлении заказа, письмо на почту приходит с информацией о 2х товарах
Информация о заказе на почту

Но при добавлении (к примеру) 5ти товаров, в письме информации о товарах нет
Информация о заказе на почту

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
if($event == "SALE_NEW_ORDER")
    {
        $arFilter = Array("USER_ID" => $USER_ID);
        $res = CSaleOrder::GetList(array(), $arFilter); 
        while($ob = $res->Fetch())
        {
            $arOrder = CSaleOrder::GetByID($ob['ID']);
        }
        $arSelect = array("ID", "PRODUCT_ID", "NAME", "QUANTITY", "PRICE", "ORDER_ID");
        $arFilter = array("ORDER_ID"=>$arOrder['ID']);
        $dbBasketItems = CSaleBasket::GetList(Array(), $arFilter, false, Array("nPageSize"=>999), $arSelect);
        while ($arItems = $dbBasketItems->Fetch())
        {
            $ar_IDS[] = $arItems['PRODUCT_ID'];
        }
        $arSelect = Array("ID", "NAME","PROPERTY_ARTNUMBER", "PROPERTY_KOLVOPAR", "PROPERTY_PRICE_PARA");
        $arFilter = Array("IBLOCK_ID"=>14, "ACTIVE"=>"Y", "ID"=>$ar_IDS);
        $res = CIBlockElement::GetList(Array(), $arFilter, false, Array("nPageSize"=>999), $arSelect);
        while($ob = $res->Fetch())
        {
            $arFields["ORDER_LIST_SALE"].="<tr>
                                            <td>Марка: " .$ob['NAME']. "; 
                                            Артикул: " .$ob['PROPERTY_ARTNUMBER_VALUE'].";
                                            Количество пар в упаковке: " .$ob['PROPERTY_KOLVOPAR_VALUE']. " шт.;
                                            Цена за пару: " .$ob['PROPERTY_PRICE_PARA_VALUE']. " руб.;
                                            Цена за упаковку: " .$ob['PROPERTY_PRICE_PARA_VALUE'] * $ob['PROPERTY_KOLVOPAR_VALUE']. " руб.</td>
                                        </tr>";
        }
        $arFields["ORDER_LIST_SALE"]="<table>".
        $arFields["ORDER_LIST_SALE"] = iconv ('utf-8', 'windows-1251', $arFields["ORDER_LIST_SALE"]);
        $arFields["ORDER_LIST_SALE"].="</table>";
 
    }
Получается, что в $arFields["ORDER_LIST_SALE"] ничего не записывается, хотя если указать 2 товара, то информация о товарах приходит.
В "$ob" находятся ID тех товаров, которые были при оформлении заказа.
Подскажите, пожалуйста, каким образом решить задачу, чтоб информация о товарах приходила, не важно сколько товаров заказали. Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2017, 07:48
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Информация о заказе на почту (PHP):

Как сделать так чтобы при отправке сообщения на мою почту еще отправлялась на почту пользователя?
Как сделать так чтобы при отправке сообщения на мою почту еще отправлялась на...

Смс оповещение при заказе
Здравствуйте Мне необходимо сделать смс оповещение при заполнении формы с...

Название товара ссылкой в письмах с уведомлением о заказе
Здравствуйте После покупки товара админу и покупателю отправляются письма с...

Отправка писем о заказе на почту клиенту
Вот меня интересует мнение опытных верстальщиков. Хочу прояснить вопрос когда...

Информация о новом заказе
Здравствуйте! Подскажите, кто знает. Изучаю создание интернет магазина на...

Информация о заказе в виде таблицы
Доброго времени суток! Стоит задача отправить на почту покупателя письмо с...

5
Para bellum
Эксперт PHP
3941 / 2927 / 923
Регистрация: 06.01.2011
Сообщений: 8,561
13.03.2017, 08:43 #2
Что Вы в строку записываете, то и отправляется. Сделайте распечатку полученных данных из базы, вероятно просто не всё вытаскивается.
0
_marisha
7 / 7 / 2
Регистрация: 29.05.2011
Сообщений: 347
13.03.2017, 08:48  [ТС] #3
Para bellum, Проблема решена частично: к примеру, постоянно создаю заказа с одними и теми же товарами. Делаю с одним товаром заказ (15158W31) - инфа приходит, делаю с двумя (15158W31, ZR10961-21Uб) - не приходит, делаю с 15158W31,2256-AC7б - не приходит, делаю с 15158W31, X1302-1A-D05 - приходит
Para bellum, как оказалось, в некоторых артикулах содержится русская буква.
Если в артикулах "ZR10961-21Uб", "2256-AC7б" убрать букву "б", то информация о товарах приходит.
Теперь следующий вопрос, каким образом подправить артикулы.
0
miketomlin
Заблокирован
13.03.2017, 10:16 #4
Попробуйте добавить //TRANSLIT или //IGNORE в целевую кодировку.

А вообще лучше добиться унификации текста в одной кодировке и отправлять в этой кодировке письмо без лишних преобразований.

Это вообще шедевр:
PHP
1
$x="<table>".$x = iconv (..., $x);
0
_marisha
7 / 7 / 2
Регистрация: 29.05.2011
Сообщений: 347
12.04.2017, 12:19  [ТС] #5
Возникла другая проблема, связанная с информацией о заказе.
Не приходит количество товара.
К примеру, если покупатель в корзине указал количество 2, то на почту приходит количество 1.
Подскажите, пожалуйста, каким образом можно передать данное количество.
Количество товара в корзине можно найти с помощью
PHP
1
2
3
4
5
6
7
$dbBasketItems = CSaleBasket::GetList(Array(), $arFilter, false, Array("nPageSize"=>999), $arSelect);
        while ($arItems = $dbBasketItems->Fetch())
        {
            $ar_IDS[] = $arItems['PRODUCT_ID'];
            
            $QUANTITY[] = $arItems["QUANTITY"];
        }
Но каким образом передать это количество в почтовый шаблон?
0
_marisha
7 / 7 / 2
Регистрация: 29.05.2011
Сообщений: 347
16.05.2017, 13:51  [ТС] #6
miketomlin,
Цитата Сообщение от miketomlin Посмотреть сообщение
$x="<table>".$x = iconv (..., $x);
Подскажите, пожалуйста, другое решение.
0
16.05.2017, 13:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.05.2017, 13:51
Привет! Вот еще темы с решениями:

При нажатии на компонент информация отправляется на почту
Простенький код пользователь нажал на какой-нибудь компонент на форме, тебе на...

Отправить текст из программы на почту (или не на почту)
У меня написана программа уже. Нужна функция наподобие саппорта Как...

Формы Сведения о заказе
здравствуйте! Помогите пожалуйста, в форме &quot;Сведения о заказе&quot; нужно...

Уведомление о новом заказе
Всем доброго дня! Подскажите, пожалуйста, как можно решить вот такую задачу. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru