Ho la necessità di impostare manualmente il prezzo di alcuni line-item che vengono inseriti secondo una logica dentro il carrello.
Ho quindi un prodotto nello shop con prezzo 0.
Il codice che uso è questo:
<?php
function mymodule_test($product_id)
{
global $user;
$user = user_load($user->uid);
$order = commerce_cart_order_load($user->uid);
$order_wrapper = entity_metadata_wrapper('commerce_order', $order);
$product = commerce_product_load($product_id);
$line_item = commerce_product_line_item_new(
$product,
1,
0,
array(
),
'cover'
);
$line_item_wrapper = entity_metadata_wrapper("commerce_line_item", $line_item);
$line_item_wrapper->commerce_unit_price->data = commerce_price_component_add(
$line_item_wrapper->commerce_unit_price->value(),
'base_price',
array(
'amount' => 1234,
'currency_code' => 'EUR',
'data' => array(),
),
TRUE
);
$insert_line_item = commerce_cart_product_add($user->uid, $line_item_wrapper->value(), FALSE);
return 'done';
}
?>
Questo è il test che uso (funzione invcata da hook_menu()) - il che funziona a metà: mi inserisce si l'oggetto, ma con il prezzo preso dal prodotto dello shop, mi ignora totalmente il prezzo 'manuale' (1234).
Subito pensavo che avere 2 base_price facesse confusione, ho quindi provato a usare un altro componente (usato anche da altri moduli), come 'discount', ma nada, non riesco a inserire quel maledetto prezzo manuale.
Qualcuno può aiutarmi?
Ho anche provato a guardare il codice delle regole che vanno a lavorare sui prezzi dei line-item, e niente, non fanno nulla che non faccio anche io, solo che il mio codice non funziona!
Vi prego stò impazzendo..!!
Nessuno?
up
up
nessuno?