Основной курс по Joomla
0 Пользователей и 1 Гость просматривают эту тему.
  • 10 Ответов
  • 230 Просмотров
*

urry

  • Осваиваюсь на форуме
  • ***
  • 68
  • 0
Здравствуйте уважаемые коллеги!

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

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

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

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

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

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

*

dmitry_stas

  • Профи
  • ********
  • 9675
  • 932
Может быть писать данные в какие-то неиспользуемые нами стандартные поля заказа?
ну так пишите, в чем сложность? для этого в заказе разработчики и сделать 3 дополнительных поля. можете использовать их. но по хорошему параметры оплат и доставок вы вообще должны сделать именно в плигине оплаты или доставки. посмотрите например как сделан стандартный плагин оплаты Debit.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

urry

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

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

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

nevigen

  • Moderator
  • *****
  • 8832
  • 754
  • http://n*****n.com
поля адреса стандартные.см. настройки

дебит - платежный плагин ЖШ по умолчанию
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

dmitry_stas

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

2. \components\com_jshopping\payments\pm_debit\
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

urry

  • Осваиваюсь на форуме
  • ***
  • 68
  • 0
Спасибо большое за наводки и советы, пошел учить матчасть :)
*

urry

  • Осваиваюсь на форуме
  • ***
  • 68
  • 0
Зарылся в 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 для разных шагов оформления заказа? Не понимаю. Вот он - результат прогулов лекций по ООП на третьем курсе :)

Подскажите, пожалуйста, а?
*

dmitry_stas

  • Профи
  • ********
  • 9675
  • 932
$this всего лишь указывает на текущий экземпляр класса внутри самого класса. само собой, что на шаге адреса и на шаге доставки он разный.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

urry

  • Осваиваюсь на форуме
  • ***
  • 68
  • 0
Здравствуйте снова!

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

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

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

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

Спасибо :)
*

dmitry_stas

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

таблица называется #__jshopping_payment_method, если вы конечно ее имели в ввиду.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

urry

  • Осваиваюсь на форуме
  • ***
  • 68
  • 0
Да, понял, там массив в который можно добавлять любые дополнительные элементы. Так просто и удобно :)

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

Еще раз спасибо!  ^-^