basket
Folders and files
Name | Name | Last commit date | ||
---|---|---|---|---|
parent directory.. | ||||
# =========================================================================== # # NG CMS // Плагины // Корзина заказа # # =========================================================================== # Плагин "корзина заказа" позволяет сделать из NGCMS небольшой интернет-магазин. В своей работе плагин использует плагины: * xfields - для формирования списка товаров, доступного к заказу * feedback - для заполнения данных о заказе и отправки самого заказа администраторам/менеджерам сайта Основные шаги для настройки/использования плагина: ==== XFields ==== 1. Необходимо определить для каких записей будет отображаться ссылка "добавить в корзину" 1.1. Для всех новостей 1.2. Только для тех новостей в которых есть выбранное вами доп. поле и его значение отлично от нуля 2. Создать поле в котором будет храниться стоимость 1 единицы ==== Feedback ==== 1. Создать форму, которая будет использоваться при формировании заказа (режим рассылки - HTML) [ == текущая версия отправляет заказ только на указанные в форме email'ы, отправка копии заказа его автору - невозможна == ] ==== Basket ===== 1. Настроить условия активации 2. Выбрать форму обратной связи ==== Шаблоны ===== > Текст email нотификации: В шаблоне plugins/feedback/tpl/mail.html.tpl добавить в нужное место переменную {{ plugin_basket }} > Собственные шаблоны плагина лежат в templates/default/plugins/basket/ > В mail.tpl доступна переменная {plugin_basket}, она заполняется из шаблона плагина total.tpl > В news.short.tpl и news.full.tpl доступно: /* Данный способ устарел, в данный момент используется AJAX добавление товаров в корзину, см. ниже */ блок [basket]..[/basket] (отображается при возможности положить этот товар в конзину) переменная {basket_link} со ссылкой на URL добавления товара в корзину /* Данный способ устарел, в данный момент используется AJAX добавление товаров в корзину, см. ниже */ ** плагин добавляет свою js библиотеку basket.js, она позволяет добавлять товары в корзину через AJAX пример правильного кода для добавления: [basket]<a href="#" onclick="rpcBasketRequest('plugin.basket.manage', {'action': 'add', 'ds':1,'id':{news-id},'count':1}); return false;">В корзину</a>[/basket] Плагин позволяет работать в разных режимах: - можно использовать новость как еденицу товара, одна новость - один товар, тогда "Работа с доп. полями внутри новостей" - можно использовать новость как группу товаров и выбирать что добавлять в корзину будеш из таблицы "Работа с таблицами доп. полей внутри новостей" - работают и совместно и поодиночке даже в пределах одной новости и направляются в корзину без конфликтов Например, если новость - это еденица товара. Внутри новости можно использовать табличные данные плагина xfields - это один и тот же товар но с разной ценой, цветом, размером, то вывод различных модификаций товаров может выглядеть так: {% for xdata in p.xfields._table.data %} <tr> <td> ID:{{ xdata.id }}</td> <td> Цвет: {{ xdata.field_color }}</td> <td> Цена: {{ xdata.field_prais }}</td> <td><a href="#" class="add_item_to_basket" data-tblid="{{ xdata.id }}">В корзину</a></td> </tr> {% endfor %} AJAX обработчик нажатия добавления товара в корзину на JQ: $(".add_item_to_basket").click(function () { var count = $("input[name*='count']").val(); var tblid = 0; tblid = $(this).attr("data-tblid"); rpcBasketRequest('plugin.basket.manage', {'action': 'add', 'ds':51,'id':tblid,'count':count}); return false; }); > total.tpl - Общий вывод по заказам в корзине, работает в main.tpl Переменные: {{ count }} - кол-во записей {{ price }} - общая стоимость ... > list.tpl - Корзина заказа (с возможностью обновлять кол-во заказанных товаров) {{ recs }} - кол-во записей {{ entries }} - массив со всеми записями корзины {{ entry.title }} - наименование товара {{ entry.count }} - кол-во товара {{ etry.sum }} - общая стоимость товара {{ entry.xfields.news.NAME }} - содержимое доп. поля NAME в новости из которой делался заказ {{ entry.xfields.tdata.NAME }} - содержимое доп. поля при заказе из таблицы внутри новости ... Более подробная информация о возможностях плагина: http://ngcms.ru/forum/viewtopic.php?id=2705 http://ngcms.ru/forum/viewtopic.php?id=2746 http://ngcms.ru/forum/viewtopic.php?pid=30259#p30259 http://ngcms.ru/forum/viewtopic.php?id=3743