Автор Тема: Доработка корзины prestashop  (Прочитано 70 раз)

09 Августа 2016, 16:27:10
  • Новичок
  • *
  • Сообщений: 7
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Здравствуйте!  Я поменял местами "Аккаунт"(Адрес доставки) и "Способ доставки" в корзине  - мне необходимо, что-б адрес доставки был в зависимости от выбора перевозчика, не знаю, где прописать условие, что-б при выборе "Самовывоз" не запрашивало адрес/город/область/страна, но при этом,  при выборе "Перевозчик" - адрес доставки ( там модуль служб доставки стоит) был обязателен, города-бы не было и присутствовала-бы только область, а при выборе "Еженедельная развозка", наоборот, модуль с адресами складов служб доставки "уходил" ( он внесен в "Адрес1"), а появлялись поля "Город" ( с адресом доставки) и "область"? Prestashop 1.6.1.5  . Кто-нибудь сможет помочь?...
09 Августа 2016, 16:45:16
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 2158
  • Репутация: +49/-4
  • Сообщество PrestaShop
    • Просмотр профиля
Тебе все в заказе придеться переделать. В престе "Способ доставки"  зависит от "Адреса доставки", а не наоборот.
Создавать нужно свой контроллер для заказа. Удалять проверку адреса при выборе доставки, добавить обратную функцию.
09 Августа 2016, 16:52:30
Ответ #2
  • Новичок
  • *
  • Сообщений: 7
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Тебе все в заказе придеться переделать. В престе "Способ доставки"  зависит от "Адреса доставки", а не наоборот.
Создавать нужно свой контроллер для заказа. Удалять проверку адреса при выборе доставки, добавить обратную функцию.
То есть, новый файл создать, или в контроллерах можно переписать?
09 Августа 2016, 16:58:41
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 13126
  • Репутация: +14553/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Создавть свои контроллеры и классы нужно в папке override. Например, переопределить контроллер стандартного заказа в 5 шагов
/override/controllers/front/OrderOpcController.php
class OrderOpcController extends OrderOpcControllerCore
{
....
}
09 Августа 2016, 17:04:13
Ответ #4
  • Новичок
  • *
  • Сообщений: 7
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Создавть свои контроллеры и классы нужно в папке override. Например, переопределить контроллер стандартного заказа в 5 шагов
/override/controllers/front/OrderOpcController.php
class OrderOpcController extends OrderOpcControllerCore
{
....
}
Спасибо! Я на форуме меньше часа, не подскажите-ли, может где-то на форуме уже кто-то что-то переопределял таким образом - по примеру-бы сделал, или детальное описание переопределения. Так, в принципе, понятно, но лучше иметь подсказки перед глазами...
09 Августа 2016, 17:15:54
Ответ #5
09 Августа 2016, 17:30:03
Ответ #6
10 Августа 2016, 14:28:20
Ответ #7
  • Новичок
  • *
  • Сообщений: 7
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
что-то я вконец запутался. Что прописывать, куда...((( Посмотрел в /override/controllers/front/ OrderOpcController.php  что и где там прописывать, для того, что-бы описать нужный в корзине функционал - не знаю.... Наверняка, не только в этом файле нужно работать... Вот, в файле OrderController.php прописал такую "фичу" для "перепрыгивания" через адрес сразу на оплату...
// 4 steps to the order
case OrderController::STEP_DELIVERY:
                if ($this->context->cart->id_carrier == 15)
                    Tools::redirect('index.html?controller=order&step=3');
                else
                    Tools::redirect('index.html?controller=order&step=1');
            break;
id_carrier == 15 - Айдишка самовывоза....