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

Link to comment
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);

}

Link to comment
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.

Link to comment
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

Link to comment
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

Link to comment
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?

Link to comment
Share on other sites

×
×
  • Create New...