Форум русской поддержки Joomla!® CMS
27.07.2017, 22:50:43 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Основной курс по Joomla
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Дополнительные переменные в процессе оформления заказа

 (Прочитано 218 раз)
0 Пользователей и 1 Гость смотрят эту тему.
urry
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 68


« : 22.05.2017, 13:32:54 »

Здравствуйте уважаемые коллеги!

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

Вот пара примеров:

На шаге выбора оплаты у нас есть способ оплаты "Безналичный расчет" и когда клиент выбирает его, мы выдаем ему форму с реквизитами, которую нужно заполнить - ИНН, ОКПО, РС, ЮР.АДРЕС и так далее.
Не очень понятно, как это сохранить и потом в админке смотреть. Пока я делаю это через переменные сессии, но это ужас и убожество. К тому же я пишу эти данные в письмо с телом заказа и его получает оператор по почте, но потом в админке на странице этого заказа, естественно, этих данных нет.

Вторая ситуация еще печальнее - у нас на этапе выбора способа доставки есть Пункты Выдачи Заказов (ПВЗ). Мы ввели доп. переменную с адресом конкретного ПВЗ. И тоже таскаем ее через сессию, НО! Если клиент платит через Яндекс.Кассу (кредиткой, эл.деньгами и т.д.), то при оплате его закидывает на сайт Яндекс.Кассы, а потом обратно к нам и переменная сессии с адресов ПВЗ теряется.

В общем, устал уже извращаться... подскажите, как можно проблему решить? Может быть писать данные в какие-то неиспользуемые нами стандартные поля заказа?

Буду очень благодарен за любые советы.
Спасибо!

Записан
dmitry_stas
Профи
********

Репутация: +926/-6
Online Online

Сообщений: 9795



« Ответ #1 : 22.05.2017, 13:40:12 »

Может быть писать данные в какие-то неиспользуемые нами стандартные поля заказа?
ну так пишите, в чем сложность? для этого в заказе разработчики и сделать 3 дополнительных поля. можете использовать их. но по хорошему параметры оплат и доставок вы вообще должны сделать именно в плигине оплаты или доставки. посмотрите например как сделан стандартный плагин оплаты Debit.
Записан
urry
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 68


« Ответ #2 : 22.05.2017, 15:45:32 »

Да не то, чтобы сложность. Буду разбираться, просто думал - может кто-то что-то уже придумал... так чтобы хлоп - и все работает, легко и просто Azn
Для начала нужно будет понять, в какие именно поля можно будет писать. Боюсь только, что данных достаточно много, а неиспользуемых полей достаточно мало Azn Но попробую. Я так понимаю, пишется все в скриптах в папке controllers? скорее всего в checkout.php?

И еще немножко вас помучаю - а как называются эти 3 доп.поля? Где-то можно посмотреть/почитать про них? Ведь, чтобы в них писать, нужно хотя бы их названия знать.

И не совсем понял про стандартный плагин Debit - он уже в составе JS или это доп.плагин? А то я в папке плагинов его не нашел.
« Последнее редактирование: 22.05.2017, 15:52:02 от urry » Записан
nevigen
Moderator
*****

Репутация: +770/-17
Online Online

Пол: Мужской
Сообщений: 9318


http://n*****n.com


« Ответ #3 : 22.05.2017, 15:53:16 »

поля адреса стандартные.см. настройки

дебит - платежный плагин ЖШ по умолчанию
Записан
dmitry_stas
Профи
********

Репутация: +926/-6
Online Online

Сообщений: 9795



« Ответ #4 : 22.05.2017, 16:01:49 »

1. много где пишется. начните с контроллера checkout, но там и модель, и таблица, и еще много чего. в идеале все делается плагином. а совсем в идеале - нужно создать формы для доставки и оплаты, и тогда не будет стоять вопрос
Цитировать
данных достаточно много, а неиспользуемых полей достаточно мало

2. \components\com_jshopping\payments\pm_debit\
Записан
urry
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 68


« Ответ #5 : 22.05.2017, 16:08:32 »

Спасибо большое за наводки и советы, пошел учить матчасть Azn
Записан
urry
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 68


« Ответ #6 : 23.05.2017, 11:50:36 »

Зарылся в controllers/checkout.php и соответствующие скрипты шагов оформления заказа в templates/checkout

Включил доп.поле1, оно по умолчанию выводится в шаге 1 (Адрес). Ну вот хоть убейте, я не понимаю, почему на шаге 1 в скрипте address.php вызов
$this->user->d_ext_field_1
дает нам значение доп.поля1, записывается, отображается, а на шаге 2 в скрипте shippings.php этот же вызов переменной $this->user->d_ext_field_1 дает пустое поле?

Ведь по идее $this - это один и тот же экземпляр объекта и там и там? Или там какие-то его части по-разному инициализируются в checkout.php для разных шагов оформления заказа? Не понимаю. Вот он - результат прогулов лекций по ООП на третьем курсе Azn

Подскажите, пожалуйста, а?
Записан
dmitry_stas
Профи
********

Репутация: +926/-6
Online Online

Сообщений: 9795



« Ответ #7 : 23.05.2017, 12:11:42 »

$this всего лишь указывает на текущий экземпляр класса внутри самого класса. само собой, что на шаге адреса и на шаге доставки он разный.
Записан
urry
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 68


« Ответ #8 : 02.06.2017, 10:23:41 »

Здравствуйте снова!

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

Разбираюсь с тем, как реализованы способы оплаты, по вашему совету в качестве примера взял pm_debit. В целом вроде бы все понятно, есть форма, поля, данные, есть обработчик.

Вопрос в связи с этим: если я делаю свою форму на свой способ оплаты, мне нужно будет в базе в одной из таблиц свои дополнительные поля создавать? Или нужно использовать какие-то из существующих?

Я посмотрел несколько модулей pm_спопобоплаты - там у всех свой набор данных. Видимо, действительно нужно свои поля вводить - в таблице "способ оплаты". Эмммм, а не подскажете, где можно посмотреть, как поле в базе JoomShopping создается? И как называется таблица со способами оплаты?

Спасибо Azn
Записан
dmitry_stas
Профи
********

Репутация: +926/-6
Online Online

Сообщений: 9795



« Ответ #9 : 02.06.2017, 10:49:16 »

никаких "своих полей" не нужно. посмотрите на name полей формы, и все поймете.

таблица называется #__jshopping_payment_method, если вы конечно ее имели в ввиду.
Записан
urry
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 68


« Ответ #10 : 02.06.2017, 17:58:43 »

Да, понял, там массив в который можно добавлять любые дополнительные элементы. Так просто и удобно Azn

Спасибо большое, теперь осталось все это в админке в заказе отрисовать для операторов Azn

Еще раз спасибо!  Smiley
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet