Practical OpenCart engineering, written by the people who do it.
Tutorials, performance and security notes, update guides and troubleshooting — from real stores we support.
- UpdatesTwo OpenCart admin screens side by side8 min read
Upgrading from OpenCart 3.0.x to 4.x: a realistic checklist
What actually changes under the hood, what breaks first, and how to plan a migration that never takes the live store offline.
BABerk AvcıPrincipal Backend Engineer - Securityunknown admin row highlighted in a user list6 min read
Five signs your OpenCart store has been compromised
An admin account nobody created, PHP files in a folder that should only hold images, a run of orders that never get paid. How to read each signal, confirm it with one query, and what to do in the first hour.
ZAZeynep AydınAppSec Lead - Troubleshootingterminal tailing error.log after a failed update5 min read
White screen after an update: reading the error log like an engineer
A blank page is not the absence of information — it is information written somewhere you are not looking yet. Where OpenCart, PHP and the web server each keep it, and how to get from an empty screen to a file and a line number.
SÖSercan ÖztürkHead of SRE & Platform Engineering - TutorialsCode editor showing an event handler class12 min read
Writing upgrade-safe OpenCart 4 extensions with events
Why OCMOD stops working the day core changes, and how the event system keeps your customizations alive through updates.
NENazlı ErdoğanSoftware Engineer — Node.js/Python - HostingNginx, PHP-FPM and Redis layers stacked7 min read
Nginx + PHP-FPM + Redis: a server profile tuned for OpenCart
The configuration we deploy on managed OpenCart servers — the server block, the PHP-FPM pool, OPcache, Redis and the MySQL settings that actually move the needle — with the reasoning behind every number.
EDElif DemirPlatform Engineer - E-commerceCheckout funnel narrowing across six steps6 min read
Where OpenCart checkouts lose customers — and how we fix it
The steps, fields and error messages that quietly cost orders in a default OpenCart checkout, and the order we work through them in — based on patterns we have seen repeat across stores over the years.
EYEmre YıldızChief Technology Officer (CTO) - DevelopmentOrder data flowing between two systems9 min read
Connecting OpenCart to an ERP: patterns that survive real traffic
Queues, idempotency keys and reconciliation — the difference between an integration that demos well and one that still works on a bad Friday.
BABerk AvcıPrincipal Backend Engineer - PerformanceDatabase tables swollen with old order rows5 min read
Database maintenance for stores with years of order history
Log tables nobody prunes, the indexes OpenCart never ships, and the difference between a database that is large and one that is slow — with the queries we actually run.
CYCansu YılmazLead Database Architect - Securityadmin login page behind an IP allow-list4 min read
Hardening the OpenCart admin: the ten-minute version
Six changes that need no developer and remove most of the automated attack surface: move the admin, move storage, stop PHP running in upload paths, decide who can reach the login page, clean up users, and stop leaking errors.
ZAZeynep AydınAppSec Lead