Как делать/продавать подписки на базе opencart. Создаём магазин подписок.

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

 class=

Здесь нужно предусмотреть возможность выбирать подразделы и длительность подписки (на основе опций)

 class=

2. сделать парсер, например, с помощью simplehtmldom, который будет записывать в БД всю необходимую  новостную информацию c новостных порталов.

 class=

3. включить АПИ в админке opencart 3/0/2 по адресу site.ru/admin/index.php?route=user/api/edit. Сгенерировать ключ

4. вставить ключ АПИ в скрипт точки входа  admin/subscmail.php

 class=

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

Скрипт admin/subscmail.php нужно поставить на автоматическое выполнение через крон каждый час.

5.В результате отработки subscmail.php происходит вызов метода index контроллера опенкарта catalogcontrollerapicontact.php

Здесь подготавливаются данные, необходимые для рассылки: еmail отправителя, новостные материалы,email подписчиков. Для получения информации о подписках и новостных материалах, набежавшим по ним, используется методы модели catalogmodelapicontact.php:

getEmailsByProductsOrdered (получает данные о заказах (подписках) и новостные статьи)

getExperingSubscTotal (определяет по каждому действующему заказу — со статусом «оплачен,в работе» — суммарное количество истёкших подписок + подписок с остатком <=10 дней и количество оформленных подписок),

getProductsSubscRest (подсчитывает остатки времени по подпискам) Если БД содержит актуальные данные, по которым контроллер смог сформировать рассылочный пакет данных, то далее в нём вызывается метод sendEmail для отправки писем подписчикам.

Вся информация берется из таблиц БД:

  • oc_subsc_protocol для протоколирования рассылок по каждому заказу. Позволяет скриптам определять моменты времени, когда уже пора отправлять письма.
  • data_pars для хранения спарсенных новостных статей
  • option_rubric_relation для сопоставление идентификаторов опций опенкарта с индетификаторами изданий/рубрик/подрубрик таблицы data_pars . Например,  здесь прописано,
 class=

что опции 1.08 Происшествия  опенкарта соответствуют Аиф происшествия таблицы парсера data_pars

  • product_edition_relation для сопоставление идентификаторов продуктов опенкарта с идентификаторами изданий таблицы data_pars . Например,  здесь прописано
 class=

что товару «АргументыИфакты» опенкарта соответствует издание Аиф таблицы парсера data_pars

  • subsc_period хранит периоды рассылки дл каждого заказа. Если администратором не выбран период рассылки, то соответствующей записи в таблице не будет.  В таком случае его значение берется по умолчанию равным 2раза/день.

6. для настройки периода рассылки по каждому заказу используется поле

 class=

страницы редактирования заказа по адресу site.ru/admin/index.php?route=sale/order/edit

Здесь в стандартный код опенкарта внесены изменения. Это файл adminviewtemplatesaleorder_form.twig

После строки

<div class="tab-pane active" id="tab-customer">

Добавлен код

              <div class="form-group">
                <label class="col-sm-2 control-label" for="input-mailperiod">Периодичность рассылки</label>
                <div class="col-sm-8">
                  <input max="24" min="1" type="number" name="mailperiod" value="{{ mailperiod }}" placeholder="от 1 до 4 раз в день" id="input-mailperiod" class="form-control" />
                </div>
                <div class="col-sm-2">
                  <button type="button" id="button-save-period" class="btn btn-primary"><i class="fa fa-check-circle"></i> сохранить</button>
                </div>
              </div>
              <script type="text/javascript">
                $(document).on('click','#button-save-period',function () {
                  // Reward
                      $.ajax({
                        url: '{{ catalog }}index.php?route=api/contact/addMailPeriod&api_token={{ api_token }}&order_id={{ order_id }}',
                        type: 'post',
                        data: 'period=' + $('input[name='mailperiod']').val(),
                        dataType: 'json',
                        crossDomain: true,
                        success: function(json) {
                          $('.alert-dismissible, .text-danger').remove();
                          $('.form-group').removeClass('has-error');

                          if (json['error']) {
                            $('#content > .container-fluid').prepend('<div class="alert alert-danger alert-dismissible"><i class="fa fa-exclamation-circle"></i> ' + json['error'] + ' <button type="button" class="close" data-dismiss="alert">×</button></div>');

                            // Highlight any found errors
                            $('input[name='reward']').closest('.form-group').addClass('has-error');
                          }

                          if (json['success']) {
                            $('#content > .container-fluid').prepend('<div class="alert alert-success alert-dismissible"><i class="fa fa-check-circle"></i> ' + json['success'] + ' <button type="button" class="close" data-dismiss="alert">×</button></div>');

                            // Refresh products, vouchers and totals
                            setTimeout(function () {
                              $('#button-refresh').trigger('click')
                            },2000);
                          }
                        },
                        error: function(xhr, ajaxOptions, thrownError) {
                          alert(thrownError + "rn" + xhr.statusText + "rn" + xhr.responseText);
                        }
                      });
                });
              </script>

guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

СТАТЬИ БЛОГА ПО РУБРИКЕ И МЕТКАМ

img

Какие включить доп. функции в плитку тегов

1. добавление тегов с автоподстановкой* через админку

*автоподстановкой названий товаров/категорий

см.видео

2. вывод плитки в любом месте шаблона через селекторы html(class или id)

см.видео

пояснения

подробная инструкция

3. замена дизайна плитки тегов с «карусели»(базовый дизайн) на «таблетки»

скрин (декстопная версия)

скрин (мобильная версия)


3а. замена изначального дизайна на «квадраты»

живой пример

скрины


3b. замена изначального дизайна на цепочку с кнопкой

живой пример

скрины


3c. замена изначального дизайна на дизайн с табами

скрин

живой пример_1

живой пример_2 (с картинками у тегов)

живой_пример_3 (с кнопкой <показать все>)


4. функция «упорядочивание тегов по полкам на витрине».

Подойдёт тем, у кого на одной странице очень много тегов и их нужно как-то упорядочить.

см.скриншот(декстоп)

см.скриншот(смартфон)

видео

живой пример

4а.Вывод плиток тегов в нескольких областях сразу

скриншот

инструкция

5. функция «отобразить плитку во всех товарах категории».

Допустим, у вас в магазине есть категория, в которой 500 товаров, а вам требуется добавить одну и туже плитку тегов в каждом из них. Если подключена данная функция, то достаточно добавить в эксель-файл для импорта только 1 строку и теги появятся на 500 страницах.


5_a. расширение функции №5 на подкатегории.


6. вывод плитки в листинге товаров

см.скрин

7. мультиязычность

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

скриншот

8. Самостоятельный генератор тегов из товаров

см.статью


10. выгрузка всех тегов с сайта в эксель-файл

11. добавление тегов непосредственно в админке товара или категории

скрин

инструкция

12. Формирование посадочных страниц  к опциям/атрибутам стандартного фильтра

у страниц стандартного фильтра товаров появится ЧПУ(SEO URL), мета-теги (keywords,description), title (заголовок страницы) и h1.

видео


13. Ранжирование тегов по популярности

Какие включить доп. функции в плитку тегов

1. добавление тегов с автоподстановкой* через админку

*автоподстановкой названий товаров/категорий

см.видео

2. вывод плитки в любом месте шаблона через селекторы html(class или id)

см.видео

пояснения

подробная инструкция

3. замена дизайна плитки тегов с "карусели"(базовый дизайн) на "таблетки"

скрин (декстопная версия)

скрин (мобильная версия)


3а. замена изначального дизайна на "квадраты"

живой пример

скрины


3b. замена изначального дизайна на цепочку с кнопкой

живой пример

скрины


3c. замена изначального дизайна на дизайн с табами

скрин

живой пример_1

живой пример_2 (с картинками у тегов)

живой_пример_3 (с кнопкой <показать все>)


4. функция "упорядочивание тегов по полкам на витрине".

Подойдёт тем, у кого на одной странице очень много тегов и их нужно как-то упорядочить.

см.скриншот(декстоп)

см.скриншот(смартфон)

видео

живой пример

4а.Вывод плиток тегов в нескольких областях сразу

скриншот

инструкция

5. функция "отобразить плитку во всех товарах категории".

Допустим, у вас в магазине есть категория, в которой 500 товаров, а вам требуется добавить одну и туже плитку тегов в каждом из них. Если подключена данная функция, то достаточно добавить в эксель-файл для импорта только 1 строку и теги появятся на 500 страницах.


5_a. расширение функции №5 на подкатегории.


6. вывод плитки в листинге товаров

см.скрин

7. мультиязычность

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

скриншот

8. Самостоятельный генератор тегов из товаров

см.статью


10. выгрузка всех тегов с сайта в эксель-файл

11. добавление тегов непосредственно в админке товара или категории

скрин

инструкция

12. Формирование посадочных страниц  к опциям/атрибутам стандартного фильтра

у страниц стандартного фильтра товаров появится ЧПУ(SEO URL), мета-теги (keywords,description), title (заголовок страницы) и h1.

видео


13. Ранжирование тегов по популярности

img

Создание мульти склада в opencart и получение остатков из 1С

  • Реализована возможность работать с несколькими складами в Opencart. Общий остаток товара складывается из остатков на складах.
  • Реализована передача остатков в интернет-магазин (ИМ) из выгрузки 1С.
  • Реализован вывод остатков по складам в карточке товара.

II. Подробное описание модуля

1.Передача остатков в ИМ настраивается с любых складов 1с, например, с основного склада и двух других.  Есть возможность использовать любые статусы наличия, например,

— если на «складе 1» товара нет, но на основном складе этот товар есть (или есть на складе 2), то в карточке на витрине будет показываться статус ожидание 1 день
— если нигде товара нет, то в карточке — статус нет в наличии
— если на выбранном складе товара менее Х штук, то статус — мало. (значение Х доступно для корректировки из админ-панели)

2. В модуле опенкарта реализована возможность добавлять/убирать склады и корректировать их настройки.  Чтобы работало обновление остатков из 1С, в настройках модуля требуется складам присвоить GUID из 1с.

3. Списание остатков производится в зависимости от способа доставки в заказе. Например, если выбрана курьерская доставка, то списание товара начнётся с основного склада, продолжится со склада 1 (при отсутствии на основном), далее со склада 2. Если в методе доставки заказа выбран самовывоз со склада 1 или со склада 2, то вначале списание произойдет с выбранного склада, затем с основного склада, и далее с последнего склада, где остались остатки. Приоритеты списания остатков настраиваются в админ-панели модуля.

Создание мульти склада в opencart и получение остатков из 1С

  • Реализована возможность работать с несколькими складами в Opencart. Общий остаток товара складывается из остатков на складах.
  • Реализована передача остатков в интернет-магазин (ИМ) из выгрузки 1С.
  • Реализован вывод остатков по складам в карточке товара.

II. Подробное описание модуля

1.Передача остатков в ИМ настраивается с любых складов 1с, например, с основного склада и двух других.  Есть возможность использовать любые статусы наличия, например,

-- если на "складе 1" товара нет, но на основном складе этот товар есть (или есть на складе 2), то в карточке на витрине будет показываться статус ожидание 1 день
-- если нигде товара нет, то в карточке - статус нет в наличии
-- если на выбранном складе товара менее Х штук, то статус - мало. (значение Х доступно для корректировки из админ-панели)

2. В модуле опенкарта реализована возможность добавлять/убирать склады и корректировать их настройки.  Чтобы работало обновление остатков из 1С, в настройках модуля требуется складам присвоить GUID из 1с.

3. Списание остатков производится в зависимости от способа доставки в заказе. Например, если выбрана курьерская доставка, то списание товара начнётся с основного склада, продолжится со склада 1 (при отсутствии на основном), далее со склада 2. Если в методе доставки заказа выбран самовывоз со склада 1 или со склада 2, то вначале списание произойдет с выбранного склада, затем с основного склада, и далее с последнего склада, где остались остатки. Приоритеты списания остатков настраиваются в админ-панели модуля.

img

Плитка тегов купить — seo tag tile — полное описание

— Плитка тегов позволяет корректировать релевантность страниц для поисковиков и улучшать поведенческие факторы(например, моб.версия сайта становится удобнее). Назначение модуля в том, чтобы ключевые слова попали в зону активных элементов интерфейса, минуя текст и исключая переспам. SEO эксперт Антон […]

Плитка тегов купить — seo tag tile — полное описание

— Плитка тегов позволяет корректировать релевантность страниц для поисковиков и улучшать поведенческие факторы(например, моб.версия сайта становится удобнее). Назначение модуля в том, чтобы ключевые слова попали в зону активных элементов интерфейса, минуя текст и исключая переспам. SEO эксперт Антон […]
img

Создание мульти склада в opencart и получение остатков из 1С

  • Реализована возможность работать с несколькими складами в Opencart. Общий остаток товара складывается из остатков на складах.
  • Реализована передача остатков в интернет-магазин (ИМ) из выгрузки 1С.
  • Реализован вывод остатков по складам в карточке товара.

II. Подробное описание модуля

1.Передача остатков в ИМ настраивается с любых складов 1с, например, с основного склада и двух других.  Есть возможность использовать любые статусы наличия, например,

— если на «складе 1» товара нет, но на основном складе этот товар есть (или есть на складе 2), то в карточке на витрине будет показываться статус ожидание 1 день
— если нигде товара нет, то в карточке — статус нет в наличии
— если на выбранном складе товара менее Х штук, то статус — мало. (значение Х доступно для корректировки из админ-панели)

2. В модуле опенкарта реализована возможность добавлять/убирать склады и корректировать их настройки.  Чтобы работало обновление остатков из 1С, в настройках модуля требуется складам присвоить GUID из 1с.

3. Списание остатков производится в зависимости от способа доставки в заказе. Например, если выбрана курьерская доставка, то списание товара начнётся с основного склада, продолжится со склада 1 (при отсутствии на основном), далее со склада 2. Если в методе доставки заказа выбран самовывоз со склада 1 или со склада 2, то вначале списание произойдет с выбранного склада, затем с основного склада, и далее с последнего склада, где остались остатки. Приоритеты списания остатков настраиваются в админ-панели модуля.

Создание мульти склада в opencart и получение остатков из 1С

  • Реализована возможность работать с несколькими складами в Opencart. Общий остаток товара складывается из остатков на складах.
  • Реализована передача остатков в интернет-магазин (ИМ) из выгрузки 1С.
  • Реализован вывод остатков по складам в карточке товара.

II. Подробное описание модуля

1.Передача остатков в ИМ настраивается с любых складов 1с, например, с основного склада и двух других.  Есть возможность использовать любые статусы наличия, например,

-- если на "складе 1" товара нет, но на основном складе этот товар есть (или есть на складе 2), то в карточке на витрине будет показываться статус ожидание 1 день
-- если нигде товара нет, то в карточке - статус нет в наличии
-- если на выбранном складе товара менее Х штук, то статус - мало. (значение Х доступно для корректировки из админ-панели)

2. В модуле опенкарта реализована возможность добавлять/убирать склады и корректировать их настройки.  Чтобы работало обновление остатков из 1С, в настройках модуля требуется складам присвоить GUID из 1с.

3. Списание остатков производится в зависимости от способа доставки в заказе. Например, если выбрана курьерская доставка, то списание товара начнётся с основного склада, продолжится со склада 1 (при отсутствии на основном), далее со склада 2. Если в методе доставки заказа выбран самовывоз со склада 1 или со склада 2, то вначале списание произойдет с выбранного склада, затем с основного склада, и далее с последнего склада, где остались остатки. Приоритеты списания остатков настраиваются в админ-панели модуля.

img

Opencart.Купить платную версию модуля «Плитка тегов» | «SEO tag tile»

Модуль позволяет выводить разные теги на разных страницах сайта, например,посадочных страницах фильтров,товаров, категорий и т.п. Выводить можно в любых разделах, для которых задана схема/макет в настройках. Плитка сворачивается/разворачивается при нажатии на кнопку и прокручивается в карусели (см.скрины […]

Opencart.Купить платную версию модуля «Плитка тегов» | «SEO tag tile»

Модуль позволяет выводить разные теги на разных страницах сайта, например,посадочных страницах фильтров,товаров, категорий и т.п. Выводить можно в любых разделах, для которых задана схема/макет в настройках. Плитка сворачивается/разворачивается при нажатии на кнопку и прокручивается в карусели (см.скрины […]
img

Генератор тега-меток из товаров

Платформа: opencart 1 Нужен тем, у кого нет фильтра товаров в магазине или он не генерирует посадочные страницы, а также если вы хотите упростить процесс создания тегов. Например, вы сможете взять товары из разных категорий интернет-магазина […]

Генератор тега-меток из товаров

Платформа: opencart 1 Нужен тем, у кого нет фильтра товаров в магазине или он не генерирует посадочные страницы, а также если вы хотите упростить процесс создания тегов. Например, вы сможете взять товары из разных категорий интернет-магазина […]
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x