Товары По Подписке - Сохранять Историю

Хотелось бы чтобы у раздела "Товары по подписке" - сохранялась история всех подписок, например, общее количество подписчиков, дата подписки, дата отправления уведомления, e-mail подписчика, одним словом, все, что возможно вытащить.

Это нужно для маркетинговых исследований, которыми в дальнейшем будут руководствоваться логисты.

Посоветуйте, пожалуйста, с чего можно начать?

Заранее спасибо!

Я добавлю еще идею - У меня старенький магазин, и куча товаров которых уже не будет никогда. А люди хотят их и подписываются на них. И база с подписками пухнет и наливается соком новых, к сожалению, безнадежных подписчиков.

Надо бы добавить опции при подписке - на какой период подписка для них актуальна, неделю, месяц пол года. Ну и вычищать по прошествии. Может даже письмо им отправлять - "Дорогой покупатель, селяви, такое большое селяви!"

Я добавлю еще идею - У меня старенький магазин, и куча товаров которых уже не будет никогда. А люди хотят их и подписываются на них. И база с подписками пухнет и наливается соком новых, к сожалению, безнадежных подписчиков.

Надо бы добавить опции при подписке - на какой период подписка для них актуальна, неделю, месяц пол года. Ну и вычищать по прошествии. Может даже письмо им отправлять - "Дорогой покупатель, селяви, такое большое селяви!"

Может для этих товаров выключить подписку?

Может для этих товаров выключить подписку?

Вариант, но не будет простым решением. Нужно будет сидеть, руками сортировать какие товары выбили навсегда, а какие нет. Непродуктивно. Можно конечно развить фантазию и анализировать дату последнего обновления, но мне кажется лишнее.

А так, пол года прошло, всех отписало. Ну и это я не сам придумал :) Подсмотрел у других.

Посоветуйте, пожалуйста, с чего можно начать?

Заранее спасибо!

Я помню о вас, просто навалились дела (спасибо YouTube :) )

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

Будем делать с помощью модуля "Мои изменения".

Способ подойдёт для сохранения любых других действий.

1. Нашли контроллер, который добавляет подписчика, делаем для него pre контроллер, который будет выполнятся перед основным действием.

Создаём файл:

app/addons/my_changes/controllers/frontend/products.pre.php

2. Вставляем код, который будет выполнятся:

<?php

use Tygh\Registry;

if (!defined(‘BOOTSTRAP’)) { die(‘Access denied’); }

if ($mode == ‘product_notifications’) {

// Получим информацию о товаре по id
$product_data = fn_get_product_data($_REQUEST['product_id'] , $_SESSION['auth']);

// Подготовим данные на запись
$data = array(
    'product_id' => $_REQUEST['product_id'],
    'product_code' => $product_data['product_code'],
    'user_id' => $_SESSION['auth']['user_id'],
    'email' => (!empty($_SESSION['cart']['user_data']['email']) ? $_SESSION['cart']['user_data']['email'] : (!empty($_REQUEST['email']) ? $_REQUEST['email'] : '')),
    'date' =>  fn_date_format(time(), Registry::get('settings.Appearance.date_format'))
);

// Путь к директории с файлами (var/files/)
$path = fn_get_files_dir_path();
// Создадим папку, если нет.
fn_mkdir($path);

// Название файла в который будем писать.
$file = 'product_notifications.csv';
// Полный путь к файлу
$file = fopen($path . $file, 'a');

// Запишем данные в файл
if (!empty($file)) {
    $string = implode(';', $data);
    fputs($file, $string . PHP_EOL);
    fclose($file);
}

}

3. Включаем модуль "Мои изменения".

4. Подписываемся на несколько товаров.

5. Информация о подписке будет сохранена в файл:

var/files/1/product_notifications.csv

Также будет доступна для скачки

www.site.ru/var/files/1/product_notifications.csv


Посоветуйте, пожалуйста, с чего можно начать?

Решение задачи:

http://forum.cs-cart.com/topic/42076-%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D1%8B-%D0%BF%D0%BE-%D0%BF%D0%BE%D0%B4%D0%BF%D0%B8%D1%81%D0%BA%D0%B5-%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D1%8F%D1%82%D1%8C-%D0%B8%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8E/#entry231744

Решение задачи:

Спасибо огромное! :wub:

Эффективнее было бы сделать модуль , который информировал бы подписчика ,через определенный период (неделя/месяц итд) ,если товар на который он подписан так и не появился в наличии ИМ ,то ему отправлялось бы письмо с похожими товарами из данной категории и цене. И тогда не придется терять подписчиков - потенциальных клиентов.