Общая корзина покупок на нескольких сайтах

Я исследовал 2 метода, которые могли бы воспроизвести функциональность, которую имеет coolblue.nl. У них 83 интернет-магазина, и все корзины для покупок объединены. Таким образом, если вы добавите товар в свою корзину на сайте Laptopshop.nl и перейдете в один из других их магазинов (например, smartphoneshop.nl), продукт уже находится в вашей корзине.

Но как именно это работает?

  • Единая точка входа? Я думаю, нет, пользователям не нужно входить в систему
  • Определение пикселя? Но как продукт доступен напрямую?
  • Уникальные ссылки? Они не используют его.

Может ли кто-нибудь дать мне подробную информацию, как я могу заставить это работать?


person Garytje    schedule 05.03.2014    source источник


Ответы (1)


Единый вход включен? Думаю, нет, пользователям не нужно входить в систему

Просто разделите сеансы между вашими серверами. Храните все на центральном сервере memcached. Единственным ограничением является то, что файл cookie, размещенный для одного домена, не доступен напрямую для другого домена. Возможно, это JavaScript/JSONP, используемый для обхода этого.

Я лично также использую memcached, потому что он быстрее, имеет меньше дисковых операций ввода-вывода, может быть кластеризован, интегрирован в PHP и отправляется с вашего веб-сервера.

Идентифицирующий пиксель?

Идентификаторы сеанса хранятся для каждого домена, поэтому один домен обычно не может читать данные других доменов (безопасность). Вы можете обойти это, используя JSON(P). Таким образом, вы отправляете запрос JSON (P) на свой центральный (веб) сервер сеансов и спрашиваете его: «есть ли уже сеанс для пользователя, если да, верните мне идентификатор».

Тогда вы просто повторно используете сеанс.

Но как продукт доступен напрямую?

Вы можете быть уверены, что все их магазины используют один и тот же сервер базы данных и уникальный идентификатор продукта, такой как SKU/EAN.

person Daniel W.    schedule 05.03.2014
comment
Так что они, вероятно, используют сервер memcached, но у меня нет опыта работы с ним, я думаю, что я попробую метод JSON. Благодарность! - person Garytje; 05.03.2014
comment
Вам не нужно запускать memcached, но это упрощает обработку сеансов. Memcached — это простая база данных в памяти. Основная задача — разделить один и тот же сеанс между несколькими доменами. Попробуйте использовать сеанс php google для совместного использования нескольких доменов, это дает вам много;) - person Daniel W.; 05.03.2014