Jump to content

Bon rabatowy - łączenie z innymi -jak domyślnie wyłączyć


Recommended Posts

Hej

 

przerobiłem moduł newslettera na generator Bonów przy zapisaniu się do newslettera, wszystko oh i ah, do dziś gdy klient zapisał się na 2mailach i wykorzystał dwa kody w jednym zamówieniu...

 

już wiem co ustawić w MySql by kody się nie łączyły, ale nie wiem co w MySql'u musi być ustawione by łączenie kodów było domyślnie wyłączone... wiem, że za porównywanie kodów który z którym można łączyć odpowiada tablicy cart_rule_combination a jej wywołanie to kolumna cart_rule_restriction w tablicy cart_rule, ale nawet gdy wywołanie jest wyłączone i tak skądś to czyta...

 

mój nos zawiódł mnie do classes/CartRule.php ale wolę tam nie grzebać bo za słabo znam Prestę i nie chcę niczego spierdzielić....

 

ktoś może wie co w MySql za to odpowiada?

 

Pozdrawiam

Share this post


Link to post
Share on other sites

Dopisałem takie coś:

 

 

public function addvoucher($email){

$lenght = 5;

$kodvouchera ='NEWS';

$kodvouchera .= rand(10000,99999);

$this->sendVoucher($email, $kodvouchera);

$sql = 'INSERT INTO ps_cart_rule (date_from , date_to, description, quantity, quantity_per_user, partial_use, code, minimum_amount, active, date_add, date_upd, minimum_amount_tax, minimum_amount_currency, minimum_amount_shipping, reduction_currency, reduction_amount, reduction_tax)

VALUES (NOW(), NOW() + interval 2 week, \'Auto zapis newslettera\', \'1\', \'1\', \'1\', \''.$kodvouchera.'\', \'63.00\', \'1\', NOW(), NOW(), \'1\', \'1\', \'1\', \'1\', \'10.00\', \'1\')';

return Db::getInstance()->execute($sql);

}

Share this post


Link to post
Share on other sites

Jak mniemam masz jakieś nawet najmniejsze pojęcie o OOP ?

 

przeglądnij sobie zawartość klasy:

 

classes/CartRule.php

 

najpierw definiujesz obiekt:

 

$cartrule = new CartRule();

 

następnie definiujesz pola:

$cartrule->priority=1;
$cartrule->quantity=1;
etc.

musisz zdefiniować wszystkie z pól które w definicji obiektu są "required"

 

jak już zdefinijesz wszystko co trzeba, odpalasz funkcję:

$cartrule->add();

 

kod rabatowy wyląduje w bazie.

Share this post


Link to post
Share on other sites

no i ważne jest, aby pilnować się definicji obiektu, jak masz pole z tłumaczeniem ('lang' => true) - w tym przypadku jest jedno takie pole, to musisz załadować tablicę z językami, często z tym są problemy i skrypt wywala 500 internal server error

Share this post


Link to post
Share on other sites

Ok,

 

dzięki podanym przez Was informacjom poprawiłem kod na taki wg. standardów Presty.

 

Kod działa jak powinien :)

 

wspierałem się również postami:

http://www.prestashop.com/forums/topic/247960-solved-genereate-vouchers-aka-cartrule/

oraz

http://www.prestashop.com/forums/topic/247960-solved-genereate-vouchers-aka-cartrule/page__p__1233268__hl__name%20foreach__fromsearch__1?do=findComment&comment=1233268

 

Pozdrawiam

Share this post


Link to post
Share on other sites

  • 3 months later...

Dzięki za wcześniejsze informacje wszystko działa tylko nie mam pojęcia jak dodać restrykcje np.

produkt musi być z kategorii x w ilości minimum y

Macie jakieś podpowiedzi?

 

dajemy takie tematy jak :

$cart_rule->product_restriction = 1;

no ale jak wskazać produkty bądź kategorie?

Share this post


Link to post
Share on other sites

 Share

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More