Implementare ‘cumpără 2 produse iar al 3-lea îl primeşti gratis’ în Magento

Implicit Magento nu are opţiunea din titlu inclusă, sau cel puţin nu în versiunea 1.7 pe care am testat eu. Există ceva asemănător, cumperi 2 produse iar al 3-lea e gratuit, dar este vorba de acelaşi produs. În cazul de faţă am nevoie ca la oricare 3 produse în coş,  al 3-lea cel mai ieftin să fie gratuit.

La o căutare pe google am găsit o soluţie care aplică un discount fix sumei din coş, soluţie preluată de aici.

La codul din Observer.php am adăugat modificări astfel încât reducerea să nu fie fixă ci să fie 2 + 1 unde produsul gratuit e cel mai ieftin produs aflat în coş. la 6 produse avem 4 + 2 gratis se iau 2 cele mai ieftine, se aplică discount la coş cu suma preţului lor, şi tot aşa.

[…]

$discountAmount= 0; 
$counter = 0;
$arritemsval = array();
foreach($quote->getAllItems() as $item){

 

for($i=0;$i<$item->getQty();$i++)
{
$arritemsval[$counter] = $item->getPriceInclTax();
$counter++;
}

}

sort($arritemsval);

$itemstodiscount = intval($counter/3);

for($j=0;$j<$itemstodiscount;$j++)
{
$discountAmount += $arritemsval[$j];
}

if($quoteid) {

[…]

Soluţia se poate modifica în 1+1 gratis (al 2-lea produs, cel mai ieftin, gratuit) schimbând cifra 3 cu 2

$itemstodiscount = intval($counter/2);

Câteva motive pentru un site mobile friendly
Google search

Comments

  1. Hello, I need some help with it. When I try to go to magento front page it pops up this: Warning: smlxmepil_load_string(): Entity: line 2: parser error : Comment not terminated. Nothing is shown in system.log about this as well. I don’t know where to put Mage::log(print_r($filename, true)); to help me find this error.Help please.

Leave a Reply

Your email address will not be published / Required fields are marked *