Автор Тема: Модуль BlockWishList не отправляет сообщения на e-mail  (Прочитано 3865 раз)

02 Октябрь 2014, 18:01:35
Ответ #30
  • Новичок
  • *
  • Сообщений: 41
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Это поэзия...)) Чувствуешь какой-то экстаз, когда всё получается!

В общем, сделал почти так, как мне объяснили (помогли, за что отдельное спасибо!) и как я описывал... осталось только красоту в шаблоне письма навести и добавить в SELECT (если это нужно, конечно) требуемых полей.

Что сделал:
1. Открыл класс sendwishlist.php, туда после

$to = Tools::getValue('email'.$i);
$wishlist = WishList::exists($id_wishlist, $context->customer->id, true);
добавил следующее (набор вытаскиваемых из массива данных просто пример для проверки работы):
$w = WishList::getProductByIdCustomer($id_wishlist, $context->customer->id, $context->language->id);
$items_table = '';
foreach ($w as $key => $product)
{
$items_table .=
'<tr>
<td style="padding:0.6em 0.4em;">'.$product['name'].'</td>
<td style="padding:0.6em 0.4em;">'.$product['quantity'].'</td>
</tr>';
}
Далее в этом же классе, в запускаемую функцию MAIL::SEND, где определяются переменные через array() добавил:
'{items_table}' => $items_table,
Ну и поместил в нужное место шаблона свою переменную {items_table}.

В пришедшем письме получил названия артикулов и их количество. Дальше нужно навести порядок (красоту).

Следующий момент, может кто-то подскажет, есть ли функционал (стандартный, модульный), который позволяет для клиента создавать заказ самому (вручную в админке - из раза в раз такое требуется), чтобы ему падало на почту сообщение. В идеале - это переход в кабинет и редактирование(оплата, доставка, адрес)/удаление/подтверждение заказа?

Я знаю, что есть возможность создания из брошенной корзины заказа, точно есть в 1.5.6.0
Про 1.6.0.9 не скажу, посмотрел, но не увидел, просто корзина и всё.
Я к тому, что можно было бы делать INSERT в корзину, когда клиент отправил ПРЕДЗАКАЗ и оттуда уже, по факту прихода товара, создавать для него заказ, предупреждать, что он должен его подтвердить в течение суток, а потом просто в админке его убивать/обрабатывать.
04 Октябрь 2014, 23:32:57
Ответ #31
  • Новичок
  • *
  • Сообщений: 41
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Уважаемые модераторы и форумчане,

Возникла другая проблема с модулем:
1. Создал новый Лист.
2. Зашёл в карточку товара, выбрал этот Лист, нажал Добавить.
3. Открываю этот Новый Лист, куда добавлял товар, там пусто.

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

Может кто-то знает, как исправить, кто-то сталкивался?
05 Октябрь 2014, 12:56:29
Ответ #32
  • Ветеран
  • *****
  • Сообщений: 1285
  • Репутация: +13/-1
  • Сообщество PrestaShop
    • Просмотр профиля
В этом модуле все товары добавляюится в один лист, нет там возможности создавать разные листы.
05 Октябрь 2014, 14:54:06
Ответ #33
  • Новичок
  • *
  • Сообщений: 41
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В этом модуле все товары добавляюится в один лист, нет там возможности создавать разные листы.
Да? ))) Ну, тогда я открою "Америку"! в 1.6.0.9 есть возможность создавать новые листы (вводишь имя и нажимаешь Сохранить), а в карточке товара после этого появляется возможность выбора Листа, либо того, что по умолчанию, либо нового.

Так что опрос продолжается, может кто-то знает решение проблемы?
05 Октябрь 2014, 15:40:22
Ответ #34
  • Новичок
  • *
  • Сообщений: 41
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Дополню, вот ссылка, которая отвечает за добавление, если листов >1 в blockwishlist-extra.tpl:
<button class="" onclick="WishlistCart('wishlist_block_list', 'add', '{$id_product|intval}', $('#idCombination').val(), document.getElementById('quantity_wanted').value, $('#idWishlist').val()); return false;"  title="{l s='Add to wishlist' mod='blockwishlist'}">
Вот этот параметр отвечает за передачу id_wishlist: $('#idWishlist').val()
Но он передаёт 1. Идеи?
05 Октябрь 2014, 16:42:22
Ответ #35
  • Ветеран
  • *****
  • Сообщений: 1285
  • Репутация: +13/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Можно вводить хоть десяток разных имен для списков фаворитов, только сохраняет все в один список. Возможно, создание множества листов добавили на будущее, в следующих версиях будет такая возможность. А в последней версии ее нет. Пробывал не раз, все в один лист. Как и в старой версии для prestashop 1.5. 
06 Октябрь 2014, 20:12:37
Ответ #36
  • Новичок
  • *
  • Сообщений: 41
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Хорошо, пусть будет так. Но переменная же лежит где-то? Её же можно подставить, верно?
Пусть "заточка" на будущее, нам то что мешает до ума довести?! =))
07 Октябрь 2014, 12:16:46
Ответ #37
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Любая переменная в prestashop определена в классе. Проверка переменных в контроллере. Хранение переменной в базе. Применение переменной в шаблоне.
Т.е. при изменении или добавление переменной нужно исправить 3 файла и поле в таблице базы данных.
17 Октябрь 2014, 13:30:47
Ответ #38
  • Новичок
  • *
  • Сообщений: 41
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Всем привет,

В общем, домучил я этот вопрос... Новые листы создаются без проблем, товар добавляется в тот лист, что выбран в карточке товара, всё прекрасно работает.
У меня дело было в том, что я переносил LEO тему на 1.6.0.9, естественно, я просто скопировал/перенёс старый файл ajax-wishlist.js
Заменил его новым, всё заработало.

Единственное, консоль Хрома жалуется на это:
if (isLogged == true)ошибка: islogged is not defined

Переделал:
if (isLogged = 1)
Далее вылетела ошибка is not defined на переменную added_to_wishlist. Скрипт до конца не отрабатывал, сообщение о том, что товар добавлен - не выдавал.
В самом начале функции WishlistCart добавил:
function WishlistCart(id, action, id_product, id_product_attribute, quantity, id_wishlist)
{
[b]var added_to_wishlist = 'Артикул добавлен';[/b]

После этих манипуляций товар добавляется в выбранный лист/список, по факту добавления появляется окошко fancybox с сообщением: Артикул добавлен.

У меня это функционал предзаказа.
Следующий шаг, на основе этого листа создавать корзину для покупателя, отправлять ему на неё ссылку (это всё работает сейчас), но нужно ставить товар под резерв, как при создании ЗАКАЗА.
По итогу, удаление такой корзины высвобождает товар, а завершение её оформления и подтверждение/превращение в ЗАКАЗ - не меняет кол-ва на складе.
 Идеи?  :D
17 Октябрь 2014, 13:40:04
Ответ #39
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Цитировать
ошибка: islogged is not defined
Нужно объявить переменную перед использованием. Добавить вначало
var isLogged;
17 Октябрь 2014, 13:45:12
Ответ #40
  • Новичок
  • *
  • Сообщений: 41
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Цитировать
ошибка: islogged is not defined
Нужно объявить переменную перед использованием. Добавить вначало
var isLogged;

Да, спасибо за подсказку, всё работает! ))