Автор Тема: Как изменить оформление заказа в один шаг  (Прочитано 5782 раз)

14 Сентябрь 2015, 11:18:29
Ответ #15
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
Переключите на стандарную тему и проверьте. Если в стандарной все нормально, значит проблема в вашей теме. Если в стандарной также, значит проблема в настройках.
06 Июнь 2016, 13:58:16
Ответ #16
  • Новичок
  • *
  • Сообщений: 17
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Как при оформлении покупки на одной странице перенести поле адреса и имени&фамилии для доставки из order-opc-new-account.tpl в раздел доставки order-carrier.tpl ? Необходимо, что бы эти адрес и имя&фамилия для доставки были после выбора способа доставки.
В каких классах и контроллерах менять и где? Никак не получается  :'( , подскажите советом.
06 Июнь 2016, 14:51:33
Ответ #17
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
Никак, потому что в шаблоне order-carrier.tpl вывод методов доставки  В шаблоне order-opc-new-account.tpl вывод данных клиента.
06 Июнь 2016, 15:22:30
Ответ #18
  • Новичок
  • *
  • Сообщений: 17
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Хорошо, как мне организовать, чтоб адрес и имя\фамилия  для доставки заполнялось после выбора метода доставки? У меня в зависимости от доставки меняются видимостии лейблы полей .
06 Июнь 2016, 16:15:40
Ответ #19
  • Старожил
  • ****
  • Сообщений: 274
  • Репутация: +3/-0
    • Просмотр профиля
В prestashop наоборот, сначала адрес нужно заполнить, потом уже выбирать доставку. Навряд ли вы сможете переделать этот порядок.
06 Июнь 2016, 16:24:54
Ответ #20
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
В prestashop наоборот, сначала адрес нужно заполнить, потом уже выбирать доставку. Навряд ли вы сможете переделать этот порядок.
Это потому что в prestashop учитывает ограничение доставки по странам (адресам).
Первый, обязательный этап, заполнить адрес, только потом будут показаны методы доставки.
06 Июнь 2016, 16:38:26
Ответ #21
  • Новичок
  • *
  • Сообщений: 17
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
А я могу это как-то обойти, добавить какое-то другое поле и его адресом обозвать и вывести в админке? Или как-то по другому изворотиться?

Первый, обязательный этап, заполнить адрес, только потом будут показаны методы доставки.
Поле страна у меня уже выбрано. Я хочу перенести только поле address1
06 Июнь 2016, 16:49:23
Ответ #22
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Поле страна является частью адреса, поэтому разделить их не получится. Для адреса один контроллер, для доставки другой.  Модуль нужен, такой как заказ на одной странцы, только под ваши требования. Я такого модуля не знаю. Скорее всего вам придеться самостоятельно его создавать.
06 Июнь 2016, 16:52:51
Ответ #23
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Переделывать нужно будет файлы
- /classes/Address.php
- /classes/Cart.php
- /classes/Customer.php
- /controllers/front/AddressController.php
- /controllers/front/AuthController.php
- /controllers/front/OrderOpcController.php
- /controllers/front/ParentOrderController.php
06 Июнь 2016, 17:06:09
Ответ #24
  • Новичок
  • *
  • Сообщений: 17
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
У меня вызывает затруднение - /controllers/front/OrderOpcController.php никак не могу понять какую функцию тут мне нужно менять.
06 Июнь 2016, 17:14:40
Ответ #25
  • Ветеран
  • *****
  • Сообщений: 1808
  • Репутация: +49/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Функцию getCarrierList и порядок вывода блоков.
06 Июнь 2016, 17:45:30
Ответ #26
  • Новичок
  • *
  • Сообщений: 17
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Хм, в /controllers/front/OrderOpcController.php в  getCarrierList  добавила 'test'=> 'test2', в переменную $vars
в order-carrier.tpl добавила отображение {d($test)}
Выводит пустое значение. Не понимаю, в чём ошиблась.
06 Июнь 2016, 17:53:00
Ответ #27
  • Ветеран
  • *****
  • Сообщений: 1808
  • Репутация: +49/-1
  • Сообщество PrestaShop
    • Просмотр профиля
protected function _getCarrierList()
{
...
         $vars = array(
....
               'myvar' => 'myvar',
Показывает текст 'myvar' в шаблоне.
06 Июнь 2016, 18:07:25
Ответ #28
  • Новичок
  • *
  • Сообщений: 17
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Так и сделала а значения нет. Что может быть? (второго такого же контроллера в папке овверрайд нет)
06 Июнь 2016, 18:30:01
Ответ #29
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
Функция _getCarrierList выполнится при обновлении списка доставки. Если тебе нужно при первой загрузке что-то показать, то делай так
public function init()
{
        parent::init();

        $this->context->smarty->assign('test', 'This is var test');