Пожелания к товару (примечание)

Автор mrsliding, 06 марта 2013, 22:59:36

« назад - далее »

mrsliding

Доброго дня.
Подскажите, пожалуйста, как можно реализовать такое на PrestaShop 1.3?

При заказе товара клиентам нужно оставлять своё сообщение о цвете товара.
Это достаточно реализовать с помощью обычного текстового сообщения (см. вложение).
Такое окно есть при заказе товара, но это для всего заказа, а нужно для каждого товара в отдельности.

Например:
1. на странице товара, клиент пишет какой ему нужен цвет
2. добавляет товар в корзину
3. сообщение с информацией приходит на почту менеджеру магазина
4. сообщение отображается в админ панели магазина
5. сообщение отображается в личном кабинете пользователя

Что-то подобное обсуждалось здесь: http://prestashop-forum.ru/index.php?topic=151.0

Пожалуйста, помогите, готов обсудить любые предложения.

Виктор Демидов

Как добавить дополнительное поле, уже обсуждали в той теме.
1. Добавить в таблицу содержащию номера заказов, ид товаров и сообщение.
2. Переопределить класс Order, добавить методы обработки дополнительного поля
3. Переопределить класс AdminOrders добавив вывод сообщения каждому товару в заказе
4.  Изменить шаблон product.tpl.

mrsliding

#2
Спасибо за ответ.

Я так понимаю, что:
п1 - уже есть, для сообщений существует таблица с данными.
п3 - также существует.
п4 - я вставил в product.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>

п2 - неясно куда и как именно добавить следующие данные:
Цитироватьдобавьте метод :
_updateMessage(Tools::getValue('message'));
в то место, где хотите показывать и сохранять сообщение покупателя.

Например, стандартный вариант :
order-address.tpl
это
OrderController->processAddress();


Я не программист, помогите, пожалуйста разобраться.

mAgency

Цитироватьп1 - уже есть, для сообщений существует таблица с данными.
Нет. Для сообщений привязанных к каждому товару в заказе нет таблицы.
Есть поле Общий комментарий к заказу. Можно в него все сохранять. Тогда дополнительная таблица не нужна.
Цитироватьп3 - также существует.
Тоже самое что и выше.
Цитироватьп4 - я вставил в product.tpl
Это поле уже определно и используется в prestashop в order-address.tpl.
Так сообщения клиента не будут сохраняться.
Цитироватьп2 - неясно куда и как именно добавить следующие данные:
Если сообщения клиента нужно регистрировать сразу при добавлении товара в корзину, показывать эти сообщения и давать возможность редактировать, то менять нужно будет много:
/classes/Product.php
/classes/Cart.php
/classes/Order.php
/themes/prestashop/js/product.js
/themes/prestashop/js/order-opc.js
/themes/prestashop/js/cart-summary.js
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.

mrsliding

похоже дело тёмное ...
Хорошо, если вы или кто-то может мне в этом помочь, готов обсудить цену вопроса.

mrsliding

Хотел бы узнать, получится ли реализовать выше написанное?

mAgency

Сделать такое можно. Написали, что нужно сделать.
Цитата: Виктор Демидов
1. Добавить в таблицу содержащию номера заказов, ид товаров и сообщение.
2. Переопределить класс Order, добавить методы обработки дополнительного поля
3. Переопределить класс AdminOrders добавив вывод сообщения каждому товару в заказе
4.  Изменить шаблон product.tpl.
Осталось в код перевести.
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.

mrsliding

Вот и я смотрю, что вроде бы всё ясно, но чего-то не хватает  8) ...

Пример окна сообщения http://www.babyart.ua/lang-ru/kostumi/4880--.html
Здесь как-то ведь реализовано? Не думаю, что здесь работал программист.

PrestaMan

Цитата: mrsliding
Пример окна сообщения http://www.babyart.ua/lang-ru/kostumi/4880--.html
Здесь как-то ведь реализовано? Не думаю, что здесь работал программист.
Точно не программист. Тест не сохраняется, не возможно его исправить, в корзине его не видно и т.д.
Скорее всего это поле примечание к заказу перенесли со страницы заказа. Т.е. все замечания будут сохраняться в одном поле. Тогда это можно не делать. Клиент и так может написать пожелания на последнем этапе формления заказа.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!

mrsliding

Спасибо за тестирование.
Да действительно это сообщение нигде не выводится  :o тогда смысл в нём?

У меня тогда остаются два варианта:
1. Программирование (как написано выше)
2. Атрибуты и свойства

-----
1. Нашел где выводится текст этого сообщения - в названии заказа  :o
2. Атрибуты попробовал - рабочий вариант, посмотрю, подойдет ли он нам.


mrsliding

Хорошо, если так, то тогда возникает вопрос:
какой код нужно вставить для написания и вывода сообщения?
куда - вроде бы понятно = на страницу товара и на страницу заказа.

coder

Можно сделать оправку сообщения при заказе, как в форме контактов. Только сохраняться такие сообщения будут в переписке с клиентом.
<form action="{$link->getPageLink('order-detail', true)}" method="post" class="std" id="sendOrderMessage">
<h3>{l s='Примечание к заказу'}</h3>
<label for="id_product">{l s='Product'}</label>
<select name="id_product" style="width:300px;">
<option value="0">{l s='-- Choose --'}</option>
{foreach from=$products item=product name=products}
<option value="{$product.product_id}">{$product.product_name}</option>
{/foreach}
</select>
<textarea cols="67" rows="3" name="msgText"></textarea>
<input type="hidden" name="id_order" value="{$order->id|intval}" />
<input type="submit" class="button" name="submitMessage" value="{l s='Send'}"/>
</form>

mrsliding

#12
Сделав паузу и немного подумав решил сделать это с помощью поля "количество" (на странице с товаром).
Но, встал вопрос, как продублировать это поле, чтобы получилось два разных поля для ввода разных значений.
Может кто знает?

Я вот об этом коде, на странице товара:

<!-- quantity wanted -->
<p id="quantity_wanted_p"{if (!$allow_oosp && $product->quantity == 0) || $virtual} style="display:none;"{/if}>
<label>{l s='Quantity :'}</label>
<input type="text" name="qty" id="quantity_wanted" class="text" value="{if isset($quantityBackup)}{$quantityBackup|intval}{else}1{/if}" size="2" maxlength="3" />
</p>


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

После заказа хочу сделать вывод этого слова (цвет товара) в детальном виде (история заказа)
Соответственно продублировав код вывода поля "колличество"

mAgency

Цитироватьрешил сделать это с помощью поля "количество"
Плохая идея, много работы не нужной делать придеться. Это поле не текстовое.
Есть текстовые поля сообщение от клиента, комментарии и т.д. на этих примерах нужно делать.
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.

mrsliding

Я так понимаю, что это всё же текстовое поле т.к. я смог туда написать слово.
По примеру "сообщение" и "комментарии" не могу делать т.к. для добавления текста нужна будет кнопка "отправить".

Я так понимаю, что для дублирования мне нужен идентификатор поля.