Разделение корзины и пользователей

#
Разделение корзины и пользователей
Подскажите, как сделать корзину и пользователей полностью автономными? В каких методах происходит привязка, достаточно ли убрать $shop->TransferFromCartIntoTable? Есть ли какая-то зависимость от метода, cookies или session?

Хочется полностью разделить 2 модуля, чтобы авторизация-выход пользователя никак не влиял на корзину, и наоборот.
Посоветуйте, как сделать правильно
#
Re: Разделение корзины и пользователей
h4mpy, ну первая мысль - просто переписать ТДС "Корзина" так, чтобы она не учитывала модуль "Пользователи сайта". В самом простом варианте для этого достаточно найти в ее коде и в ее настроках блоки, где определяется переменная $site_users_id и после этого блока принудительно задать этой переменной значение false. После этого корзина ИМ начинает работать как в редакциях Халява/Мой сайт/Малый бизнес.
Можно и какую-нибудь более сложную логику придумать, в зависимости от контекста вашей задачи.
Заказов не беру. Консультирую редко.
#
Re: Разделение корзины и пользователей
ну..почти полностью разделить, если у пользователя есть скидки - должны учитываться корзиной
сделал авторизацию с быстрой регистрацией отдельным шагом, + можно купить и без регистрации - остальных шагов

в общем если у пользователя когда-то что-то было в корзине, проходит шаг авторизации - и эти старые товары всплывают только на шаге подтверждения) если не выводить их на каждом шаге

проще всего было бы чистить корзину пользователя именно на этом шаге перед TransferFromCartIntoTable, тогда ничего можно и не менять, но методов подходящих вроде нет

(а при простой авторизации старая корзина пусть бы всплывала)
#
Re: Разделение корзины и пользователей
чет как-то сумбурно...
Заказов не беру. Консультирую редко.
#
Re: Разделение корзины и пользователей
в общем если (на демо сайте например) наложить товаров в корзину, потом авторизоваться - выйти, опять авторизоваться - кол-во товаров удвоится
можно после авторизации удалить товары из корзины, выйти - они опять появятся
получаются 2 корзины, без авторизации и с авторизацией, та что без авторизации клеится к корзине конкретного пользователя при входе

нужно как то минимизировать этот эффект, чтобы при оформлении - то что есть в корзине - то и оформлялось) никаких старых товаров не всплывало
#
Re: Разделение корзины и пользователей
А что, предложенное мною решение в этом случае не помогает?
Заказов не беру. Консультирую редко.
#
Re: Разделение корзины и пользователей
при false не учитываются спеццены для пользователя
#
Re: Разделение корзины и пользователей
h4mpy, как вариант, сделать false только в _настройках_ ТДС, а в коде оставить id юзера как есть.
Заказов не беру. Консультирую редко.
#
Re: Разделение корзины и пользователей
h4mpy писал(а):
чтобы при оформлении — то что есть в корзине — то и оформлялось) никаких старых товаров не всплывало
- товары всплывают потому, что в самом методе авторизации пользователя SetCurrentSiteUser вызывается метод TransferFromCartIntoTable, который товары из кукисов(сессии) переносит в базу данных(т.о., если в базе данных для этого пользователя уже были товары, то их там, - а по сути в корзине, - станет больше). Т.к. вызов этого метода(при использовании метода SetCurrentSiteUser) предотвратить вам никак не удастся, можно посоветовать следующее: очищать таблицу shop_cart_table(по полю site_user_id) при выходе пользователя из личного кабинета. Этот способ не совсем удачен тем, что пользователь может покинут сайт, не выходя из своего кабинета. Т.о. в таблице shop_cart_table останутся его товары. Поэтому еще как вариант решения проблемы: очищать таблицу shop_cart_table в коде настроек тип. дин. страницы корзины, но только в том случае, если идентификатор текущего авторизованного пользователя(возвращаемого методом GetCurrentSiteUser) равен нулю.
Авторизация