Magento - Как добавить плату за заказ к заказу во время оформления заказа - PullRequest
2 голосов
/ 21 декабря 2010

Как добавить оплату счета к заказу с помощью моего платежного модуля? Я предполагаю, что это должно быть сделано во время процесса оплаты через мою модель метода оплаты. Возможно, мне следует создать и добавить товар / товар в корзину / цитату / объект заказа?

Хотя я не знаю, как сделать что-то из этого. Пожалуйста, помогите

Ответы [ 2 ]

9 голосов
/ 22 декабря 2010

Хотя возможно, это не для неискренних. Вот приблизительное количество шагов, чтобы добавить строку в итоговую область, которая затем добавит ваш сбор к общей сумме.

В узле конфигурации <global><sales><quote><total> добавьте новую запись (дополнительные примеры см. В app/code/core/Mage/Sales/etc/config.xml)

<paymentFee>
    <class>yourmodule/quote_address_total_paymentFee</class> <!-- A model -->
    <after>subtotal</after>
</paymentFee>

Также в config.xml добавить следующее к <global> ...

<fieldsets>
    <sales_convert_quote>
        <payment_fee><to_order>*</to_order></payment_fee>
    </sales_convert_quote>
</fieldsets>

Создайте модель для расчета комиссии.

class Your_Module_Model_Quote_Address_Total_Warranty extends Mage_Sales_Model_Quote_Address_Total_Abstract
{
    public function __construct()
    {
        $this->setCode('paymentFee');
    }

    public function collect(Mage_Sales_Model_Quote_Address $address)
    {
        // Check the payment method in use, if it is yours do...
        $address->setPaymentFee($fee);
        return $this;
    }

    public function fetch(Mage_Sales_Model_Quote_Address $address)
    {
        if ($address->getPaymentFee()) {
            $address->addTotal(array(
                'code'  => $this->getCode(),
                'title' => 'Your module payment message',
                'value' => $address->getPaymentFee()
            ));
        }
        return $this;
    }
}

В настройках вашего модуля измените таблицы sales_flat_quote и sales_flat_order на , добавьте столбец payment_fee .

Значение <after> в конфиге отвечает за определение порядка расчета, это может быть разделенный запятыми список итоговых кодов, включая «налог», «скидка» и т. Д. Вы также можете указать <before> значение для тех же целей. Метод $address->addTotal in fetch() будет выполнять работу по обновлению общей суммы, которая будет взиматься с клиента. Необходимо изменить таблицы котировок и заказов, чтобы плата, которую вы взяли, была записана и показана администратору.

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

0 голосов
/ 22 декабря 2010

Если вы раньше не работали с базой кода Magento, я бы не советовал вам начинать с этого, это довольно сложно. Использование расширения, вероятно, самый безопасный вариант.

Я не использовал его, но я считаю, что это расширение должно сделать эту работу.

Стандартный отказ от ответственности: я никак не связан с продавцом. Предостережение emptor .

...