Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


blackfm

Recommended Posts

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

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

Надіслати
Поділитися на інших сайтах


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

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

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

Надіслати
Поділитися на інших сайтах


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

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

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

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

 

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

 

 

Надіслати
Поділитися на інших сайтах


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

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

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

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

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



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

Надіслати
Поділитися на інших сайтах

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

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

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

Надіслати
Поділитися на інших сайтах


31.01.2023 в 20:43, chukcha сказал:

Дожить бы до такого

Абажнді, падажді, тебя ще з форума ніхто не відпускав )))
Прийдеться ще пахати )))
 

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.