Письмо о заказе Opencart



В opencart по умолчанию не предусмотрена отправка телефона и адреса клиента при оформлении заказа. Почему так сделано- загадка. Чтобы не залазить каждый раз в админку, абсолютно все клиенты просят добавить как минимум телефон в письмо о заказе. Opencart отправляет его из файла order.php, находящегося в /catalog/model/checkout, находим код:

$text .= $language->get('text_new_footer') . "";

$mail = new Mail();
$mail->protocol = $this->config->get('config_mail_protocol');

Немного выше этого (ниже нельзя, вылезем за рамки разметки письма) добавляем отправку почты, телефона и адреса клиента:

$text.="email: ".$order_info['email']."";//Отправляем почтовый ящик
$text.="Телефон: ".$order_info['telephone']."";//телефон
$text.="Адрес: ".$order_info['payment_address_1']."";//первую строку адреса

Таких мест в файле два. Первое - для отправки письма на основную почту, а второе - для отправки на дополнительные почтовые ящики.

Если Вам нужна ещё какая-либо информация в письме, то вся она в переменной $order_info. Что бы посмотреть что в ней содержится достаточно написать print_r($order_info) где-нибудь в конце файла и при обновлении страницы получим полный вывод по переменной.

К счастью во второй версии полностью переделано оповещение о заказе. Opencart теперь присылает полную информацию о клиенте.

В дополнение к вышеописанному:

Если Вам нужно убрать информацию о регионе и стране из письма о заказе, то вся она содержится в переменных $order_info['payment_address_format'] и $order_info['shipping_address_format']. Для каждой из них есть правила составления адреса, например:

if ($order_info['payment_address_format']) {
$format = $order_info['payment_address_format'];
} else {
$format = '{firstname} {lastname}' . "
" . '{company}' . "
" . '{address_1}' . "
" . '{address_2}' . "
" . '{city} {postcode}' . "
" . '{zone}' . "
" . '{country}';
}

Чтобы всегда срабатывало своё правило, удаляем условие и оставляем только:

$format = '{firstname} {lastname}' . "
" . '{company}' . "
" . '{address_1}' . "
" . '{address_2}' . "
" . '{city} {postcode}' . "
" . '{zone}' . "
" . '{country}';

И уже в этой строке меняем местами или удаляем метки как душе угодно.


Сообщество: AWS

Комментариев(15)


ID: #231   Создан:
Автор: Алекс

тогда тут продолжим )

не срабатывает такой вариант. видимо потому что установлен модуль доставки Почта России. я закомментировал лишние строки


//if ($order_info['shipping_address_format']) {
					//$format = $order_info['shipping_address_format'];
				//} else {
					$format = '{firstname} {lastname}' . "
" . '{company}' . "
" . '{address_1}' . "
" . '{address_2}' . "
" . '{city} {postcode}' . "
". '{firstname} {lastname}' . '506' ;
				//}

но в письме все равно остается регион

http://clip2net.com/s/3ixHti2

ID: #232   Создан:
Автор: ololoev

Не буду загадывать, с этим модулем не работал. Теоретически может и из-за него. На чистом опенкарте только что проверил, всё нормально. Отключите этот модуль доставки и попробуйте ещё раз. И кстати какая версия опенкарт?

ID: #233   Создан:
Автор: Алекс

версия 2 скорее всего из-за него. потому что Адыгея указана в настройках этого модуля.

ID: #234   Создан:
Автор: Алекс

нет не от него ) отключил модуль доставки. все равно в письмо идет эта информация. может в самом html коде тоже подправить условие?



        text_payment_address1
        
        text_shipping_address1
        
      
    
    
      
        payment_address
        
        shipping_address
        
      
ID: #235   Создан:
Автор: Алекс

http://clip2net.com/s/3ixZiAg

ID: #236   Создан:
Автор: ololoev

Да нет, тут как не крути адреса формируются в каком-либо контроллере, а не шаблоне. Похоже без подробного изучения кода ничем не смогу помочь.

ID: #237   Создан:
Автор: Алекс

а если я скину кусок кода который вроде как отвечает за вывод html ? )

ID: #238   Создан:
Автор: ololoev
>>237

Лучший полный архив всей цмски. на frfr_jan@mail.ru.

ID: #239   Создан:
Автор: Алекс

вообще весь? одной папки catalog не хватит? вроде в ней все скрипты и вьюшки

ID: #240   Создан:
Автор: ololoev

да, каталога хватит

ID: #241   Создан:
Автор: Алекс

отправил

ID: #242   Создан:
Автор: ololoev

Ок, вечером погляжу.

Развернул всё на http://opencart.allwebstuff.info/, можно позаказывать для теста от туда, письма улетают нормальные. Вывод один- проблема в модуле доставки.

ID: #243   Создан:
Автор: Алекс

вобщем не помогло ничего. пришлось в бд переименовать адыгею на рф.

ID: #244   Создан:
Автор: Starik

В разделе локализации у стран есть поле "Формат адреса". Может быть оно отвечает за формат адреса в письмах? Если нет, то может знаете где оно используется?

ID: #245   Создан:
Автор: ololoev

Да, так и есть, это формат адреса в письме. По умолчанию используется следующий формат:


$format = '{firstname} {lastname}' . "
" . '{company}' . "
" . '{address_1}' . "
" . '{address_2}' . "
" . '{city} {postcode}' . "
" . '{zone}' . "
" . '{country}';

При задании формата через админку " " не надо использовать, это всеголишь символ переноса строки.

Всего: 15 комментариев на 1 страницах

Ваш комментарий будет анонимным. Чтобы оставить не анонимный комментарий, пожалуйста, зарегистрируйтесь



Сообщества