Strona 2 z 2

[ROZWIĄZANIE] Błąd gdy klient nie zakończy zamówienia

PostNapisane: 24 sty 2015, o 19:31
przez lukon
Problem rozwiązany, dziwne że tylko kilka linii wymagało zmiany 8-)
Aby tylko przycisk w kroku 6 - 'Potwierdź zamówienie' dodawał zamówienie do bazy danych trzeba zmienić:

1. W pliku /catalog/controller/checkout/confirm.php:

od 326 linii usunąć:
Kod: Zaznacz cały
$this->load->model('checkout/order');
$this->session->data['order_id'] = $this->model_checkout_order->addOrder($data);

zamiast nich dodać:
Kod: Zaznacz cały
$this->session->data['order_data'] = $data;

2. W używanych plikach płatności /catalog/controller/payment/cod.php, bank_transfer.php, cop.php, free_transfer.pl,itd...:

ok. 17 linii funkcja:
Kod: Zaznacz cały
public function confirm() {      
      // ta linia powinna być w każdej metodzie płatności:
      $this->load->model('checkout/order');      
      
      // nowa linia - dodająca zamówienie do bazy danych:
      $this->session->data['order_id'] = $this->model_checkout_order->addOrder($this->session->data['order_data']);
      
      // podobna linia jest w każdej metodzie płatności - potwierdzenie zamówienia:
      $this->model_checkout_order->confirm($this->session->data['order_id'], $this->config->get('cod_order_status_id'));
      
      // nowa linia - zwalnienie zmiennej z danymi zamówienia:
      unset($this->session->data['order_data']);
}


Dobrze, żeby ktoś jeszcze przetestował ten sposób. U mnie jak na razie wszystko działa i nie tworzy "śmieciowych" zamówień :D

Re: Błąd gdy klient nie zakończy zamówienia

PostNapisane: 11 lut 2015, o 22:09
przez jang1200
gadas napisał(a):Cześć jang1200 witaj po latach.
Ano Witaj :D dobry ludziku ;) , Ty tu jeszcze zaglądasz ?

Re: Błąd gdy klient nie zakończy zamówienia

PostNapisane: 23 lut 2015, o 16:35
przez lukon
Znalazłem błąd, który pojawia się gdy jednocześnie dwie osoby robią i zatwierdzają zamówienie.
W dzienniku błędów pojawia się:
Kod: Zaznacz cały
2015-02-23 12:59:11 - PHP Notice:  Undefined index: order_data in /catalog/controller/payment/bank_transfer.php on line 39
2015-02-23 12:59:11 - PHP Warning:  Invalid argument supplied for foreach() in /vqmod/vqcache/vq2-catalog_model_checkout_order.php on line 8
2015-02-23 12:59:11 - PHP Warning:  Invalid argument supplied for foreach() in /vqmod/vqcache/vq2-catalog_model_checkout_order.php on line 22
2015-02-23 12:59:11 - PHP Warning:  Invalid argument supplied for foreach() in /vqmod/vqcache/vq2-catalog_model_checkout_order.php on line 26
2015-02-23 12:59:11 - PHP Notice:  Error: Could not load language ! in /vqmod/vqcache/vq2-system_library_language.php on line 39
2015-02-23 12:59:12 - PHP Notice:  Error: E-Mail to required! in /system/library/mail.php on line 51
2015-02-23 12:59:12 - PHP Notice:  Undefined index: order_data in /catalog/controller/payment/bank_transfer.php on line 39
2015-02-23 12:59:12 - PHP Warning:  Invalid argument supplied for foreach() in/vqmod/vqcache/vq2-catalog_model_checkout_order.php on line 8
2015-02-23 12:59:12 - PHP Warning:  Invalid argument supplied for foreach() in/vqmod/vqcache/vq2-catalog_model_checkout_order.php on line 22
2015-02-23 12:59:12 - PHP Warning:  Invalid argument supplied for foreach() in /vqmod/vqcache/vq2-catalog_model_checkout_order.php on line 26
2015-02-23 12:59:12 - PHP Notice:  Error: Could not load language ! in /vqmod/vqcache/vq2-system_library_language.php on line 39
2015-02-23 12:59:12 - PHP Notice:  Error: E-Mail to required! in /system/library/mail.php on line 51

W bazie danych pojawiają się też, obok dwóch zamówień prawidłowych, dwa puste zamówienia z pustymi polami i zerami.