#prestashop #prestashop-1.6 #prestashop-1.7
#prestashop #prestashop-1.6 #prestashop-1.7
Вопрос:
замечательное сообщество. Мне нужно добавить дополнительную плату к заказам в prestashop. Я разработал пользовательский платежный модуль, который работает должным образом. Я просто не могу найти никакой информации о том, как добавить эту дополнительную плату (которая настраивается в самом модуле оплаты) в корзину, счет и везде, где это необходимо. Вся информация, которую я нашел, ссылка на ответы, чтобы купить модуль на торговой площадке. Я не могу позволить себе купить это. Итак, я буду признателен, если вы сможете пролить некоторый свет на эту проблему.
Я использую PS 1.6 и 1.7.x.
Ответ №1:
Лучший способ добиться этого -:
- Добавьте новый товар в свой каталог под названием «Дополнительная плата»
- Выберите «Нигде» для наглядности и установите цену, соответствующую дополнительной плате, которую вы пытаетесь взимать
- Переопределите метод getOrderTotal() в классе Cart, чтобы добавить новое условие, указывающее, что если выбран определенный платежный модуль, товар с «Дополнительной оплатой» должен быть автоматически добавлен в корзину (используя $this->updateQty(1, $id_product_extra_fee);)
- Обязательно разберитесь со случаем, когда покупатель решит перейти на другой способ оплаты (затем удалите этот товар из своей корзины).
Это автоматически заполнит счет, электронное письмо с подтверждением, детали заказа в панели администратора и т.д.
Комментарии:
1. Спасибо за ваш вклад. Действительно, я нашел это решение после нескольких часов поиска. Но есть недостаток, который, возможно, вы знаете, как устранить: администратор может настроить дополнительную плату в конфигурации платежного модуля. Таким образом, дополнительная плата составляет% от общей стоимости данного заказа, поэтому цена «поддельного» продукта может меняться. Как с этим справиться? Должен ли я программно изменять цену перед добавлением товара в корзину?
2. Да, правильным способом могло бы быть создание конкретной цены «на лету» для этого продукта / клиента. Такого рода функция изначально недоступна в PrestaShop, потому что она запрещена большинством платежных решений (например, проверьте ToS PayPal, где они конкретно упоминают об этом).