kpoxas Опубликовано 5 сентября, 2010 Жалоба Поделиться Опубликовано 5 сентября, 2010 Вещь нужная, так как существуют скидки для разных групп, а переводить туда клиентов вручную напряжно.Итак решение:1) Надо добавить столбец в таблицу groups, где хранятся данные о группах, в котором будут лежать накопительные пределы.Для этого заходим в phpmyAdmin вашей БД магазина и выполняем запрос:ALTER TABLE groups ADD COLUMN acc_limit float(10,2) NOT NULL default '0.00'Тут float(10,2) означает, сколько нам понадобится знаков до и после запятой (в данном случае - 8 до и 2 после). Выставляете в зависимости от вашей валюты. Мне восьми хватит с головой.2) Далее скачиваем по ссылке http://narod.ru/disk/24524971000/simpla.zip.html файлы, которые надо заменить в точности так, как они лежат в архиве3) Только файл email_accumulated_discount.tpl кладем в папку design/ваш_шаблон/html/ - это шаблон уведомления, который отсылается зарегиным клиентам, когда они переходят в новую группу.Все работает так:когда статус оплаты заказа или сам его статус меняется на оплачен или выполнен соответственно, сервер считает сумму всех заказов клиента и подбирает следующую группу по накопительному пределу, куда его закинуть. Если есть таковая, то переносит покупателя в оную и отправляет уведомление.В закладке "Группы покупателей" добавилось новое поле "Накопительный предел".Надеюсь, кому-то помог.Буду рад предложениям.P.S. Ну плз, сделайте BBCode хоть какой-то А то добавлений в файлы очень мало, но тут их описываь - никто не поймет зрительно, пришлось файлы крепить измененные! Цитата Ссылка на сообщение Поделиться на другие сайты
tunerman Опубликовано 7 сентября, 2010 Жалоба Поделиться Опубликовано 7 сентября, 2010 Спасибо, респект тебе, как раз очень нужно было!!! Цитата Ссылка на сообщение Поделиться на другие сайты
kpoxas Опубликовано 7 сентября, 2010 Автор Жалоба Поделиться Опубликовано 7 сентября, 2010 тут же можно решить проблему с автопереносом покупателя в какую-то группу, например, "покупатели". То есть, если клиент зарегистрировался и купил хоть что-то, он может попасть в определенную группу. Этой группе достаточно выставить минимальный предел 0.01 Цитата Ссылка на сообщение Поделиться на другие сайты
tunerman Опубликовано 8 сентября, 2010 Жалоба Поделиться Опубликовано 8 сентября, 2010 Как бы еще сделать такую систему, при которой только пользователь состоящий в какой-нибудь группе, мог вступать в след. группу при увеличении покупок.kpoxas - случайно не знаешь как можно так доработать? Цитата Ссылка на сообщение Поделиться на другие сайты
kpoxas Опубликовано 9 сентября, 2010 Автор Жалоба Поделиться Опубликовано 9 сентября, 2010 Знаю Заходим в admin/Order.admin.php Находим функцию// перевод пользователя в нужную группу по накопительной скидке by kpoxasfunction set_accumulated_group($user_id) { // получим сумму всех заказов $query = sql_placeholder('SELECT SUM(orders_products.price*orders_products.quantity) as sum FROM orders LEFT JOIN orders_products ON orders.order_id = orders_products.order_id WHERE user_id=? AND (orders.status=2 or orders.payment_status=1) ', $user_id); $this->db->query($query); $sum = $this->db->results(); $sum=(!empty($sum))?$sum[0]->sum:0; // получим текущий предел для этого юзера $query = sql_placeholder('SELECT gr.acc_limit from groups gr, users u WHERE gr.group_id=u.group_id and u.user_id=?', $user_id); $old_limit = $this->db->results(); $old_limit=(!empty($old_limit))?$old_limit->acc_limit:0; // получим соответствующую пределу группу для этого юзера $query = sql_placeholder('SELECT groups.*, users.email, users.name as user_name FROM groups LEFT JOIN users on users.user_id=? WHERE groups.acc_limit < ? AND groups.acc_limit > ? ORDER BY groups.acc_limit DESC', $user_id, $sum, $old_limit); $this->db->query($query); $available_group = $this->db->results(); if (!empty($available_group)) { $available_group=$available_group[0]; $query = sql_placeholder('UPDATE users SET group_id=? WHERE user_id=?', $available_group->group_id, $user_id); $this->db->query($query); // отошлем уведомление $this->smarty->assign('available_group', $available_group); $this->smarty->assign('accumulated_value', $sum); $this->smarty->assign('main_currency', $this->main_currency); $message = $this->smarty->fetch('file:../../design/'.$this->settings->theme.'/html/email_accumulated_discount.tpl'); $this->email($available_group->email, 'Вы получили накопительную скидку '.$available_group->discount.'%', $message); } }и меняуем на эту. Вроде должно работать. Так не проверялfunction set_accumulated_group($user_id) { // получим сумму всех заказов $query = sql_placeholder('SELECT SUM(orders_products.price*orders_products.quantity) as sum FROM orders LEFT JOIN orders_products ON orders.order_id = orders_products.order_id WHERE user_id=? AND (orders.status=2 or orders.payment_status=1) ', $user_id); $this->db->query($query); $sum = $this->db->results(); $sum=(!empty($sum))?$sum[0]->sum:0; // получим текущий предел для этого юзера $query = sql_placeholder('SELECT gr.acc_limit, gr.group_id FROM users as u LEFT JOIN groups as gr on (gr.group_id=u.group_id) WHERE u.user_id=?', $user_id); $old_limit = $this->db->results(); if (!empty($old_limit->group_id) && $old_limit->group_id!='') { $old_limit=(!empty($old_limit))?$old_limit->acc_limit:0; // получим соответствующую пределу группу для этого юзера $query = sql_placeholder('SELECT groups.*, users.email, users.name as user_name FROM groups LEFT JOIN users on users.user_id=? WHERE groups.acc_limit < ? AND groups.acc_limit > ? ORDER BY groups.acc_limit DESC', $user_id, $sum, $old_limit); $this->db->query($query); $available_group = $this->db->results(); if (!empty($available_group)) { $available_group=$available_group[0]; $query = sql_placeholder('UPDATE users SET group_id=? WHERE user_id=?', $available_group->group_id, $user_id); $this->db->query($query); // отошлем уведомление $this->smarty->assign('available_group', $available_group); $this->smarty->assign('accumulated_value', $sum); $this->smarty->assign('main_currency', $this->main_currency); $message = $this->smarty->fetch('file:../../design/'.$this->settings->theme.'/html/email_accumulated_discount.tpl'); $this->email($available_group->email, 'Вы получили накопительную скидку '.$available_group->discount.'%', $message); } } } Цитата Ссылка на сообщение Поделиться на другие сайты
dimabudnikov Опубликовано 1 декабря, 2010 Жалоба Поделиться Опубликовано 1 декабря, 2010 Все работало до пункта когда начал делать: "Заходим в admin/Order.admin.php Находим функцию" сделал все как описано заказ приходит захожу в админку чтоб присвоиь статус заказа жму на сам заказ и вот что выдает:Parse error: syntax error, unexpected $end in /var/www/МОЙСАЙТ/data/www/МОЙСАЙТ.РУ/admin/Order.admin.php on line 266Помогите с решением проблемы. Спасибо Цитата Ссылка на сообщение Поделиться на другие сайты
tunerman Опубликовано 12 апреля, 2011 Жалоба Поделиться Опубликовано 12 апреля, 2011 Выложите ещё раз, файлик удалили. Цитата Ссылка на сообщение Поделиться на другие сайты
tunerman Опубликовано 13 апреля, 2011 Жалоба Поделиться Опубликовано 13 апреля, 2011 Ну очень нужно, может кто-нибудь выложить? Цитата Ссылка на сообщение Поделиться на другие сайты
bts Опубликовано 29 июня, 2011 Жалоба Поделиться Опубликовано 29 июня, 2011 Выручайте! С ручным добавлением в группы полная жопа! Цитата Ссылка на сообщение Поделиться на другие сайты
nigga Опубликовано 1 июля, 2011 Жалоба Поделиться Опубликовано 1 июля, 2011 http://forum.simplacms.ru/comments.php?DiscussionID=442 Цитата Ссылка на сообщение Поделиться на другие сайты
mich Опубликовано 22 декабря, 2012 Жалоба Поделиться Опубликовано 22 декабря, 2012 Ребята, у кого есть файл? выложите, пожалуйста! Цитата Ссылка на сообщение Поделиться на другие сайты
delprofile Опубликовано 22 декабря, 2012 Жалоба Поделиться Опубликовано 22 декабря, 2012 я реализовал по другому. Бонусный счёт с каждой покупки.Зарегистрированный покупатель совершая покупку, получает на личный счёт бонус.После накопления например 2600 бонусных рублей гривен долларов может сделать покупку на них. Цитата Ссылка на сообщение Поделиться на другие сайты
mich Опубликовано 22 декабря, 2012 Жалоба Поделиться Опубликовано 22 декабря, 2012 Тоже хорошо, но в случае накопительной скидки, клиент видит скидку сразу и сумма общая снижается, это его мотивирует покупать больше..Но файлика ни у кого нет? (( Цитата Ссылка на сообщение Поделиться на другие сайты
AndryFroggy Опубликовано 22 декабря, 2012 Жалоба Поделиться Опубликовано 22 декабря, 2012 Делал систему накопительных скидом по принципу, все заказы клиента суммируются. В админке вводятся пороги: 3000р - 3%, 6000р - 5%, 12000 - 7% и т.д. хоть до 100% догнать можно. При сумме по заказам, у клиента автоматически получается по его порогу скидка. Плюс в том, что гибко можно регулировать сами пороги, также клиент в своем кабе видит все свои заказы и общию сумму и будущую скидку. Цитата Ссылка на сообщение Поделиться на другие сайты
obverse Опубликовано 8 января, 2013 Жалоба Поделиться Опубликовано 8 января, 2013 нужна такая функция еще хотелось бы что б покупатель вбивал номер карты и получал скидку Цитата Ссылка на сообщение Поделиться на другие сайты
Ramsesc Опубликовано 27 марта, 2013 Жалоба Поделиться Опубликовано 27 марта, 2013 Народ помогите настроить накопительную скидку, файлы удалили, а очень надо Цитата Ссылка на сообщение Поделиться на другие сайты
tsybart Опубликовано 14 июня, 2014 Жалоба Поделиться Опубликовано 14 июня, 2014 А как сделать, что бы просто пользователя оформившого заказ 3 раза автоматом переносило в нужную группу? Цитата Ссылка на сообщение Поделиться на другие сайты
mart Опубликовано 14 июня, 2014 Жалоба Поделиться Опубликовано 14 июня, 2014 Напишите в личку или скайп simplashop.com - есть реализация. Цитата Ссылка на сообщение Поделиться на другие сайты
nikolayv Опубликовано 12 апреля, 2017 Жалоба Поделиться Опубликовано 12 апреля, 2017 всем привет, а есть где-то файлики? Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 15 апреля, 2017 Жалоба Поделиться Опубликовано 15 апреля, 2017 всем привет, а есть где-то файлики?Есть, у фрилансеров (авторов модулей) за деньги Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.