вот кусок кода из проблемного модуля goopay
$id_order = Order::getOrderByCartId($cart->id);
if ($id_order)
{
$order = new Order($id_order);
}
else
{
$this->validateOrder($cart->id, _PS_OS_PREPARATION_, $v_amount, $this->displayName, $this->l("Waiting for payment"));
$order = new Order($this->currentOrder);
$id_order = $this->currentOrder;
}
а это строка модуля который работает как нужно (вызов без всяких условий)
$this->validateOrder((int)$this->context->cart->id, (int)$order_status, ($result_json->amount * 0.01), $this->displayName, $message, array(), null, false, $this->context->customer->secure_key);
подозреваю что проблема тут
не понятен контекст
$id_order = Order::getOrderByCartId($cart->id); получаем ид заказа, и если заказ есть то создаем опять заказ new Order а зачем?
может выкинуть первую часть условия?
и в догонку-переменная $order больше нигде не используется