Корзина для нескольких магазинов Opencart через разные домены

У меня есть сайт opencart с двумя магазинами в разных доменах, domain1.com и domain2.com.

Я хочу иметь возможность поделиться через них корзиной, чтобы, если я добавлю какой-нибудь товар в корзину на domain1.com и перейду на domain2.com, у меня все еще были эти продукты в корзине.

Что-то подобное я видел, но для разных поддоменов и для разных доменов ничего не нашел. например: вопрос для субдоменов

Я использую версию 1.5.6, и файл сеанса таков:

class Session {
  public $data = array();

  public function __construct() {
    if (!session_id()) {
        ini_set('session.use_cookies', 'On');
        ini_set('session.use_trans_sid', 'Off');


        session_set_cookie_params(0, '/');
        session_start();
    }

    $this->data =& $_SESSION;
  }

  function getId() {
    return session_id();
  }
}

Как я могу изменить этот файл, чтобы поделиться сеансом и корзиной?

Любая помощь приветствуется!

Спасибо!


person spkkya    schedule 24.05.2016    source источник
comment
Этот вариант я не проходил и перешел на поддомены. К сожалению, я не смог решить это.   -  person spkkya    schedule 18.07.2016


Ответы (2)


Я не уверен, что это верное решение, но я знаю, что данные корзины хранятся в таблице «клиент» в sql. Поэтому вам нужно изменить или удалить раздел where каждого sql-запроса, который дает вам информацию о корзине.

Например, удалите раздел where store_id = x для каждого запроса.

person Matricore    schedule 24.05.2016
comment
Я понимаю ваш ответ, но нет ли чего-нибудь проще через переменные сеанса? - person spkkya; 24.05.2016

Почему вы устанавливаете время жизни куки на 0? Кажется, вы планируете уничтожить сессию. Вы обязательно должны попробовать использовать что-то вроде

<?php
session_set_cookie_params(1800, '/', $_SERVER['HTTP_HOST']);

Вам может понадобиться дополнительная проверка HTTP_HOST, но в основном это довольно надежная переменная, поскольку Apache или Nginx полагаются на нее. Следует ограничить его вашим текущим именем хоста.

person César    schedule 24.05.2016