Автор Тема: Комментарий к заказу в письме  (Прочитано 3755 раз)

03 Февраль 2012, 14:03:46
  • Новичок
  • *
  • Сообщений: 4
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Добрый день.

Следующая проблема - используется гостевой режим регистрации заказа.
Режим заказа - в 5 шагов.
Надо сделать, чтобы в почтовом уведомлении о заказе (и клиенту и продавцу) присутствовало поле "Комментарий к заказу".

Сделал следующее:
1. В теме в шаблоне order_carrier.tpl добавил строки:

      <h3>{l s='Leave a message'}</h3>
      <div>
         <p>{l s='If you would like to add a comment about your order, please write it below.'}</p>
         <p><textarea cols="120" rows="3" name="message" id="message">{if isset($oldMessage)}{$oldMessage}{/if}</textarea></p>
      </div>
2. В шаблон писем клиенту и продавцу добавил {messsage}

Итог: В письме продавцу выводится "Сообщений нет", а в письме клиенту - {message}

Народ, подскажите, что делаю не так?
03 Февраль 2012, 18:31:03
Ответ #1
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22816
  • Репутация: +17143/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Чем не устраивает стандартный комментарий к заказу ?
/themes/prestashop/order-address.tpl
<div id="ordermsg">
    <p>{l s='If you would like to add a comment about your order, please write it below.'}</p>
    <p class="textarea"><textarea cols="60" rows="3" name="message">{if isset($oldMessage)}{$oldMessage}{/if}</textarea></p>
</div>
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
03 Февраль 2012, 19:03:27
Ответ #2
  • Новичок
  • *
  • Сообщений: 4
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
При гостевом оформлении заказа и настройке "В 5 шагов", насколько я понимаю, этот шаг система "проскакивает"...
03 Февраль 2012, 22:51:09
Ответ #3
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102503
  • Репутация: +34219/-0
    • Просмотр профиля
Вас не устраивает существующий вариант, вы хотите добавить новое поле в заказ и иметь возможность использовать его в шаблонах писем то, минимум изменений, что нужно сделать:
1. Добавить поле в бд
2. Добавить обработчик данных в класс
3. Добавить изменения в back-office
4. Добавить поле в файл шаблона
03 Февраль 2012, 23:00:50
Ответ #4
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 105673
  • Репутация: +39553/-0
    • Просмотр профиля
    • Webstudio UwK
Цитата: aleks
При гостевом оформлении заказа и настройке "В 5 шагов", насколько я понимаю, этот шаг система "проскакивает"...
Вывод всех сообщений заказа:
$messages = Message::getMessagesByOrderId($order->id_order, false);Можно добавить изменения в /classes/PaymentModule.php. Для версии prestashop 1.4 линия 444:
// Send an e-mail to customer
if ($id_order_state != Configuration::get('PS_OS_ERROR') AND $id_order_state != Configuration::get('PS_OS_CANCELED') AND $customer->id)
{.....
Cоздание интернет сайтов Webstudio UwK
05 Февраль 2012, 16:36:37
Ответ #5
  • Новичок
  • *
  • Сообщений: 4
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Вывод всех сообщений заказа:
$messages = Message::getMessagesByOrderId($order->id_order, false);Можно добавить изменения в /classes/PaymentModule.php. Для версии prestashop 1.4 линия 444:
// Send an e-mail to customer
if ($id_order_state != Configuration::get('PS_OS_ERROR') AND $id_order_state != Configuration::get('PS_OS_CANCELED') AND $customer->id)
{.....

Не-а, не получается.
Мое предположение  - содержимое поля для комментария к заказу не записывается в базу.
Сделал следующее - включил режим "Одна страница оформления заказа"
В этом случае комментарий к заказу пишется в базу и, соответственно, отображается в письме продавцу.
В письме клиенту по прежнему стоит {message}

Может еще есть какие предположения, мысли?
06 Февраль 2012, 12:56:49
Ответ #6
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102503
  • Репутация: +34219/-0
    • Просмотр профиля
Что делать, уже написано:
1. Добавить поле в бд
2. Добавить обработчик данных в класс
3. Добавить изменения в back-office
4. Добавить поле в файл шаблона
Эти общие правила действуют всегда, конкретно в вашем случае.
Цитировать
Сделал следующее:
1. В теме в шаблоне order_carrier.tpl добавил строки:
Т.е. вы сделали - "п4. Добавить поле в файл шаблона"
п1 - уже есть, для сообщений существует таблица с данными.
п3 - также существует.
Осталось сделать п2.
Вы не хотите использовать стандартный вариант, значит добавьте метод :
_updateMessage(Tools::getValue('message'));в то место, где хотите показывать и сохранять сообщение покупателя.
Например, стандартный вариант :
order-address.tplэто
OrderController->processAddress();
06 Февраль 2012, 17:41:48
Ответ #7
  • Новичок
  • *
  • Сообщений: 4
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо, все получилось.

И в дополнение...
Для добавления комментария к заказу в письмо покупателю надо в PaymentModule.php добавить:
'{message}' => $order->getFirstMessage()в массив данных для e-mail (строка 453)
09 Ноябрь 2012, 01:58:27
Ответ #8
  • Новичок
  • *
  • Сообщений: 1
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо, все получилось.

И в дополнение...
Для добавления комментария к заказу в письмо покупателю надо в PaymentModule.php добавить:
'{message}' => $order->getFirstMessage()в массив данных для e-mail (строка 453)


Подробнее рассказать о том как сделать так, чтобы сообщение оставленное клиентом при заказе добавлялось в письмо. Спасибо.