LordBelial 0 Posted March 30, 2014 Report Share Posted March 30, 2014 Очень хочется покупателю отправлять не голый текст с данными, а красиво оформленное письмо. В шаблоне писем добавить html и стилей, но интаприратор не сработал и выдал весь html в текст письма. Как сделать красивый шаблон письма в магазине? И так же хочется больше меток. А именно: Способ оплаты: Способ доставки: Дата и время: (кода был создан заказ) Телефон: E-mail: Доп. информация: Товары по одельности выводились, через {foreach}, что бы их данные выводить через таблицу такие метки как {base_path} {config value=telephone} не срабатывают. Link to post Share on other sites
support 446 Posted March 30, 2014 Report Share Posted March 30, 2014 Насчёт html-писем, в /app/Controller/Component/EmailComponent.php можно добавить: $this->IsHTML = true; после: $this->CharSet = 'utf-8'; Link to post Share on other sites
support 446 Posted March 30, 2014 Report Share Posted March 30, 2014 По поводу меток. Это нужно править /app/Controller/OrdersController.php Метод place_order Там задаются метки, сейчас попробую добавить. Link to post Share on other sites
support 446 Posted March 30, 2014 Report Share Posted March 30, 2014 Прицепил /app/Controller/OrderController.php Добавлены метки: {$shipping_method} {$payment_method} {$date} {$phone} {$email} {$order_total} foreach по умолчанию не получится, потому что шаблон письма не использует smarty. foreach используется в коде, в place_order методе. OrdersController.php Link to post Share on other sites
LordBelial 0 Posted March 31, 2014 Author Report Share Posted March 31, 2014 Насчёт html-писем, в /app/Controller/Component/EmailComponent.php можно добавить: $this->IsHTML = true; после: $this->CharSet = 'utf-8'; Не помогло :( Он все равно выводит на экран весь html, который я прописываю в админка-настройка-шаблоны писем - псевдоним new-order Link to post Share on other sites
LordBelial 0 Posted March 31, 2014 Author Report Share Posted March 31, 2014 В OrdersController.php ошибка $body = str_replace('{$phone}', $order['Order']['email'], $body); $body = str_replace('{$email}', $order['Order']['phone'], $body); Link to post Share on other sites
support 446 Posted March 31, 2014 Report Share Posted March 31, 2014 Так html-код и должен обображаться в админке. По идее, html превраится в страницу только при отправке письма, т.е. когда его смотреть будут в почтовом клиенте. Link to post Share on other sites
support 446 Posted March 31, 2014 Report Share Posted March 31, 2014 Метки поправил, спасибо. Link to post Share on other sites
LordBelial 0 Posted March 31, 2014 Author Report Share Posted March 31, 2014 Так html-код и должен обображаться в админке. По идее, html превраится в страницу только при отправке письма, т.е. когда его смотреть будут в почтовом клиенте. Так я про письма. В них (письмах, приходящих на почту) html не преобразуется. Тот, html, который был написан в админке, приходит и на почту. Link to post Share on other sites
LordBelial 0 Posted March 31, 2014 Author Report Share Posted March 31, 2014 Надо было указать не $this->IsHTML = true; а $this->IsHTML(true); В такой конфигурации все работает ;) Link to post Share on other sites
support 446 Posted March 31, 2014 Report Share Posted March 31, 2014 Хорошо. Link to post Share on other sites
Алексей Павлов 0 Posted July 8, 2014 Report Share Posted July 8, 2014 Если я ставлю метку {$products} то в письме получаю следующее: 1 x Товар = 250 Почта России - бандероль 1 класса (со страховкой): 265 Всего: 515 Нельзя ли как то разделить каждую позицию? или сделать чтобы в {$shipping_method} выводилась стоимость доставки, а {$order_total} будет выводиться отдельной позицией Link to post Share on other sites
support 446 Posted July 8, 2014 Report Share Posted July 8, 2014 По умолчанию всё вместе. Это тольео править /app/Controller/OrdersController.php Метод place_order если речь про письмо с заказом. Link to post Share on other sites
Алексей Павлов 0 Posted July 10, 2014 Report Share Posted July 10, 2014 Я так понял что правится это тут $order_products = ''; foreach($order['OrderProduct'] AS $product) { $order_products .= $product['quantity'] . ' x ' . $product['name'] . ' = ' . $product['quantity']*$product['price'] . ' рублей; ' . "\n"; if ('' != $product['filename']) { $order_products .= __('Download link: ', true) . FULL_BASE_URL . BASE . '/download/' . $order['Order']['id'] . '/' . $product['id'] . '/' . $product['download_key'] . "\n"; } } $order_products .= "\n" . ' Доставка: ' . $order['ShippingMethod']['name'] . ': ' . $order['Order']['shipping'] . ' рублей; ' . "\n"; $order_products .= __('Order Total',true) . ': ' . $order['Order']['total'] . ' рублей ' . "\n"; $body = str_replace('{$products}', $order_products, $body); Я внес изменения ('Доставка', 'рублей') Но изменений в полученном письме нет... Link to post Share on other sites
support 446 Posted July 10, 2014 Report Share Posted July 10, 2014 На новом заказе пробовали?! В старых заказах понятно, что уже ничего не изменится, это ж код для отправки письма сразу после оформления заказа. Вроде как меняете всё правильно. Link to post Share on other sites
Алексей Павлов 0 Posted July 10, 2014 Report Share Posted July 10, 2014 Конечно в новых ))) Вот что приходит: 1 x ХХХХХ, Красный ХХХХХХ Юго-Восточная Азия = 250 Почта России - бандероль 1 класса (со страховкой): 198 Всего: 448 Link to post Share on other sites
support 446 Posted July 10, 2014 Report Share Posted July 10, 2014 Может всё-таки нет тот код правите. А если строку Order Total удалить, из письма пропадёт строка Всего ?! Link to post Share on other sites
Алексей Павлов 0 Posted July 10, 2014 Report Share Posted July 10, 2014 Ничего не понимаю! Сейчас скачал это файл, он оказался девственно чист. Что же тогда я сегодня на другом компе правил? :what: Link to post Share on other sites
support 446 Posted July 10, 2014 Report Share Posted July 10, 2014 Так я вот и говорю, что может не там правите, может не в той папке или ещё что. :cg: Link to post Share on other sites
xside 0 Posted December 21, 2014 Report Share Posted December 21, 2014 А есть еще метка адрес заказчика? Только ее мне не хватает для полноценного письма. Хотелось бы что бы о заказе вся информация была в письме и не лазить в админку только за адресом. Спасибо! Link to post Share on other sites
support 446 Posted December 21, 2014 Report Share Posted December 21, 2014 Так в письмо вставяется ведь адрес доставки по умолчанию. Link to post Share on other sites
xside 0 Posted December 22, 2014 Report Share Posted December 22, 2014 К сожалению, по умолчанию у меня адреса не было (см. ниже). Если метка есть для адреса можете ее написать что бы я добавил? Спасибо! Ваш заказ подтверждён. Номер заказа: 18 Заказанные товары: 1 x Маска для лица коллагеновая с биозолотом = 40 Новая почта - курьерская доставка: 0 Всего: 40 Спасибо! Link to post Share on other sites
support 446 Posted December 22, 2014 Report Share Posted December 22, 2014 По умолчани в шаблоне письма о заказе /templates/шаблон/mail/russian/order_main.txt есть такой код: {if $SHIPPING_METHOD} Доставка: {$SHIPPING_METHOD} Адрес доставки вашего заказа: {$address_label_shipping} {/if} Либо у Вас шаблон письма исправленный, либо при оформлении не выбирается способ доставки. Link to post Share on other sites
xside 0 Posted December 24, 2014 Report Share Posted December 24, 2014 Мы по моему о разных версия CMS говорим. У меня vamshop2 и таких путей точно нету ) Вставил эту метку но она не работает Вы заказали:1 x xxx = 1001 x xxx = 401 x xxx = 90Укрпочта: 15Всего: 245Адрес доставки------------------------------------------------------{$address_label_shipping}Способ оплаты------------------------------------------------------Оплата на карту Приватбанка Link to post Share on other sites
support 446 Posted December 24, 2014 Report Share Posted December 24, 2014 Да, пардон, не заметил. Глянул код, действительно полного адреса нет. А в каком виде надо адрес выводить? Полность типа индекс, горож и т.д.? Link to post Share on other sites
Recommended Posts