Navigation Menu

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

По умолчанию в CMS Magento такая функция, к сожалению, отсутствует. Но в текущей статье мы рассмотрим вариант как добавить эту возможность в интерне магазин при помощи дополнения «Customer Order Comment».

Давай с тобой поработаем в поэтапном режиме да бы ничего не упустить и наш план на сегодня будет таков:

  1. Установка дополнения «Customer Order Comment»
  2. Настройка БД Magento
  3. Настройка собственной темы
  4. Настройка темы админ панель
  5. Настройка email письма

Ну что ж, приступим…

1. Установка дополнения «Customer Order Comment».

Открой страницу дополнения «Customer Order Comment» и получи ключ дополнения версии 2.0 (для этого требуется быть зарегистрированным). Потом открой админку своего магазина и перейди в  пункт меню:

Система -> Расширения (Magento Connect) -> Управление расширениями

Далее возможно потребуется авторизироваться в Magento Connect (используй теже логин/пароль что и в админке).

На момент написания статьи дополнение «Customer Order Comment» было версии 0.1.5 (beta), из-за чего требовалось в настройках Magento Connect (закладка Settings) установить параметр Preferred State: Beta.

После этого на закладке Extentions в поле «Paste extension key to install» вставь ключ дополнения и нажми install. Через некоторое время немного ниже появится блок: Extension dependencie.

Нажимай Proceed и устанавливай дополнение (внизу странице в области чёрного цвета увидишь лог установки). После установки жми кнопку «Refresh».

Теперь дополнение с названием «Biebersdorf_CustomerOrderComment» должно появится в списке установленных дополнений.

Кстати, не забудь в настройка вернуть с Beta обратно в Stable на закладке Settings.

2. Настройка БД Magento

Если ты используешь Magento версии 1.4.1.0 или более то следует внести некоторые изменения, согласно солюшену, в базу данных.

Ну а если по-русски то следует сделать следующее:

  1. Открыть бузу данных магазине, к примеру, через phpMyAdmin
  2. Нажать на кнопку SQL в верхней части экрана и выполнить команду
    [code lang=»SQL»]
    ALTER TABLE  ПРЕФИКС_sales_flat_order ADD  biebersdorf_customerordercomment TEXT NOT NULL
    [/code]

На этом с базой данных всё.

3. Настройка собственной темы

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

На сервере по следующему адресу появилась директория:

/app/code/community/Biebersdorf/CustomerOrderComment/design/

Тут размещены примеры которые следует внести в свою тему.

Вот здесь делаем чётко по ниже приведённому описанию:

  1. иди в админ часть и там выставь параметр «ДА» по следующему адресу: System(Система) > Configuration(Конфигурация) > Sales(Продажи) > Checkout(Оформить заказ) > Checkout Options(Варианты оформления) > Enable Terms and Conditions.
    Сохрани настройки.
  2. открой файл:
    magento/design/frontend/your_theme/default/template/checkout/onepage/agreements.phtml и перед закрывающемся тегом </form> вставь следующий код:
    [code language=»php»]
    <?php
    /**
    * START ADDITIONAL HTML for Community-Extension Biebersdorf_CustomerOrderComment.
    * (Add textarea form field to the agreements formular of onepage checkout)
    */
    ?>
    <ol>
    <li>
    <label for="biebersdorfCustomerOrderComment"><?php echo Mage::helper(‘biebersdorfcustomerordercomment’)->__(‘Your Comment for this Order’) ?></label>
    <br/><textarea name="biebersdorfCustomerOrderComment" id="biebersdorfCustomerOrderComment" style="width:450px;height:100px;"></textarea>
    </li>
    </ol>
    <?php
    /**
    * END ADDITIONAL HTML for Community-Extension Biebersdorf_CustomerOrderComment.
    * (Add textarea form field to the agreements formular of onepage checkout)
    */
    ?>
    [/code]

    Сохрани файл.

  3. Теперь это же код вставь в самый конец файла: magento/app/design/frontend/your_theme/default/template/checkout/multishipping/agreements.phtml
    Пунктами 2 и 3 мы с тобой добавили форму комментария.
  4. Теперь отправься в админ панель Продажи -> Соглашение о заказе ->Давить новое условие.
    Тут введи любое название. Статус оставляем по умолчанию «Выключено». Выбери вид всех требуемых магазинов. Заполни следующие 2 поля на своё усматрение и сохрани.
  5. Следующим шагом обнови кеш Magento (Система -> Управление кешем)

Ну в общем с этим всё. Теперь на последнем шаге оформления заказа ты увидишь поле для комментария.

А для того что бы привести в порядок внешний вид комментария поиграйся с кодом, который ты вставил в п.2.

Кстати, для того что бы комментарий показывался в списке заказов пользователя, добавь строки:

«Customer Order Comment»,»Комментарий к заказу»
«There is no customer Order Comment»,»Комментарий к заказу отсутствует»

в конец файла:

/magento/app/locale/ru_RU/Mage_Sales.csv

А в файл

magento/app/design/frontend/your_theme/default/template/sales/order/info.phtml

добавь этот код в любое удобное для тебя место:

[code lang=»php»]

<?php

$_biebersdorfcustomerordercomment = nl2br($this->helper(‘biebersdorfcustomerordercomment’)->htmlEscape($_order->getBiebersdorfCustomerordercomment()));

if ( $_biebersdorfcustomerordercomment == "") {
echo $this->helper(‘biebersdorfcustomerordercomment’)->__(‘Customer Order Comment’);
echo $this->helper(‘biebersdorfcustomerordercomment’)->__(‘There is no customer Order Comment’);
}else{
echo $this->helper(‘biebersdorfcustomerordercomment’)->__(‘Customer Order Comment’);
echo $_biebersdorfcustomerordercomment;
};

?>

[/code]

С разметкой, уверен, сам разберёшься что к чему.

4. Настройка темы админ панели.

Теперь, конечно-же, хочется видеть комментарии через админку. Это сделать совсем просто. Создаём на сервере кастомную тему для админки:

Создай путь:

magento/app/design/adminhtml/default/custom_adminhtml_theme_name/template/

и в неё скопируй содержимое папки:

/app/code/community/Biebersdorf/CustomerOrderComment/design/adminhtml/template/

Теперь зайди в админку Система -> Конфигурация, выбери слева Дизайн.

В разделе Admin Theme в поле «Admin theme name» введи название твоей темы (custom_adminhtml_theme_name) и сохрани.

Теперь перейдя Продажи -> Заказы и выбрав любой заказ, в котором оставлялся комментарий, ты его увидишь.

А для того что бы русифицировать админку добавь эти строки:

«Customer Order Comment»,»Комментарий к заказу»
«There is no customer Order Comment»,»Комментарий к заказу отсутствует»

в конец файла:

/magento/app/locale/ru_RU/Mage_Adminhtml.csv

И для того что бы в админке показывалась строка с уведомлением об отсутствии комментария открой файл:

magento/app/design/adminhtml/default/custom_adminhtml_theme_name/template/sales/order/view/tab/info.phtml

и строку:

[code lang=»php»]<?php echo nl2br($this->helper(‘biebersdorfcustomerordercomment’)->htmlEscape($_order->getBiebersdorfCustomerordercomment())) ?>[/code]

замени на эту:

[code lang=»php»]
<?php
$_biebersdorfcustomerordercomment = nl2br($this->helper(‘biebersdorfcustomerordercomment’)->htmlEscape($_order->getBiebersdorfCustomerordercomment()));
if ( $_biebersdorfcustomerordercomment == "") {
echo $this->helper(‘biebersdorfcustomerordercomment’)->__(‘There is no customer Order Comment’);
}else{
echo $_biebersdorfcustomerordercomment;
};
?>
[/code]

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

5. Настройка email письма.

Для того что бы введённый пользователем комментарий так же присутствовал в email рассылке сделай следующее:

  1. Система — Транзакционные письма
  2. Тут выбери соответствующий шаблон и вставь в него строку:

{{var order.getBiebersdorfCustomerordercomment()}}

Но в случае если у тебя еще нету своего шаблона то создай его:

  1. Система  -Транзакционные письма
  2. Новый шаблон
  3. Выбери в выпадающем списке: Новый заказ и нажми «Load template».
  4. Внизу в полях внесутся стандартные данные. Вставляешь переменную в удобное тебе место и нажми «Сохранить шаблон».
  5. Теперь иди Система — Конфигурация — Продажи — Письма о заказе — Заказ. Вот тут пункт «Письмо подтверждения нового заказа. Шаблон» отвечает за то какой шаблон пользователь будет получать. Выбери свой новый шаблон и нажми сохранить.

Ну вот на этом вроде бы как всё. Мои поздравления — теперь у тебя присутствует поле комментария к заказу.

Удачи.

    3 комментария

  1. Добрый день. Вроде все работает на фронтэнде, но вот как настроить это поле в админке я не могу понять :( magento 1.6…. может кто нибуть подсказать?

  2. Все разобрался просто tab/info.phtml заменил и все….. рано паниковать начал

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.