$ Currency

OpenCart 3.0.4.0 release – what's new?

While everyone is waiting for the OpenCart 4.1.0.0 release, the official GitHub repository has put out a new release of the "old" 3.0.x.x branch with the version number 3.0.4.0. There are many changes…

OpenCart 3.0.4.0 release – what's new?

While everyone is waiting for the OpenCart 4.1.0.0 release, the official GitHub repository has put out a new release of the "old" 3.0.x.x branch with the version number 3.0.4.0. There are many changes, but they cannot be called major. There are many fixes, removals and additions of payment modules, and others. 

When deciding what the version number for the new release should be, there were two options: 3.0.3.10 or 3.0.4.0. Since there were essentially no functional changes in the system, the natural choice would have been to use the 3.0.3.10 index, but then many older extensions that check the CMS version would have run into problems, because the "10" patch is a two-digit number rather than a single digit. So everyone agreed that the new OpenCart version would carry the 3.0.4.0 index, which is somewhat logical, since besides the fixes some payment modules were also added and removed.

We are already ready to offer modules for OpenCart 3.0.4.0 — ready-made solutions for your new system.

List of changes in OpenCart 3.0.4.0 compared to version 3.0.3.9:

  • Fixed currency rates update error by @mhcwebdesign
  • Marketing messages counter fix by @ADDCreative
  • .htaccess.txt fix by @ADDCreative
  • Added DB_PREFIX in the backup controller by @condor2
  • Fixed attribute autocomplete by @mhcwebdesign
  • Fixed the "Passing null to parameter" error on PHP 8 by @ocdev.pro
  • Fixed an incorrect message in the manufacturers list by @condor2
  • Added the 'text_no_results' language variable for manufacturer by @condor2
  • Fixed redirect protection by @ADDCreative
  • Fixed an error in pagination in the Google Base extension by @ocdev.pro
  • Fixed warnings in the Laybuy model on PHP 8 by @condor2
  • Typo in the fraudlabspro model by @condor2
  • Typo in the sales report model by @condor2
  • Typo in the error report model by @condor2
  • Removed duplicate values from array — utf8 helper by @condor2
  • Created phpstan.neon by @condor2
  • Created Lint.yml by @condor2
  • Created .php-cs-fixer.php by @condor2
  • Time zone change fix that breaks session expiration by @ADDCreative
  • Reverted "Time zone change fix that breaks session expiration" by @danielkerr
  • Removed the link check from proxy.php by @AJenbo
  • Fixed Caught class DB\mysqli_sql_exception not found in mysqli.php by @condor2
  • Undefined variable: $ — sagepay_direct.php by @condor2
  • Undefined variable: $i — sagepay_server.php by @condor2
  • Added PayPal language fix by @condor2
  • Undefined variable: $data — router controller by @condor2
  • Undefined variable: upload model $data by @condor2
  • Removed duplicated array — paypal.php by @condor2
  • Duplicate array key — ec_ship.php by @condor2
  • Incorrect case: googleshopping\exception\Connection by @condor2
  • Updated google.php model by @condor2
  • Updated googleshopping library by @condor2
  • Updated alipay_cross.php by @condor2
  • Undefined variable: customer model $query by @condor2
  • Updated fraudlabspro fix_case function controller by @condor2
  • Updated pgsql.php by @condor2
  • Updated router.php by @condor2
  • Added 'public' to function — alipay_cross model by @condor2
  • Updated divido.php by @condor2
  • Updated divido.php by @condor2
  • Updated startup.php by @condor2
  • Fixed duplicate array key by @mhcwebdesign
  • Updated pp_express.php by @condor2
  • Updated PayPal integrations by @mhcwebdesign
  • Updated squareup.php by @condor2
  • Added Opayo payment module by @condor2
  • Updated pp_express.php by @condor2
  • Bug fixes in the framework by @mhcwebdesign
  • Fixed alipay error by @mhcwebdesign
  • Added missing type for Opayo by @ADDCreative
  • Opayo catalog model by @condor2
  • Comments on framework classes by @AJenbo
  • Included the WeChat dependency by @AJenbo
  • Fixed the WeChat XML response by @AJenbo
  • Updated securetrading_ws.php by @condor2
  • Updated securetrading_pp.php by @condor2
  • Updated .php-cs-fixer.php by @condor2
  • Restored the old code for php-cs-fixer.php by @condor2
  • Extension deletion fixes: permission removal, + fixes for phpstan.neon by @mhcwebdesign
  • Updated phpstan to 1.10.57 by @condor2
  • Updated phpstan.neon to level 1 by @condor2
  • Replaced wget with curl in the ecb controller by @condor2 
  • Bug fixes for Opayo and Geo Zones by @mhcwebdesign
  • More bug fixes per phpstan level 1 by @mhcwebdesign
  • One more bug fix per phpstan level 1 by @mhcwebdesign
  • Fixed a geo zones bug by @mhcwebdesign
  • More bug fixes per phpstan level 1 by @mhcwebdesign
  • Added cache control headers by @ADDCreative
  • Identified functions having the same signature by @AJenbo
  • Updates for payment extensions by @mhcwebdesign
  • Updated PayPal to version 2.2.1 by @mhcwebdesign
  • Removed duplicate array key by @mhcwebdesign
  • Removed old duplicated pp_express by @mhcwebdesign
  • Added missing type for PayPal by @ADDCreative
  • Added missing screen to the module filter by @ADDCreative
  • Time zone change fix that breaks session and API by @ADDCreative
  • Backup tool bug fixes by @mhcwebdesign
  • Improved account forgotten protection by @mhcwebdesign
  • Improved admin forgotten security by @mhcwebdesign
  • Pagination fix by @mhcwebdesign
  • More pagination fixes by @mhcwebdesign
  • Windows line endings by @mhcwebdesign
  • PayPal update by @mhcwebdesign
  • Minor bug fix for PayPal by @mhcwebdesign
  • Security fix by @mhcwebdesign
  • Added missing type for PayPal by @mhcwebdesign
  • Token generator by @mhcwebdesign
  • Added casting to zone_id in settings by @ADDCreative
  • Added missing PayPal files by @mhcwebdesign
  • An admin should not be able to disable themselves, by @mhcwebdesign
  • Currency cache bug fix by @mhcwebdesign
  • Third-party vendor library updates by @mhcwebdesign
  • Added a check with BluePay Hosted support by @ADDCreative
  • Updated Sagepay URLs by @mhcwebdesign
  • ECB fix by @mhcwebdesign
  • Updated PayPal version number by @mhcwebdesign
  • PayPal update by @mhcwebdesign
  • Updated PayPal by @mhcwebdesign
  • Fixed Undefined index: ID  in the Google Ads controller by @condor2
  • "Remove" option for URL links in Summernote
  • Fixed an issue with saving in Summernote code view mode
  • Removed the domain from the language and currency cookies by @ADDCreative 
  • Check whether the response is valid in the promotion module by @ADDCreative
  • Bug fix for the dashboard map by @mhcwebdesign
  • Removed divido.png by @mhcwebdesign
  • Fixed the automatic currency update bug by @mhcwebdesign
  • More currency update changes by @mhcwebdesign
  • Removed unused column_left controller by @condor2 
  • Order info header fix by @mhcwebdesign
  • Fixed the code for calling a model inside another model in the ecb model by @condor2
  • Removed extra code by @mhcwebdesign
  • Pagination limit fix by @mhcwebdesign

As you can see, the new OpenCart 3.0.4.0 version has many bug fixes, and most importantly, there are patches related to system security. So if you are a fan of the stable 3.0.3.x branch, the 3.0.4.0 release is unambiguously good news — it is a direct continuation of this branch. Almost all modules and extensions that are compatible with the previous 3.0.3.9 will work with this version as well, so there will definitely be no problems with finding ready-made solutions.

Releasing a new version of the old branch is also a sign that the 4.1.0.0 release is coming soon. Therefore, before publishing an updated "version 4", OpenCart author Daniel Kerr made a release of the older branch. By the way, in one of the GitHub discussions last week he wrote that he is finishing work on the order editor in the admin panel, and after that the release will come.

We are already using OpenCart 3.0.4.0 and waiting for OpenCart 4.1.0.0!

You can download OpenCart 3.0.4.0 here.

Last updated: 19.04.2026

Contact via Telegram Contact via Telegram