Как создать скидку программно на ордер в commerce?

Чт, 08/12/2016 - 13:41

Через хук работает но если пишу свою функцию, скидка не встает

<?php

/**
 * Implements hook_commerce_order_presave().
 */
function mymodule_commerce_order_presave($order) {

    $order_wrapper entity_metadata_wrapper('commerce_order'$order);
        
$discount_decimal = -500;
        
$discount_currency_code 'RUB';

        $order_total $order_wrapper->commerce_order_total->value();
        
$discount_amount commerce_currency_decimal_to_amount($discount_decimal$discount_currency_code);
        
$discount_amount commerce_currency_convert($discount_amount$discount_currency_code$order_total['currency_code']);

        $order_wrapper->commerce_order_total->amount $order_total['amount'] - $discount_amount;
        
$order_wrapper->commerce_order_total->data commerce_price_component_add($order_total'discount', array(
            
'amount' => $discount_amount,
            
'currency_code' => $order_total['currency_code'],
            
'data' => array(),
        ), 
TRUE);
}

?>

0 Спасибо

Комментарии

Аватар пользователя Evil0o
3 months 3 недели назад Evil0o #

если возможно примером, читал не помогло)

0 Спасибо
Аватар пользователя deadie
3 months 3 недели назад deadie #

Может проще тогда через Rules UI?

0 Спасибо
Аватар пользователя Evil0o
3 months 1 неделя назад Evil0o #

Проблема актуальна. Через рулес не хочу)

0 Спасибо
Аватар пользователя dgastudio
3 months 1 неделя назад dgastudio #

вам уже указали 2 варианта решения проблемы
1. програмно
2. через rules

других вариантов нет

0 Спасибо