Sziasztok!
Azzal a problémával szembesültem, hogy normál űrlapon keresztüli módosítás esetén működik rendesen az ÁFA számítás, viszont ha programból módosítom akkor egyszer az árhoz, meg még egyszer a terméknél is rászámolja az ÁFA-t.
Az alábbi kóddal például 100 Ft-ra szeretném módosítani a termék árát 27% ÁFA-val:
<?php $product = commerce_product_load($product_id); $product->commerce_price[LANGUAGE_NONE][0]['amount'] = 100; $product->commerce_price[LANGUAGE_NONE][0]['currency_code'] = 'HUF'; $product->commerce_hu_vat[LANGUAGE_NONE][0]['value'] = 'hu_standard'; commerce_product_save($product); ?>
A módosítás sikeresen lefut, viszont a "commerce_price" értéke nem 100 lesz, hanem 127.
commerce_price_data:
A dolog érdekessége, hogy a termék megjelenítésnél pedig a megjelenített ár 161 Ft, ami a számításaim szerint így jön ki:
100 * 1.27 * 1.27 = 161,29
Tehát kétszer számolja rá az ÁFA-t. Ezzel így találkozott már valaki?
Meglepő, hogy ha felületet használom és ott módosítok árat (100 Ft-ra), akkor nem íródik át 127 Ft-ra és jól számol.
Ezeket a modulokat használom (csak releváns):
- commerce_price
- commerce_eu_vat
- commerce_eu_vat_hu
- commerce_eu_vat_ic (dep)
- commerce_eu_vat_rc (dep)
- commerce_vat
- commerce_vat_field
- commerce_vat_reference
Rules (alap beállítások):
(UI: Sajnálom, szándékomban állt a képekhez linket is rakni, hogy könnyen nagyítható legyen, de nem ment mert a reklámszemétszűrő nem engedte)
Probléma megoldva
Nem akartam elhinni, de egy nap küzdés után az egész problémát egy Computed Field mező okozta.
Pontosabban ez a rész:
A számítás lényege, hogy kiszámítsa az egységárat. Mivel az egységárat bruttó árból kell számítani, ezért merészkedtem ezt a függvényt használni. De úgy látszik kár volt, inkább összeadom a komponenseket.