Jump to content

Ide til mængderabatter [PS 1.3]


presta-dyr

Recommended Posts

Jeg er sikker på, mængderabatter er en god idé. Men hvis man ikke har så mange varer på lager, kan det give den modsatte effekt. Kunden ser hun kan få rabat ved 5 stk., men der er kun 2 på lager. Så har man en skuffet kunde.

Jeg har ændret lidt i filen classes/QuantityDiscount.php i funktionen getQuantityDiscounts:

$quantity = Product::getQuantity($id_product);
$result = Db::getInstance()->ExecuteS('
   SELECT *
   FROM '._DB_PREFIX_.'discount_quantity dq
   LEFT JOIN `'._DB_PREFIX_.'discount_type_lang` dtl ON (dq.`id_discount_type` = dtl.`id_discount_type` AND dtl.`id_lang` = '.intval($cookie->id_lang).')
   WHERE dq.`id_product` = '.intval($id_product).'
   AND dq.`quantity` <= '.$quantity.'
   ORDER BY dq.`quantity` ASC');



så mængderabatten kun vises, hvis den er relevant. Det kan så virke lidt pudsigt, hvis varen findes i flere varianter, at mængden gælder "på tværs", men det kan jo være kunden gerne vil have en af hver.

Og her er så lige et SQL-statement, der sætter 10 % mængderabat for alle varer ved køb af 5 stk:

DELETE FROM ps_discount_quantity WHERE id_discount_type = 1 AND quantity = 5;
INSERT INTO ps_discount_quantity (id_discount_type, id_product, id_product_attribute, quantity, value) SELECT 1, id_product, 0, 5, 10 FROM ps_product



/Kjeld

Link to comment
Share on other sites

Jeg er sikker på, mængderabatter er en god idé. Men hvis man ikke har så mange varer på lager, kan det give den modsatte effekt. Kunden ser hun kan få rabat ved 5 stk., men der er kun 2 på lager. Så har man en skuffet kunde.

Jeg har ændret lidt i filen classes/QuantityDiscount.php i funktionen getQuantityDiscounts:

$quantity = Product::getQuantity($id_product);
$result = Db::getInstance()->ExecuteS('
   SELECT *
   FROM '._DB_PREFIX_.'discount_quantity dq
   LEFT JOIN `'._DB_PREFIX_.'discount_type_lang` dtl ON (dq.`id_discount_type` = dtl.`id_discount_type` AND dtl.`id_lang` = '.intval($cookie->id_lang).')
   WHERE dq.`id_product` = '.intval($id_product).'
   AND dq.`quantity` <= '.$quantity.'
   ORDER BY dq.`quantity` ASC');



så mængderabatten kun vises, hvis den er relevant. Det kan så virke lidt pudsigt, hvis varen findes i flere varianter, at mængden gælder "på tværs", men det kan jo være kunden gerne vil have en af hver.

Og her er så lige et SQL-statement, der sætter 10 % mængderabat for alle varer ved køb af 5 stk:

DELETE FROM ps_discount_quantity WHERE id_discount_type = 1 AND quantity = 5;
INSERT INTO ps_discount_quantity (id_discount_type, id_product, id_product_attribute, quantity, value) SELECT 1, id_product, 0, 5, 10 FROM ps_product



/Kjeld



Det lyder fornuftigt kjeld, kan du ikke udbyde lidt hvad dit statement gør? Er det på alle produkter på tværs af hele shoppen? Jeg har lavet en mængde rabat der arbejder udfra prisen, men det her er dynamisk på en lidt anden måde.

Virker det på alle versioner, eller hvad der det bygget på?
Link to comment
Share on other sites

Nej, som overskriften antyder, er det kun set virke på 1.3. På 1.4 håndteres rabatten på en lidt anden måde. Det vil formentlig også kunne bruges på 1.2.

SQL-statementet indsætter en række for hvert eneste produkt i shoppen, hvor man tilbyder 10 % rabat, hvis kunden køber 5 stk. (eller flere).

Og så er det nok en god idé at kigge på modulet, der omtales her: http://www.prestashop.com/forums/viewthread/106177

/Kjeld

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...