Автор Тема: cookie  (Прочитано 1300 раз)

05 Август 2013, 00:54:56
  • Пользователь
  • **
  • Сообщений: 57
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Подскажите пожалуйста!

Когда включена опция мультимагазин, то для каждого магазина находящегося на одном домене (виртуальные url): существуют свои cookie, можно ли как то получить доступ к cookie одного магазина из другого.

Или возможно ли объединить cookie всех магазинов?

За ранее спасибо!
05 Август 2013, 10:51:58
Ответ #1
  • Старожил
  • ****
  • Сообщений: 274
  • Репутация: +3/-0
    • Просмотр профиля
Если куки для разных доменов, то нельзя.
Если куки на одном домене, то можно.
Только куки устанвливаются в браузере поекпатнля, зачем вам ими управлять?
У каждого клиента будет открыта сессия для каждого магазина, только так он сможет что-то положить в корзину и знать, что эта корзина принадлежит такому-то магазину.   
05 Август 2013, 16:13:36
Ответ #2
  • Пользователь
  • **
  • Сообщений: 57
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо за ответ!

Но ситуация в следующем:

К примеру есть два магазина :
  • "myshop.ru/europe/"
  • "myshop.ru/america/"

У престы есть своя геолокация по ip,  пытаюсь сделать так, что когда пользователь первый раз заходит на "myshop.ru" в зависимости от его ip он перенаправлялся на нужный магазин.

Сейчас в престе это реализовано так:

пользователь заходит на "myshop.ru" преста определяет его ip и записывает соответствующий iso код страны  в cookie в дефолтном магазине, после чего я добавила перенаправление на соответствующий региону магазин, на тот случай если ip определился не правильно или пользователь хочет зайти в магазин для другого региона я сделала модуль который позволяет в ручную выбрать регион.
НО после перенаправления на нужный магазин, преста заново определяет его ip и записывает соответсвующий iso код страны  в cookie но уже в нужном магазине.
И в следующий раз когда пользователь зайдет на "myshop.ru" он опять отправиться на дефолтный магазин.

Хотелось бы сделать чтобы преста запомнила его последний выбор и автоматически перенаправила бы на последний посещённый магазин.

Для этого мне нужно чтобы во всех магазинах у пользователя в cookie был записан iso код страны соответсвующий  последнему  выбранному  региону.

За ранее спасибо!
05 Август 2013, 22:08:50
Ответ #3
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
Куки записываются в браузере пользователя. Время жизни куки можно уменьшить до 1 дня, 1 часа и т.д.
Цитировать
Хотелось бы сделать чтобы преста запомнила его последний выбор и автоматически перенаправила бы на последний посещённый магазин.
Можно сделать только для зарегистрированных пользователей, для гостей не реально.
Цитировать
Для этого мне нужно чтобы во всех магазинах у пользователя в cookie был записан iso код страны соответсвующий  последнему  выбранному  региону.
Ни кто не запрещает  переопределить код страны и передать его при перенаправлении. Только придеться переопределять фронт-конроллер. Можно и js использовать.
05 Август 2013, 22:23:29
Ответ #4
  • Пользователь
  • **
  • Сообщений: 57
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Куки записываются в браузере пользователя. Время жизни куки можно уменьшить до 1 дня, 1 часа и т.д.
Цитировать
Хотелось бы сделать чтобы преста запомнила его последний выбор и автоматически перенаправила бы на последний посещённый магазин.
Можно сделать только для зарегистрированных пользователей, для гостей не реально.
Цитировать
Для этого мне нужно чтобы во всех магазинах у пользователя в cookie был записан iso код страны соответсвующий  последнему  выбранному  региону.
Ни кто не запрещает  переопределить код страны и передать его при перенаправлении. Только придеться переопределять фронт-конроллер. Можно и js использовать.

Спасибо за ответ!

Я пробовала так сделать: переопределила код страны и попыталась передать как параметр при редиректе, но во фронт контроллере не получается его достать из массива _GET
06 Август 2013, 10:11:51
Ответ #5
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
В class FrontController в функцию
public function init()
{
        isset($_GET['myvar']){....
Если не получается достать, нужно проверить передается ли он.
19 Август 2013, 18:09:37
Ответ #6
  • Пользователь
  • **
  • Сообщений: 57
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В class FrontController в функцию
public function init()
{
        isset($_GET['myvar']){....
Если не получается достать, нужно проверить передается ли он.

Спасибо, ваш совет помог, проблемма решилась!

Изначально переменная не передавалась при включенной функции мультимагазина, пришлось внести изменения в shop.php