[msKuponator] Сайт-купонатор на miniShop2

После установки, в бекенде на странице товара появится вкладка «Купонатор», там можно настроить или сгенерировать купоны для данного товара.


На странице списка заказов miniShop2 в модальном окне заказа появится вкладка «Купонатор» со списком купонов, которые купил пользователь, которые в свою очередь присваиваются к заказу только после оплаты оного.


У товара может быть разделение на теги. Например, товар называется «Массаж со скидкой», у него могут быть теги «Класический», «Спортивный» и т.д. Для каждого тега можно сгенерировать нужное кол-во купонов. А пакетом msOptionsPrice2 выставить разные цены для них.


Купоны можно распечатывать из бекенда:


Или с фронта при выводе списка купленных купонов:


Что умеет:


— Генерировать купоны для конкретного товара в любом количестве,
— Распечатывать список купонов из бекенда (для партнёра, например),
— Проверять во многих ситуациях, есть ли свободные купоны у товара,
— Выводить список купонных заказов для юзера,
— Выводить список купонов определённого заказа для юзера,
— Распечатывать один купон или массово весь заказ.

Список сайтов купонаторов, для общего ознакомления:


www.biglion.ru/
vigoda.ru/
www.groupon.ru/
www.kupibonus.ru/

Инструкция по настройке на сайте:


1) При вызове сниппета [[!msCart]] рядом необходимо вызвать сниппет [[!msKuponatorInitialize]]. Иначе пакет не сможет контролировать действия производимые с корзиной.
2) Заходите в нужный товар на вкладку «Купонатор» и генерируете нужное кол-во купонов.
3) Создаёте страницу «Мои заказы» с таким кодом:
[[!msKuponatorOrders?
	&page_id=`14`
	&toPlaceholder=`orders`
]]
[[+orders:isnot=``:then=`[[+orders]]`:else=`Список заказов пуст`]]
Параметр &page_id принимает ID страницы «Мои купоны», где выводится сниппет msKuponatorOrderCoupons (смотрите ниже)

4) Создаёте страницу «Мои купоны» с таким кодом:
[[!+modx.user.id:isloggedin:is=`1`:then=`
	[[!msKuponatorOrderCoupons?
		&order_id=`[[!#GET.order]]`
		&toPlaceholder=`coupons`
	]]
	[[+coupons:isnot=``:then=`[[+coupons]]`:else=`Заказ не найден`]]
`:else=`
	Авторизуйтесь
`]]

Особенности:


— При добавлении товара в корзину происходит проверка всех купонов в корзине на наличие, а также, естественно и добавляемого товара.
— При смене кол-ва купонов в корзине также происходит проверка всей корзины на наличие. В случае, если свободных осталось меньше, то кол-во купонов в корзине уровняется с имеющимся.
— При оформлении заказа (после нажатия на submit) происходит аналогичная проверка корзины и если что-то изменилось — сообщается пользователю.
— При оплате заказа, а точнее при смене статуса на «Оплачен» происходит проверка всех заказов с id статуса ниже, чем у «Оплачен» на нехватку купонов. Если есть заказы с купонами, которых не хватает, а настройка для товара «Сгенерировать при нехватке» отключена, то кол-во купонов в заказе уровняется с имеющимся, а цена заказа будет пересчитана.
— При оплате заказа, происходит проверка на наличие купонов. Если настройка для товара «Сгенерировать при нехватке» отключена, то кол-во купонов в заказе уменьшится и пользователь купит только то, что есть. На email ему и менеджерам уйдёт уведомление об этом. Следовательно, разницу надо будет вернуть покупателю. Такое может произойти очень редко, но не стал обходить ситуацию стороной, решил таким способом (более универсального ничего придумать не удалось). А чтобы такого не происходило вообще, нужно, чтобы настройка у товара «Сгенерировать при нехватке» была включена.

Важно!


— Если в товар не сгенерировано купонов или не указана настройка «Генерировать автоматически», то товар не является купонами и компонент обходит его стороной.

Пакет можно приобрести на modstore.pro
Павел Гвоздь
16 декабря 2015, 01:50
1
3 454
+14

Комментарии: 34

Александр Москвин
16 декабря 2015, 12:37
0
А можно ли сделать промокоды на выбранные товары?
допустим, акция проходит в честь такого-то события.
нужно именно промокод для выбранной группы товаров или отдельно (категорий)

Полезная вещь, но почему-то нет такого.
    Павел Гвоздь
    16 декабря 2015, 13:00
    0
    Насколько я знаю купонатор не для таких дел нужен. Это сайт, вроде http://www.kupikupon.kz/, на котором продают купоны на скидки каких-либо услуг. Заказчик хотел именно этого. Или я что-то недопонял в твоём сообщении?
    Павел Гвоздь
    16 декабря 2015, 13:03
    +1
    Ты говоришь, насколько я понимаю, о промокодах, которые можно будет рассылать юзерам, за счёт которых они смогут получать скидки на те или иные группы товаров (или категории) в твоём интернет магазине, вбив промокод на странице корзины, верно?
      Александр Москвин
      16 декабря 2015, 16:05
      +1
      ага всё верно, о промокоде говорю. (только для товаров или категорий товаров или на весь каталог)
      Пока данное решение не видел
        Павел Гвоздь
        16 декабря 2015, 16:09
        0
        Сделаю. Уже начал. Если есть соображения — готов выслушать.
          Александр Москвин
          17 декабря 2015, 22:55
          +1
          Есть соображение
          Frontend
          Нужно, чтобы в корзине был input «промокод»
          Как не обязательное поле, если не заполнен.
          После заполнения, шел запрос к таблице, где хранятся промокоды с периодом действия.
          Если всё соответствует, текущему времени и сам промокод, то автоматически применяется скидка для заданных параметров в админке.

          В админке (backend)
          Возможность добавить любой промокод —
          указать период действия,
          выбрать категории
          или отдельные товары
          Если ничего не выбрано применяется ко всему магазину.
          (привязка к группе пользователя, вот не знаю нужна или не нужна) промокод всё-таки.

          По идее можно сделать как отдельный компонент и продавать, а можно добавить к этому,
            Павел Гвоздь
            18 декабря 2015, 07:47
            0
            К этому добавлять не вижу смысла. У этого совершенно иное предназначение…
Павел Гвоздь
16 декабря 2015, 13:22
+1
Появился в магазине пакетов для MODX Revo modStore.pro — msKuponator.
Алексей К
16 декабря 2015, 20:08
0
Пока не вникал, но кажется что компонент частично повторяет msDiscount. Там ведь тоже есть купоны. Или я что-то неправильно понимаю?
Евгений
22 декабря 2015, 10:44
+1
Эх, где Вы были раньше?
Делал что-то подобное для заказчика пол года назад на базе shopkeeper'a… Но получилась связка из кучи костылей и говнокода.
ViES
26 декабря 2015, 18:22
0
Опишите пожалуйста ключевые отличия от msDicount.
    Павел Гвоздь
    26 декабря 2015, 19:32
    0
    А вы тогда напишите, пожалуйста, чем они схожи?)))
      ViES
      27 декабря 2015, 12:55
      0
      Ну судя по описанию:
      msDiscount — Генерация одноразовыз купонов со скидочными кодами
      msKuponator — Генерировать купоны для конкретного товара в любом количестве
        Павел Гвоздь
        27 декабря 2015, 14:06
        0
        Я, помоему, не совсем правильное описание составил для данного пакета. Почему-то некоторые либо не знают, что такое «купонатор», либо не читают название пакета. :)

        Список сайтов купонаторов, для общего ознакомления:
        www.biglion.ru/
        vigoda.ru/
        www.groupon.ru/
        www.kupibonus.ru/

        P.S.: Сейчас посмотрел и понял, что описания то нет у пакета…
        Павел Гвоздь
        27 декабря 2015, 14:09
        0
        А то, что ты имеешь ввиду, допишу со дня на день. Тогда и поговорим о ключевых отличиях от msDiscount. =)
          ViES
          28 декабря 2015, 07:29
          0
          Т.е. как я понимаю — msDicsount рассчитан на скидки и купоны для конкретного товара на сайте, а ваш компонент — на продажу и учет самих купонов на какие-либо услуги?
            Павел Гвоздь
            28 декабря 2015, 07:40
            0
            Всё верно. Купонатор именно для этого предназначается.
        Павел Гвоздь
        02 января 2016, 07:55
        +1
        Ну вот то, что ты имел ввиду, сравнивая msKuponator с msDiscount. Представляю вниманию msPromoCode — Скидочные промо-коды для miniShop2.
          ViES
          13 января 2016, 10:24
          0
          Спс, разницу уловил теперь, мне нужен именно купонатор, так что прикуплю)
Volk
15 января 2016, 10:19
0
Вопрос такой, а можно ли сделать генерацию купонов по маске? Ну и с автоматическим заполнением поля маски последней используемой маской для генерации. Либо по количеству символов в купоне. К примеру там генерирует всегда 24 символа и 7 дефисов, что получается 31 символ. Некоторым предполагаемым партнером нужно будет по короче код купона. К примеру хватит и из 4 символов, или может кому понадобится определенное количество символов, что бы партнер уже у себя с легкость настроил автоматический прием купонов от нашего проекта.
    Павел Гвоздь
    15 января 2016, 10:27
    0
    Да, можно. Сделаю, как только напишешь этот комментарий в тех поддержку дополнения в modstore.pro.
ViES
19 января 2016, 08:18
0
Почему при попытке добавить купон в корзину из общего списка купонов, а не со страницы купона, выдает ошибку — «Этих купонов, к сожалению, не осталось». Общий список вывожу чз
[[!mFilter2?
                    &class=`msProduct`
                    &element=`msProducts`
                    &parents=`[[*id]]`
...
]]
    Павел Гвоздь
    19 января 2016, 09:12
    0
    Для платных дополнений есть тех поддержка в магазине modstore.pro. Туда, пожалуйста, напиши и доступ к сайту.
    Павел Гвоздь
    19 января 2016, 21:29
    0
    Проблема решена?
      ViES
      20 января 2016, 04:56
      0
      Написал в поддержка.
Димитрий
27 апреля 2016, 17:25
0
Вопрос такой, в модуле можно выставить срок действия купона? Как на groupon.ru.
    Павел Гвоздь
    27 апреля 2016, 17:51
    0
    Нет, такого нет. Это делается самостоятельно.
Сергей
24 апреля 2017, 15:43
0
Добрый день!
Можно вывести количество купленных купонов?
Oleg Pimanov
13 июня 2018, 10:35
0
Добрый день, Павел! Скажите пожалуйста, а это длополнение способно обрабатывать скидку для каждого покупателя в зависимости от того, соклько этот покупатель купил раньше (что-то типа скидка постоянного покупателя). Спасибо за ответ.
Олег
21 сентября 2018, 23:33
0
Подскажите, есть ли возможность прикреплять картинку самих купонов?
Мне нужно решение для продажи билетов на праздник. Вроде данный компонент подходит, но непонятно как отправлять покупателям сам билет и возможно ли прикрепить его к товару.