Jump to content

Problem ze statusami w module zapłać w sklepie


Recommended Posts

Witam, problem polega na tym, że po złożeniu zamówienia -> odbiór w sklepie -> zapłać w w sklepie, ma ono status "oczekiwanie na płatność przelewem bankowym". W pliku php ustawione jest pobieranie z bazy w tabeli ps_configuration rekordu "ADD_INSTORE_STATUS_" do któego przypisany jest status nr. 23 czyli "Do zapłaty w sklepie- w przygotowaniu". Popatrzyłem do tabeli "ps_order_history" i zorientowałem się, że zamówienie przyjmuje poprawny status ale w tej samej sekundzie zmienia się na "oczekiwanie na płatność przelewem bankowym". Wcześniej usuwałem swoje testowe zamówienia, może coś namieszałem, jak to naprawić? W panelu zamówienia mają luki w id, gdzie w  bazie powinienem pousuwać jeszcze rekordy?

Link to comment
Share on other sites

Oj toś narobił sobie bałaganu, niepoprawne usuwanie zamówień kończy siw właśnie takimi problemami. Zamówienia to wiele tabel które dodatkowo posiadają auto increment więc nowe zamówienia mogą mieć starych dostawców, stare produkty, czy rodzaje płatności. Musisz posprzątać bazę i najlepiej ustawić w tabelach autoincrement wszędzie takie samo.

Link to comment
Share on other sites

Ok ale w jakich tabelach konkretnie posprzątać? I co pozmieniać żeby wszystko do siebie dopasować i aby kolejne zamówienia chodziły w porządku. W jaki sposób usuwać zamówienia w przyszłości?

 

//EDIT

Ok jeden problem rozwiązany, jest to standard, że zamówienie przyjmuje jeden status, po czym zmienia się na drugi. Bankwire działa prawidłowo czyli przyjmuje status oczekiwania, potem zmienia się na brak towaru (o czym nie wie klient) i tak ma być. Jednak moduł za pobraniem przyjmuje najpierw status brak towaru, a potem w realizacji czy jak tam się go nazwie. W głównym pliku php jest taki sam kod jak w classes/PaymentModule.php czyli:

if (Configuration::get('PS_STOCK_MANAGEMENT') && $order_detail->getStockState())
{
$history = new OrderHistory();
$history->id_order = (int)$order->id;
$history->changeIdOrderState(Configuration::get('PS_OS_OUTOFSTOCK'), $order, true); 
$history->addWithemail();
}

a w Bankwire:

if (in_array($state, array(Configuration::get('PS_OS_BANKWIRE'), Configuration::get('PS_OS_OUTOFSTOCK'), Configuration::get('PS_OS_OUTOFSTOCK_UNPAID'))))
{ 
	$this->smarty->assign(array(
'total_to_pay' => Tools::displayPrice($params['total_to_pay'], $params['currencyObj'], false),
	'bankwireDetails' => Tools::nl2br($this->details),
	'bankwireAddress' => Tools::nl2br($this->address),
	'bankwireOwner' => $this->owner,
	'status' => 'ok',
	'id_order' => $params['objOrder']->id
	));
if (isset($params['objOrder']->reference) && !empty($params['objOrder']->reference))
	$this->smarty->assign('reference', $params['objOrder']->reference);
}

Jak to przerobić?

Edited by JaCube (see edit history)
Link to comment
Share on other sites

×
×
  • Create New...