minishop2 + office - чистится корзина при выходе

minishop2 в связке с office

ситуация:
залогенный пользователь добавляет в корзину товары,
если выйти — корзина чиститься в браузерах opera и firefox

пока дошел до того: что — в куках удаляется переменная PHPSESSID
при проходе по ссылке /?action=auth/logout
в браузерах opera и firefox

в остальных вроде норм все
Галич Сергей
08 августа 2016, 00:51
modx.pro
1 391
0

Комментарии: 3

Руслан Валеев
10 октября 2016, 10:30
0
Сергей, добрый день, нашли ли вы решения данной проблемы, у меня очищается корзина в любом браузере ((
    Руслан Валеев
    08 марта 2017, 11:38
    0
    кому актуально, решение есть тут compaero.ru/docs/modx-i-xpdo/soxranenie-korzinyi-polzovatelya.html
      Евгений Ц.
      09 марта 2021, 01:48
      +1
      Так как url более не доступен, то приведу код Руслана с небольшим дополнением: товары, добавленные в корзину до входа, добавляются в сохранённую корзину.
      switch ($modx->event->name) {
          case 'msOnAddToCart':
          case 'msOnChangeInCart':
          case 'msOnEmptyCart':
          case 'msOnRemoveFromCart':
              if ($user = $modx->getAuthenticatedUser('web') and $ms2 = $modx->getService('minishop2')) {
                  $ms2->initialize($modx->context->key);
                  $profile = $user->getOne('Profile');
                  $extended = $profile->get('extended');
                  $extended['ms2cart'] = $ms2->cart->get();
                  $profile->set('extended', $extended);
                  $profile->save();
              }
              break;
              
          case 'OnWebPageInit':
          case 'OnWebLogin':
              if ( $user = $modx->getAuthenticatedUser('web') and  $ms2 = $modx->getService('minishop2')) {
                  $ms2->initialize($modx->context->key);
                  $profile = $user->getOne('Profile');
                  $extended = $profile->get('extended');
                  if ( isset($extended['ms2cart']) && !empty($extended['ms2cart']) ) {
                      $mycart = array_merge($extended['ms2cart'], $ms2->cart->get());
                      $ms2->cart->set($mycart);
                  }
              }
              break;
      }
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        3