Как добавить пользовательскую скидку к сумме заказа в drupal commerce

Я использовал пользовательское поле цены в объекте заказа с этим именем: field_commerce_order_off для получения пользовательской скидки от администратора в «admin/commerce/orders/add». Я пытаюсь использовать этот хук:

<?php

// Implements hook_commerce_order_presave().

function commerce_deposit_account_commerce_order_presave($order) {

    if($order->field_commerce_order_off){
        $discount = $order->field_commerce_order_off['und'][0]['amount'];
        $line_item = commerce_line_item_load($order->commerce_line_items['und'][0]['line_item_id']);

        // Add the discount as a price component
        $line_item->commerce_unit_price->data = commerce_price_component_add(
            $order->commerce_order_total['und'][0]['amount'],
            'discount',
            array(
                'amount' => $discount * -1,
                'currency_code' => 'IRR',
                'data' => array()
            ),
            0 // NOT included already in the price
        );
    }
}
?>

Но это не работает! Я не хочу добавлять скидку к line_item, я хочу добавить скидку к заказу.


person Amir    schedule 09.09.2014    source источник


Ответы (1)


Вы можете использовать https://www.drupal.org/project/commerce_fees, чтобы добавить отрицательную комиссию. к заказу.

person Manuel Egío    schedule 27.11.2014