A fork of Magento-1 that is accepting bug fixes (backward compatible, drop in replacement for official Magento)
This package is auto-updated.
Last update: 2023-02-06 10:04:12 UTC
This repository is the home of an unofficial community-driven project. It's goal is to be a dependable alternative to the Magento CE official releases which integrates improvements directly from the community while maintaining a high level of backwards compatibility to the official releases.
Pull requests with bug fixes and security patches from the community are encouraged and welcome!
- Secure your installation
- Development Environment with ddev
- Development with PHP 8.1
- PhpStorm Factory Helper
- Public Communication
PHP 7.3+ (PHP 8.0 is supported, PHP 8.1 is work in progress)
MySQL 5.6+ (8.0+ recommended) or MariaDB
intlsince 18.104.22.168 & 20.0.17
gpatchon MacOS/HomeBrew) since 22.214.171.124 & 20.1.0
Please be aware that although OpenMage is compatible that one or more extensions may not be.
- Redis 5+ (6.x recommended, latest verified compatible 6.0.7 with 20.x)
Download the latest release archive and extract it over your existing install. Important: you must download the ZIP file from a tagged version on the releases page, otherwise there will be missing dependencies.
Step 1: Create a new composer project:
Step 2: Configure composer. The below options are required. You can see all options here.
# Allow composer to apply patches to dependencies of magento-lts composer config --json extra.enable-patching true # Configure Magento core composer installer to use magento-lts as the Magento source package composer config extra.magento-core-package-type magento-source # Configure the root directory that magento-lts will be installed to, such as "pub", "htdocs", or "www" composer config extra.magento-root-dir pub
Step 3: Require
# PHP 7 composer require "aydin-hassan/magento-core-composer-installer":"~2.0.0" # PHP 8 composer require "aydin-hassan/magento-core-composer-installer":"^2.1.0"
Note: be sure to select
y if composer asks you to trust
Step 4: Require
# OpenMage v19 composer require "openmage/magento-lts":"^19.4.0" # OpenMage v20 composer require "openmage/magento-lts":"^20.0.0"
Note: be sure to select
y if composer asks you to trust
To install the latest development version (may be unstable):
# OpenMage v19 composer require "openmage/magento-lts":"1.9.4.x-dev" # OpenMage v20 composer require "openmage/magento-lts":"20.0.x-dev"
If you want to contribute to the project:
git init git remote add origin https://github.com/<YOUR GIT USERNAME>/magento-lts git pull origin main git remote add upstream https://github.com/OpenMage/magento-lts git pull upstream 1.9.4.x git add -A && git commit
Don't use common paths like /admin for OpenMage Backend URL. Don't use the path in robots.txt and keep it secret. You can change it from Backend (System / Configuration / Admin / Admin Base Url) or by editing app/etc/local.xml:
<config> <admin> <routers> <adminhtml> <args> <frontName><![CDATA[admin]]></frontName> </args> </adminhtml> </routers> </admin> </config>
Don't use common file names like api.php for OpenMage API URLs to prevent attacks. Don't use the new file name in robots.txt and keep it secret with your partners. After renaming the file you must update the webserver configuration as follows:
RewriteRule ^api/rest api.php?type=rest [QSA,L]
rewrite ^/api/(\w+).*$ /api.php?type=$1 last;`
Most important changes will be listed here, all other changes since
19.4.0 can be found in
- bug fixes and PHP 7.x, 8.0 and 8.1 compatibility
- added config cache for system.xml (#1916)
- search for "NULL" in backend grids (#1203)
lib/flexcontaining unused ActionScript "file uploader" files (#2271)
- Mage_Catalog_Model_Resource_Abstract::getAttributeRawValue() now returns
falseif the value stored in the database is
- removed modules:
If you rely on those modules you can reinstall them with composer:
composer require openmage/module-mage-backup
composer require openmage/module-mage-pagecache
- PHP extension
Do not use 20.x.x if you need IE support.
- removed IE conditional comments, IE styles, IE scripts and IE eot files (#1073)
- removed frontend default themes (default, modern, iphone, german, french, blank, blue) (#1600)
- fixed incorrect datetime in customer block (
- added redis as a valid option for
- reduce needless saves by avoiding setting
- removed support for
global/sales/old_fields_mapdefined in XML (#921)
- enabled website level config cache (#2355)
- make overrides of Mage_Core_Model_Resource_Db_Abstract::delete respect parent api (#1257)
For full list of changes, you can compare tags.
Most of the 3rd party libraries/modules that were bundled in our repository were removed and migrated to composer dependencies. This allows for better maintenance and upgradability.
- Zend Framework 1 (#2827)
If your project uses OpenMage through composer then all dependencies will be managed automatically.
If you just extracted the release zip/tarball in your project's main folder then be sure to:
remove the old copy of aforementioned libraries from your project, you can do that with this command:
rm -rf app/code/core/Zend lib/Cm lib/Credis lib/mcryptcompat lib/Pelago lib/phpseclib lib/Zend
download the new release zip file that is named
openmage-VERSIONNUMBER.zip, this one is built to contain the
vendorfolder generated by composer, with all the dependencies in it
extract the zip file in your project's repository as you always did
We also decided to remove our Zend_DB patches (that were stored in
app/code/core/Zend) because they were very old and
not compatible with the new implementations made by ZF1-Future, which is much more advanced and feature rich.
This may generate a problem with `Zend_Db_Select' statements that do not use 'Zend_Db_Expr' to quote expressions.
If you see SQL errors after upgrading please remember to check for this specific issue in your code.
20.0.15 we changed the
targetNamespace of all the WSDL files (used in the API modules), from
If your custom modules extends OpenMage's APIs with a custom WSDL file and there are some hardcoded
targetNamespace="urn:Magento" strings, your APIs may stop working.
Please replace all occurrences of
to avoid any problem.
To find which files need the modification you can run this command from the root directory of your project.
grep -rn 'urn:Magento' --include \*.xml
- Install ddev
- Clone the repository as described in installation (Git)
- Create a ddev config, defaults should be good for you
.ddev/config.yamland change the php version to your needs
- Download and start the containers
- Open your site in browser
Deprecation errors are supressed by default.
If you want to work on PHP 8.1 support, set environment variable
1, to show all errors.
This repo includes class maps for the core Magento files in
To add class maps for installed extensions, you have to install N98-magerun
and run command:
You can add additional meta files in this directory to cover your own project files. See PhpStorm advanced metadata for more information.
Though Magento does not follow Semantic Versioning we aim to provide a workable system for dependency definition.
- Discord (maintained by Flyingmana)
- Daniel Fahlke
- David Robinson
- Fabrizio Balliano
- Lee Saferite
- Mohamed Elidrissi
- Ng Kiat Siong
- Sven Reichel
- Tymoteusz Motylewski
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!