Версия для печати
Оригинальная версия ( http://prestadev.ru/forum/tema-1119.html )

PrestaShop CMS :: Русская поддержка интернет-магазина PrestaShop > Модули, плагины > подписка на товар


Разместил: rdob Время: 01-06-2010 01:00
Подскажите пожалуйста каким образом можно сделать подписку на товар которого нет на складе

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

заранее спасибо

Разместил: YellowDuck Время: 01-06-2010 12:40
Включить в модуле Почтовые предупреждения v2.2, уведомление клиента

Разместил: rdob Время: 03-06-2010 05:12
в том то и дело что все включено (( раз 5 перезалил mailalert, выставил полные права . 0 - результата

Разместил: S.Cherkass Время: 22-06-2010 00:01
Поддерживаю тему - Подскажите пожалуйста как заставить заработать подписку на товар отсутствующий на складе?
Обратил внимание на то что ссылка подписки "Уведомить когда станет доступен" http://my_site.com/modules/mailalerts/mailalerts-add.php?id_product=10&id_product_attribute=50 ссылается на файл mailalerts-add.php который просто отсутствует по указанному пути modules/mailalerts/. Там есть несколько других файлов с похожими именами (типа mailalerts-ajax_add.php или myalerts.php). Попытки переименовать их в mailalerts-add.php результата не дали. Сейчас ковыряю код - может удастся найти в чем косяк. Если удастся разобраться, то отпишусь. Просьба - посмотрите пожалуйста у себя - имеете ли вы этот файл modules/mailalerts/mailalerts-add.php ?
Спасибо.

Разместил: YellowDuck Время: 22-06-2010 00:44
У меня mailalerts-add.php отсутствует

Разместил: ors Время: 22-06-2010 00:46
В svn mailalerts-add.php отсутствует http://svn.prestashop.com/trunk/modules/mailalerts/
В modules/mailalerts/product.tpl замените mailalerts-add.php на mailalerts-ajax_add.php

Разместил: YellowDuck Время: 22-06-2010 00:51
Код:
if (msg == '0')
19 {
20 $('#mailalert_link').show().attr('href', 'modules/mailalerts/mailalerts-add.php?id_product=42&id_product_attribute='+$('#idCombination').val());
21 $('#oos_customer_email').show();
22 }
23 else
24 {
25 $('#mailalert_link').hide();
26 $('#oos_customer_email').hide();


Может косяк в яваскрипте (за место mailalerts-add.php должен быть другой файлик прописан)? Я в этом к сожалению ничего не понимаю в этом.

Разместил: YellowDuck Время: 22-06-2010 00:53
ors, спасибо, щас попробую

Разместил: YellowDuck Время: 22-06-2010 01:00
что-то нет результата (

Разместил: ors Время: 22-06-2010 01:01
Основная ошибка не в этом. В коде страницы неправильно указан путь к скрипту добавления url: '{$base_dir}modules/mailalerts/mailalerts-ajax_add.php' переменная {$base_dir} почему-то оказалась необработана smarty



Сообщение отредактировано ors 22-06-2010 02:03 ...

Разместил: YellowDuck Время: 22-06-2010 02:23
ors, спасибо за помощь!

Выкладываю рабочий файлик, у кого не работает просто заменяйте, проверено на версии 0.5

Разместил: ors Время: 22-06-2010 12:10
Долго смотрел исходные коды на svn, так и не понял почему не работает. Оказывается на svn лежит уже исправленная версия http://svn.prestashop.com/trunk/modules/mailalerts/product.tpl

Разместил: YellowDuck Время: 22-06-2010 13:52
Ага, только оставалось В modules/mailalerts/product.tpl заменить mailalerts-add.php на mailalerts-ajax_add.php, как вы писали выше

Разместил: S.Cherkass Время: 22-06-2010 19:43
Цитата:( ors @ 22-06-2010 07:10 Смотреть сообщение )
Долго смотрел исходные коды на svn, так и не понял почему не работает. Оказывается на svn лежит уже исправленная версия http://svn.prestashop.com/trunk/modules/mailalerts/product.tpl

Спасибо!

Сейчас опробую. Вообще замена ссылки на файл mailalerts-add.php ссылкой mailalerts-ajax_add.php равносильна созданию копии и переименованию mailalerts-ajax_add.php в mailalerts-add.php что я сразу же и сделал - это не помогло. Видимо баг действительно кроется в неправильной обработке пути...
По-моему схожая проблема, как мне кажется, имеет место и при неотсылке уведомления о заказе (здесь http://www.prestadev.ru/forum/tema-1129-0.html ) Для меня было загадкой почему заработало то что я описал.

...Опробовал...и обнаружил что работает, но работает не так как хотелось... :)
А хотелось бы чтобы вместе с сообщением "Request notification registered" отправлялось уведомление на е-майл с указанием мыла и желаемого продукта.
У вас случаем не так? :)
:crazy: опять ковырять код :)


Сообщение отредактировано S.Cherkass 22-06-2010 14:52 ...

Разместил: S.Cherkass Время: 22-06-2010 19:54
Добавлю:
Кроме того в бэк-офисе не нахожу даже напоминание о том что кто-то чего-то хочет и отслеживает...Цена такой функции, которая просто регистрирует заявку и хранит где-то в недрах, на мой взгляд не очень высока....

Разместил: YellowDuck Время: 23-06-2010 12:22
Цитата:( S.Cherkass @ 22-06-2010 15:43 Смотреть сообщение )
Вообще замена ссылки на файл mailalerts-add.php ссылкой mailalerts-ajax_add.php равносильна созданию копии и переименованию mailalerts-ajax_add.php в mailalerts-add.php что я сразу же и сделал - это не помогло.

неравносильна, т.к. есть еще вот такая строчка:
Код:
url: '{/literal}{$base_dir}{literal}modules/mailalerts/mailalerts-ajax_add.php',

Разместил: S.Cherkass Время: 23-06-2010 22:53
И все-таки в http://svn.prestashop.com/trunk/modules/mailalerts/product.tpl ссылка 'modules/mailalerts/mailalerts-add.php?id_product... присутствует, а файла реально нет. Ерунда какая-то. Может разработчики планировали ввести этот файл да позабыли?!...

Разместил: YellowDuck Время: 02-11-2010 04:39
Заметил, что подписавшемуся на отсутствующий товар уведомление (при появлении товара на складе) приходит только в том случае, если на склад поступает от 4 единиц товара. Можно это значение сделать от 1?

p.s. посоветуйте учебник по php + mysql на русском языке (так чтоб азы освоить), устал до всего догонять методом научного тыка :)

Разместил: asa Время: 24-12-2010 10:41
Всем здравствуйте.

Была аналогичная проблема, клиенту не удавалось подписаться на уведомление о поступлении товара.

Спасибо всем кто отписался тут, проблему решил. Просто скопировал файл http://svn.prestashop.com/trunk/modules/mailalerts/product.tpl на сервер и заменил существующий файл.

Дополнительно ничего в файле не правил. При увеличении товара через админку (даже если добавлен лишь 1 товар) исправно шлется письмо клиенту о появлении товара.
Вопрос в том, как быть если товар добавляется не через админку?
У меня скрипт обрабатывает прайс поставщика и автоматически изменяет количество товара.
Понимаю что, для этого можно, наверное бы задействовать функцию public function sendCustomeralert из mailalerts/mailalerts.php. Но так-как с php не знаком, не представляю как ее можно правильно запустить для автоматической рассылки уведомлений. Сам магазин живет на локальном сервере по unix, к которому есть полный доступ.

Надеюсь на вашу помощь :)




Разместил: ors Время: 24-12-2010 12:03
Для этого после добавления товара скрипт должен вызывать Hook::addProduct($product); а после обновления Hook::updateProduct($product); где $product - объект добавленного продукта. Тогда не только уведомление будет отправляться, но и все остальное, что должен делать магазин при обновлении и добавлении товара.

Разместил: asa Время: 24-12-2010 12:54
Спасибо ors. А что важного должен делать магазин при обновлении товара? А то скрипт этот на perl-е написан, напрямую в базу записывает. Сейчас времянку на перле напишу. Пусть пробегает по mailalert_customer_oos и если товар появился в product, то письмо отправляет, а строку из mailalert_customer_oos удаляет. Похоже надо будет все же в php погружаться, разбираться, чтобы эта схема обновления по человечески работала.

Разместил: ors Время: 24-12-2010 13:03
Обычно магазин ничего не делает при обновлении товара, но вот модули могут обрабатывать это событие. Хуки вызывают соответсвующие функции из модулей зарегистрированных в нем.

Разместил: Fant63 Время: 12-01-2011 03:27
А можно где то просматривать продавцу - на что подписались клиенты?

Допустим вижу на товар подписку и со следующим заказом у поставщика - привожу этот товар

Или это великий секрет престашопа?
Еще есть версия, что я не все перерыл )))


Сообщение отредактировано Fant63 11-01-2011 23:33 ...

Разместил: ors Время: 12-01-2011 11:58
В таблице mailalert_customer_oos

Разместил: sem4444 Время: 02-02-2011 21:24
То что так долго ждали шаровики свершилось !!!!!!

http://www.prestashop.com/forums/viewthread/47173/P0/third_party_modules/module_list_of_customer_out_of_stock_registrations

появляется в статистике

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


Сообщение отредактировано sem4444 02-02-2011 22:26 ...

Разместил: Zwergstern Время: 16-11-2011 07:33
Спасибо sem4444, Всем советую. Мне оченнь это оказалось нужным.

Разместил: sdnr666 Время: 23-11-2011 07:06
Тема супер! Спасибо! Все работает, statos - вообще супер модуль! =)

Огромное при огромное спасибо!!!!!

Разместил: najort Время: 02-02-2012 02:41
Ребята, кто-нибудь statos переводил? Можете выгрузить сюда?

Разместил: werru Время: 12-03-2015 17:15
Приветствую. Пытаюсь сделать оповещение на почту о появлении товара при разрешённых завазах по телефону. Да хочется и рыбку съесть и на дерево залезть :)

Нашёл как сделать если available_for_order, но не работает :(

<!-- Out of stock hook -->
{if (!$allow_oosp && $product->quantity <= 0) OR !$product->available_for_order OR (isset($restricted_country_mode) AND $restricted_country_mode) OR $PS_CATALOG_MODE}
<div id="oosHook"{if $product->quantity > 0} style="display: none;"{/if}>
</div>
{$HOOK_PRODUCT_OOS}
{/if}


даже просто вставка {$HOOK_PRODUCT_OOS} без условий появляется, только если у товара стоит "Не разрешать заказ"
В какой момент присваивается переменная HOOK_PRODUCT_OOS я не понял

www.prestadev.ru