Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Корзина заказов без модуля интернет-магазина

Автор evinРаздел Разработка модулей

Ответов: 10
Просмотров: 6144
Последний ответ 05 Октября 2011, 12:42:16
от evin
Модуль интернет магазина (корзина)

Автор akarihРаздел Настройка системы и модулей

Ответов: 3
Просмотров: 2005
Последний ответ 01 Ноября 2011, 12:31:18
от admin
Автоматическая регистрация при отправке формы?

Автор muldyРаздел Custom макросы

Ответов: 1
Просмотров: 1097
Последний ответ 03 Сентября 2013, 19:33:59
от admin
Регистрация новых пользователей AJAX

Автор CubesРаздел JS и AJAX

Ответов: 3
Просмотров: 5238
Последний ответ 30 Октября 2014, 15:33:18
от Cubes
UMI CMS корзина в один шаг (xslt)

Автор dmezhenskijРаздел Настройка системы и модулей

Ответов: 23
Просмотров: 8173
Последний ответ 30 Мая 2013, 04:54:12
от zemon

0 Пользователей и 1 Гость просматривают эту тему.

*

atach

  • ***
  • 163
  • +6/-0
    • Просмотр профиля
Подскажите такой нюанс.
В стандартной регистрации пользователя в UMI,  если у гостя есть корзина с товарами, то она переносится автоматом на зарегистрированного пользователя при этом текущий customer гостя удалятся и его заказ удаляется. И автоматом создается клон заказа customer и привязывается к новому только что зарегистрированному пользователю.


У меня сейчас в системе подключен провайдер авторизации аналог loginza. Я его сам подклюяал прописывая в кастомах простую по сути регистрацию пользователей (путем создания объекта) и не учитывал вот этот нюанс.

Кто может подсказать где посмотреть в системных методах как это реализовано, или как это сделать ... В системно "registrate_do" ничего подобного нет

Спасибо

*

admin

  • *****
  • 2419
  • +172/-1
    • Просмотр профиля
система сливает заказы авторизованного покупателя и гостя при попытке взять заказ посетителя происходит
либо обращение к функции 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)

*

atach

  • ***
  • 163
  • +6/-0
    • Просмотр профиля
Да я это нашел
* Слить все заказы покупателя в профиль пользователя.
* Объект покупателя после этого будет уничтожен

Не могу понять что значит слить. По коду вижу что идет выборка всех заказов данного покупателя гостя (customer) и при выполннии функции идет просто присваивание всех заказов к новому зарегистрированному пользователю. Это понятно.

Но не могу понять как сохранить текущую корзину с товарами при регистрации (не оформленную). Т.е. сейчас после регистрации у меня всеравно созданется пустой заказ dummy...

*

admin

  • *****
  • 2419
  • +172/-1
    • Просмотр профиля
Т.е. сейчас после регистрации у меня всеравно созданется пустой заказ dummy...

после регистрации, которую писали вы или после дефолтной umi'вской регистрации сливание заказов тоже не происходит? По идее, после авторизации, ваш гостевой заказ должен переехать к авторизованному пользователю.

*

atach

  • ***
  • 163
  • +6/-0
    • Просмотр профиля
После той который писал я ....
Получается что заказ последний присваивается новому зарегиному пользователю и всё норм, но он не отображается в корзине, а почему то всеравно создается новый dummy ....

Не могу понять как система определяет что у зарегистрированного пользователя надо создать новый пустой dummy или использовать недооформленный старый заказ ...

по какому то свойству заказа?

*

admin

  • *****
  • 2419
  • +172/-1
    • Просмотр профиля
вы попробовали дефолтную авторизацию с товарами в корзине у гостя? товары потом видны в корзине у авторизованного клиента?

там в коде видно, что система просто создает заказ на авторизованного пользователя. Если в куках есть гость, система ищет нет ли у него товаров в корзине, копирует их в корзину авторизованного, а гостевую удаляет.

*

atach

  • ***
  • 163
  • +6/-0
    • Просмотр профиля
Долго мучал и нашел проблему ....
Система не давала доступа к старому заказу гостя (customer), с которого надо брать корзину и товары в ней ...

*

admin

  • *****
  • 2419
  • +172/-1
    • Просмотр профиля
Не давала при дефолтном "своем" способе авторизации?
И почему не давала?