Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Установить адрес доставки перед заходом в cart или checkout


blackfm
 Share

Recommended Posts

Делаю сайт доставки еды по городу от разных поставщиков фаст-фуда. Проект чисто для себя и поэкспериментировать , поэтому решил немножко отойти от стандарта чекаута opencart. Сделал мультимагазин, где каждый store  - это отдельный поставщик фаст-фуда. Но вот запланировал, чтобы клиент смог указать адрес по Google Maps API еще в начале, а я сделать фильтрацию поставщиков в зависимости от расстояния адресов доставки и геолокации поставщика. Введенный адрес покупателя сохраняю в кукис и хорошо было бы его сохранить в данные сессии, чтобы при оформлении он уже был заполнен, но к сожалению, на данном этапе опыт у меня закончился.

Подскажите, как лучше вытянуть из кукис адрес и передать его в $this->session->data['shipping_address'].... или может есть лучшее решение?

Link to comment
Share on other sites


В 30.01.2023 в 10:32, chukcha сказав:

Если умеете куки, то почему не сделать то же самое с сессией?

никогда не работал с сессиями в opencart, поэтому, наверное, мой вопрос вначале некорректен. Пойду изучать данный вопрос по сессиям и попытаюсь устанавливать адрес из куки в сессию. Еще хотелось бы уточнить - если магазин использует поддомены в качестве субмагазинов (multistore), адрес пользователя должен быть одинаковым для всех субмагазинов, и доступен без авторизации, то без кукис мне не обойтись?

Link to comment
Share on other sites


В 30.01.2023 в 15:33, foggy сказав:

Такой проект точно не на opencart нужно реализовать, такие движки пишутся вручную. 

Что делаю, может кому интересно:
магазин доставки от разных поставщиков. Каждый поставщик - отдельный store. Поработал с витриной главного магазина - сделал модуль вывода отдельных поставщиков. Переработал хлебные крошки, чтобы в субмагазинах отображался не главный магазин, а именно ссылка на субмагазин. Отдельные сессии для субмагазинов мне подошли - поскольку, не хочу, чтобы пользователь делал заказ из разных поставщиков.

Написал скрипт js на главной с выбором адреса по google maps api (вручную написал, использовал autocomplete или вручную выбрал на карте). Адрес по компонентах сохраняю в куки, поскольку кукисы работают для всех поддоменов-субмагазинов.

 

Сейчас планирую устанавливать адрес в сессию из кукисов - быстро набросал код - вроде б все работает для гостевого заказа, а вот с авторизированным пользователем не экспериментировал еще. С авторизацией посложнее будет, если уже есть сохраненные адреса покупателя, нужно как то их вытаскивать и объединять с тем скриптом google maps api, вобщем нужно сначала спроектировать логику работы, а потом возьмусь за исполнение.

 

 

Link to comment
Share on other sites


30.01.2023 в 15:33, foggy сказал:

Такой проект точно не на opencart нужно реализовать, такие движки пишутся вручную. 

Зачем? Что мешает?

Есть товар - изделие
Есть цена
Есть доставка.

Зачем нужен еще какой-то движок?



Если у вас доступны куки на разных поддоменах, то реализация не сложная.

Link to comment
Share on other sites

В 31.01.2023 в 20:19, foggy сказав:

если будут по 500 тысяч запросов в день

Кешувати собі результати і при наступних запитах давати їх юзерам (як сховище кешу можна БД або memcached), на проекті де таке використано з часом коли кеш запитів до гугл геокодування був прогрітий то унікальних запитів до апі гугла стало зовсім мало, а більшість даних з кешу беруться

Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.