Нужно дополнительно к представленному коду определить, какие ещё таблицы и поля в них нужно поправить.
PDF-файл берёт данные из таблицы order_invoice, следовательно дополнительно нужно дописать:
$order_invoice = new OrderInvoice($order_carrier->id_order_invoice);
if (Validate::isLoadedObject($order_invoice))
{
// Update amounts of Order Invoice
$order_invoice->total_shipping_tax_excl = $order->total_shipping_tax_excl;
$order_invoice->total_shipping_tax_incl = $order->total_shipping_tax_incl;
$order_invoice->total_paid_tax_incl = $order->total_paid_tax_incl;
$order_invoice->total_paid_tax_excl = $order->total_paid_tax_excl;
// Update Order Invoice
$order_invoice->update();
}
else
$this->errors[] = Tools::displayError('The order invoice ID is invalid.');
Кстати, в коде советую изменить вот это:
$carriers = Carrier::getCarriers($cookie->id_lang, true);
'carriers' => Carrier::getCarriers($cookie->id_lang, true),
На вот это:
$carriers = Carrier::getCarriers($this->context->cookie->id_lang, true, false, false, null, 'PS_CARRIERS_OR_CARRIER_MODULES_NEED_RANGE');
'carriers' => $carriers,
Это на тот случай, если кроме созданных доставок есть модульные, например, Почта России. Стандартные параметры функции Carrier::getCarriers не позволят взять модульные доставки.
И теперь вопрос от меня, касаемо изменения поля $order_payment->amount: Я не могу догнать, как его изменить! День бьюсь, результата нет...
Вот что пишу, где ошибка:
$id_order = OrderPayment::getByOrderReference($order->reference);
$order_payment =new OrderPayment($id_order);
if (Validate::isLoadedObject($order_payment))
{
$order_payment->amount = $order->total_paid;
$order_payment->update();
}
else
$this->errors[] = Tools::displayError('The order payment ID is invalid.');