Checkout Update Bugfix for OpenCart 4
Fixes OpenCart 4 checkout bugs that prevent order updates after confirmation
This extension fixes critical bugs in OpenCart 4's checkout process that prevent proper order updates and cause data loss during checkout operations. Fixes OpenCart 4 checkout bugs that prevent order updates after confirmation and missing field updates in editOrder method.
Problems Solved
1. Order Update Prevention Bug
Issue: Orders cannot be updated after the first confirmation click due to incorrect status checking logic.
Root Cause: The confirm method contains this problematic condition:
} elseif ($order_info && !$order_info['order_status_id']) {
$this->model_checkout_order->editOrder($order_id, $order_data);
}
When a customer first clicks "Confirm Order", the order gets a "voided" status. If they go back and modify something (shipping method, payment method, currency etc.) and click confirm again, the order won't update because order_status_id
is no longer 0.
Solution: Reset the order status to 0 before the confirm process, allowing updates to proceed normally.
2. Incomplete Field Updates in editOrder
Issue: The editOrder
method doesn't update all order fields in the database.
Missing Fields:
marketing_id
tracking
language_id
language_code
currency_id
currency_code
currency_value
ip
forwarded_ip
user_agent
accept_language
Solution: Execute an additional SQL query after the original editOrder method to update the missing fields.
Technical Implementation
Event-Based Approach
This extension uses OpenCart's event system to fix the bugs without modifying core files:
- Before Checkout/Confirm Event: Resets order status to allow updates
- After editOrder Event: Updates missing fields with additional SQL query
Benefits
- No core file modifications - uses only events
- Update-safe - won't be overwritten by OpenCart updates
- Easy installation/removal - standard extension format
- Minimal performance impact - only triggers when needed
Compatibility
- OpenCart Version: up to 4.1.0.3
Use Cases
This fix is essential for stores where customers:
- Frequently change shipping/payment methods during checkout
- Use multiple currencies or languages
- Need accurate tracking and marketing attribution
- Require complete order data for integrations
This extension addresses documented bugs in OpenCart 4's checkout process. It's recommended for all OpenCart 4 installations to ensure proper checkout functionality.
Installation instructions for "Checkout Update Bugfix"
1. Download the extension archive: checkoutbugfix.ocmod.zip.
2. In the admin panel, go to Extensions > Installer and upload the archive. Press install button.
3. Go to Extensions > Extensions and choose the extension type "Other".
4. Install "Checkout Update Bugfix" extension, edit, turn on the status and save settings.
Related extensions
SEO URL PRO
Allows you to fully manage your URL structure and generate SEO URLs...
Modification Manager
Allows you to edit and download OCmod XML modifications, view modified file logs, and error logs...
Event Manager
Allows you to manage developer events — add, edit, and delete them. More convenient than default...
Improved Image Manager
Allows you to add multiple product images at once and sort them within the product. The file manager..