#database #prestashop
#База данных #prestashop
Вопрос:
У меня есть веб-сайт prestashop, и в процессе оформления заказа при выборе перевозчика я добавил выпадающий список, который содержит дополнительную информацию о доставке при выборе определенного перевозчика.
Более конкретно: один перевозчик предоставляет услугу «посылочные терминалы самообслуживания», где клиент должен выбрать конечный пункт доставки (адрес), откуда он заберет товар. Выпадающий список содержит около 30 вариантов.
Я добавил выпадающий список с информацией о перевозчике в качестве модуля и подключил его к крюку hookDisplayBeforeCarrier.
Как я должен сохранить эти данные в базе данных, а затем отобразить их в бэк-офисе в разделе заказов?
Комментарии:
1. Я не знаю, каковы ваши дополнительные данные, но стандартный способ — не добавлять выпадающий элемент, а создавать столько возможностей доставки, сколько необходимо. В зависимости от характера вашей дополнительной информации это может быть не решением (например, слишком много вариантов). Пожалуйста, укажите характер этой дополнительной информации, чтобы получить более целенаправленные ответы.
2. Когда вы выбираете конкретного перевозчика, вы должны выбрать пункт назначения доставки (адрес) этого перевозчика. Я думаю, что предоставляемые перевозчиком услуги называются «терминалами самообслуживания для посылок». Выпадающий список содержит около 30 вариантов.
3. Я вижу… наличие 30 носителей для этого не было бы действительно хорошим решением. Хромым решением было бы запросить у клиента указать пункт назначения в комментарии. Но чтобы решить эту проблему — используя выпадающее меню по своему усмотрению, вам нужно будет покопаться в PHP, немного изменить оформление заказа, чтобы перенести эту информацию в базу данных. также требуется модификация базы данных. Для опытного программиста PHP это должно быть проще простого. Я не вижу более простого способа для этого
Ответ №1:
Для выполнения ваших требований вам необходимо использовать следующие ходы PrestaShop.
-
processCarrier — для временного сохранения выбора в файле cookie или во что-то еще
-
hookNewOrder — для извлечения и сохранения выбора в базе данных на месте заказа
-
displayBackOfficeHeader — для отображения выбора в деталях заказа в бэк-офисе.