UMIhelp
Разработка сайта на UMI.CMS => Макросы UMI.CMS => Тема начата: atach от 24 Июня 2014, 17:48:02
-
Подскажите такой нюанс.
В стандартной регистрации пользователя в UMI, если у гостя есть корзина с товарами, то она переносится автоматом на зарегистрированного пользователя при этом текущий customer гостя удалятся и его заказ удаляется. И автоматом создается клон заказа customer и привязывается к новому только что зарегистрированному пользователю.
У меня сейчас в системе подключен провайдер авторизации аналог loginza. Я его сам подклюяал прописывая в кастомах простую по сути регистрацию пользователей (путем создания объекта) и не учитывал вот этот нюанс.
Кто может подсказать где посмотреть в системных методах как это реализовано, или как это сделать ... В системно "registrate_do" ничего подобного нет
Спасибо
-
система сливает заказы авторизованного покупателя и гостя при попытке взять заказ посетителя происходит
либо обращение к функции order::get($orderId) (см. файл /classes/modules/emarket/classes/orders/order.php) в этой функции (функция get()) есть строчка $customer = customer::get();,
либо сразу к $customer = customer::get();.
Тут мы попадаем в функцию (get() из файла /classes/modules/emarket/classes/customer/customer.php) в которой возможно обращение в функции customer::create() ? которая в свою очередь проверяет не надо ли слить заказы гостя (если таковой есть в куках) с авторизованным, текущим пользователем (функции merge() в файле /classes/modules/emarket/classes/customer/customer.php)
-
Да я это нашел
* Слить все заказы покупателя в профиль пользователя.
* Объект покупателя после этого будет уничтожен
Не могу понять что значит слить. По коду вижу что идет выборка всех заказов данного покупателя гостя (customer) и при выполннии функции идет просто присваивание всех заказов к новому зарегистрированному пользователю. Это понятно.
Но не могу понять как сохранить текущую корзину с товарами при регистрации (не оформленную). Т.е. сейчас после регистрации у меня всеравно созданется пустой заказ dummy...
-
Т.е. сейчас после регистрации у меня всеравно созданется пустой заказ dummy...
после регистрации, которую писали вы или после дефолтной umi'вской регистрации сливание заказов тоже не происходит? По идее, после авторизации, ваш гостевой заказ должен переехать к авторизованному пользователю.
-
После той который писал я ....
Получается что заказ последний присваивается новому зарегиному пользователю и всё норм, но он не отображается в корзине, а почему то всеравно создается новый dummy ....
Не могу понять как система определяет что у зарегистрированного пользователя надо создать новый пустой dummy или использовать недооформленный старый заказ ...
по какому то свойству заказа?
-
вы попробовали дефолтную авторизацию с товарами в корзине у гостя? товары потом видны в корзине у авторизованного клиента?
там в коде видно, что система просто создает заказ на авторизованного пользователя. Если в куках есть гость, система ищет нет ли у него товаров в корзине, копирует их в корзину авторизованного, а гостевую удаляет.
-
Долго мучал и нашел проблему ....
Система не давала доступа к старому заказу гостя (customer), с которого надо брать корзину и товары в ней ...
-
Не давала при дефолтном "своем" способе авторизации?
И почему не давала?