Magento ver. 2.4.5-p1 Smartwave Porto theme I am trying to install the 'Multiple Shipping Flat Rates' extension from Mageplaza as per a recommendation here:
Easiest way to add a second flat rate shipping method on Magento 2?
I've gone through steps ordering it and downloaded the version for Magento Community 2.4.x so I think I should be able to upload it via FTP and follow installation instructions.
I have already and will, however, install additional extensions from Amasty via composer. If that is the case, should I just try to install everything via composer rather than installing some extensions via FTP upload?
The reason I am asking is - I tried to install this extension via composer as per instructions here:
https://packagist.org/packages/mageplaza/module-multi-flat-rates by running the following command:
composer require mageplaza/module-multi-flat-rates But it WAS gives me this Error:
Parse error: syntax error, unexpected 'RewriterInterface' (T_STRING), expecting function (T_FUNCTION) or const (T_CONST) in /home/mymagentosite/public_html/vendor/laminas/laminas-dependency-plugin/src/DependencyRewriterPluginDelegator.php on line 27 I then thought maybe I first need to install the repositories (or whatever it's called), so I tried to run this command:
composer config repositories.mageplaza composer https://repo.mageplaza.com as per the instructions on this page here:
https://www.mageplaza.com/kb/how-to-install-magento-extension-via-composer.html but I WAS getting the same Error:
Parse error: syntax error, unexpected 'RewriterInterface' (T_STRING), expecting function (T_FUNCTION) or const (T_CONST) in /home/mymagentosite/public_html/vendor/laminas/laminas-dependency-plugin/src/DependencyRewriterPluginDelegator.php on line 27 Do I need to keep everything installed via composer or can I install some extensions via composer and others through an FTP upload?
The extension is here:
https://www.mageplaza.com/magento-2-multi-flat-rates-shipping/
UPDATED on April 26th:
I am no longer getting the Error above, but instead, I get the Errors below...
Regardless of what I'm trying to install, I always get the same 3 problems.
For example - trying to install the Stripe Magento extension, I try to run the following command:
composer require stripe/stripe-payments As per this page here:
https://stripe.com/docs/connectors/adobe-commerce/install?locale=en-GB
And it gives these Errors:
The "laminas/laminas-dependency-plugin" plugin was skipped because it requires a Plugin API version (">=1.1.0 <2.3.0") that does not match your Composer installation ("2.3.0"). You may need to run composer update with the "--no-plugins" option. Info from https://repo.packagist.org: #StandWithUkraine ./composer.json has been updated The "laminas/laminas-dependency-plugin" plugin was skipped because it requires a Plugin API version (">=1.1.0 <2.3.0") that does not match your Composer installation ("2.3.0"). You may need to run composer update with the "--no-plugins" option. Running composer update stripe/stripe-payments Loading composer repositories with package information Updating dependencies Your requirements could not be resolved to an installable set of packages.
Problem 1 - magento/product-community-edition is locked to version 2.4.5-p1 and an update of this package was not requested. - magento/product-community-edition 2.4.5-p1 requires php ~7.4.0||~8.1.0 -> your php version (7.3.33) does not satisfy that requirement. Problem 2 - magento/magento-coding-standard is locked to version 27 and an update of this package was not requested. - magento/magento-coding-standard 27 requires php ^8.1||^8.2 -> your php version (7.3.33) does not satisfy that requirement. Problem 3 - magento/framework 103.0.5-p1 requires php ~7.4.0||~8.1.0 -> your php version (7.3.33) does not satisfy that requirement. - amasty/module-delivery-date-manager 1.0.7 requires magento/framework >=102.0.0 -> satisfiable by magento/framework[103.0.5-p1]. - amasty/module-delivery-date-manager is locked to version 1.0.7 and an update of this package was not requested. You can also try re-running composer require with an explicit version constraint, e.g. "composer require stripe/stripe-payments:*" to figure out if any version is installable, or "composer require stripe/stripe-payments:^2.1" if you know which you need.
Installation failed, reverting ./composer.json and ./composer.lock to their original content.
When I try to install the mutli-flat shipping extension (mentioned above):
composer require mageplaza/module-multi-flat-rates I get the same 3 problems come up.
What am I doing wrong and how to fix it?
My hosting already updated my composer to the newest version = 2.5.5 (stable channel).
Here is composer.json:
{ "name": "magento/project-community-edition", "description": "eCommerce Platform for Growth (Community Edition)", "type": "project", "license": [ "OSL-3.0", "AFL-3.0" ], "config": { "allow-plugins": { "dealerdirect/phpcodesniffer-composer-installer": true, "laminas/laminas-dependency-plugin": true, "magento/*": true }, "preferred-install": "dist", "sort-packages": true }, "version": "2.4.5", "require": { "amasty/module-delivery-date-manager": "^1.0", "magento/composer-dependency-version-audit-plugin": "~0.1", "magento/composer-root-update-plugin": "~2.0", "magento/product-community-edition": "2.4.5-p1" }, "autoload": { "exclude-from-classmap": [ "**/dev/**", "**/update/**", "**/Test/**" ], "files": [ "app/etc/NonComposerComponentRegistration.php" ], "psr-0": { "": [ "app/code/", "generated/code/" ] }, "psr-4": { "Magento\\": "app/code/Magento/", "Magento\\Framework\\": "lib/internal/Magento/Framework/", "Magento\\Setup\\": "setup/src/Magento/Setup/" } }, "require-dev": { "allure-framework/allure-phpunit": "~1.5.0", "dealerdirect/phpcodesniffer-composer-installer": "^0.7.2", "friendsofphp/php-cs-fixer": "~3.4.0", "lusitanian/oauth": "~0.8.10", "magento/magento-coding-standard": "*", "magento/magento2-functional-testing-framework": "^3.7", "pdepend/pdepend": "~2.10.0", "phpmd/phpmd": "^2.12.0", "phpstan/phpstan": "^1.6.8", "phpunit/phpunit": "~9.5.20", "sebastian/phpcpd": "^6.0.3", "squizlabs/php_codesniffer": "~3.6.0", "symfony/finder": "^5.2" }, "conflict": { "gene/bluefoot": "*" }, "autoload-dev": { "psr-4": { "Magento\\PhpStan\\": "dev/tests/static/framework/Magento/PhpStan/", "Magento\\Sniffs\\": "dev/tests/static/framework/Magento/Sniffs/", "Magento\\TestFramework\\Inspection\\": "dev/tests/static/framework/Magento/TestFramework/Inspection/", "Magento\\TestFramework\\Utility\\": "dev/tests/static/framework/Magento/TestFramework/Utility/", "Magento\\Tools\\": "dev/tools/Magento/Tools/", "Magento\\Tools\\Sanity\\": "dev/build/publication/sanity/Magento/Tools/Sanity/" } }, "minimum-stability": "stable", "prefer-stable": true, "repositories": { "amasty": { "type": "composer", "url": "https://composer.amasty.com/community/" }, "0": { "type": "composer", "url": "https://repo.magento.com/" } }, "extra": { "magento-force": "override" } } The composer.lock has 25676 rows so I posted it to Codeshare:
I am now trying to go through the steps as outlined by Raul Sanchez:
- I deleted the composer.lock file in Magento root.
- I tried installing composer by putting in the following command into Putty on Magento root:
composer install
It gave these Errors:
The "laminas/laminas-dependency-plugin" plugin was skipped because it requires a Plugin API version (">=1.1.0 <2.3.0") that does not match your Composer install ation ("2.3.0"). You may need to run composer update with the "--no-plugins" opt ion. No composer.lock file present. Updating dependencies to latest instead of instal ling from lock file. See https://getcomposer.org/install for more information. Loading composer repositories with package information Info from https://repo.packagist.org: #StandWithUkraine Updating dependencies Your requirements could not be resolved to an installable set of packages.
Problem 1 - Root composer.json requires magento/product-community-edition 2.4.5-p1 -> satisfiable by magento/product-community-edition[2.4.5-p1]. - magento/product-community-edition 2.4.5-p1 requires php ~7.4.0||~8.1.0 -> your php version (7.3.33) does not satisfy that requirement. Problem 2 - composer/composer[1.6.0, ..., 1.9.3] require symfony/finder ^2.7 || ^3.0 || ^4.0 -> found symfony/finder[v2.7.0, ..., v2.8.52, v3.0.0, ..., v3.4.47, v4.0.0, ..., v4.4.44] but it conflicts with your root composer.json require (^5.2). - magento/framework[103.0.4, ..., 103.0.5-p2] require php ~7.4.0||~8.1.0 -> your php version (7.3.33) does not satisfy that requirement. - magento/framework 103.0.6 requires php ~8.1.0||~8.2.0 -> your php version (7.3.33) does not satisfy that requirement. - magento/framework[102.0.0, ..., 102.0.2-p2] require php ~7.1.3||~7.2.0 -> your php version (7.3.33) does not satisfy that requirement. - Root composer.json requires friendsofphp/php-cs-fixer ~3.4.0 -> satisfiable by friendsofphp/php-cs-fixer[v3.4.0]. - Conclusion: don't install amasty/module-delivery-date-manager 1.0.8 (conflict analysis result) - magento/framework[102.0.5, ..., 102.0.6-p1, 103.0.0, ..., 103.0.1-p1] require composer/composer ^1.9 -> satisfiable by composer/composer[1.9.0, ..., 1.10.26]. - magento/framework[102.0.3, ..., 102.0.4-p2] require composer/composer ^1.6 -> satisfiable by composer/composer[1.6.0, ..., 1.10.26]. - composer/composer[1.10.0, ..., 1.10.26] require composer/semver ^1.0 -> satisfiable by composer/semver[1.0.0, ..., 1.7.2]. - You can only install one version of a package, so only one of these can be installed: composer/semver[1.0.0, ..., 1.7.2, 3.0.0, ..., 3.3.2]. - friendsofphp/php-cs-fixer v3.4.0 requires composer/semver ^3.2 -> satisfiable by composer/semver[3.2.0, ..., 3.3.2]. - Root composer.json requires magento/magento2-functional-testing-framework ^3.7 -> satisfiable by magento/magento2-functional-testing-framework[3.7.0, ..., 3.12.0]. - amasty/module-delivery-date-manager[1.0.0, ..., 1.0.8] require magento/framework >=102.0.0 -> satisfiable by magento/framework[102.0.0, ..., 102.0.7-p3, 103.0.0, ..., 103.0.6]. - magento/framework[102.0.7, ..., 102.0.7-p3, 103.0.2, ..., 103.0.3-p3] require monolog/monolog ^1.17 -> satisfiable by monolog/monolog[1.17.0, ..., 1.27.1]. - Conclusion: don't install monolog/monolog 1.27.1 (conflict analysis result) - Root composer.json requires amasty/module-delivery-date-manager ^1.0 -> satisfiable by amasty/module-delivery-date-manager[1.0.0, ..., 1.0.8]. When I run this:
composer -v
It shows this:
Composer version 2.5.5 2023-03-21 11:50:05
Usage: command [options] [arguments] Options: -h, --help Display help for the given command. When no command is given display help for the list command -q, --quiet Do not output any message -V, --version Display this application version --ansi|--no-ansi Force (or disable --no-ansi) ANSI output -n, --no-interaction Do not ask any interactive question --profile Display timing and memory usage information --no-plugins Whether to disable plugins. --no-scripts Skips the execution of all scripts defined in composer.json file. -d, --working-dir=WORKING-DIR If specified, use the given directory as working directory. --no-cache Prevent use of the cache -v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug Available commands: about Shows a short information about Composer archive Creates an archive of this composer package audit Checks for security vulnerability advisories for installed packages browse [home] Opens the package's repository URL or homepage in your browser bump Increases the lower limit of your composer.json requirements to the currently installed versions check-platform-reqs Check that platform requirements are satisfied clear-cache [clearcache|cc] Clears composer's internal package cache completion Dump the shell completion script config Sets config options create-project Creates new project from a package into given directory depends [why] Shows which packages cause the given package to be installed diagnose Diagnoses the system to identify common errors dump-autoload [dumpautoload] Dumps the autoloader exec Executes a vendored binary/script fund Discover how to help fund the maintenance of your dependencies global Allows running commands in the global composer dir ($COMPOSER_HOME) help Display help for a command init Creates a basic composer.json file in current directory install [i] Installs the project dependencies from the composer.lock file if present, or falls back on the composer.json licenses Shows information about licenses of dependencies list List commands outdated Shows a list of installed packages that have updates available, including their latest version prohibits [why-not] Shows which packages prevent the given package from being installed reinstall Uninstalls and reinstalls the given package names remove Removes a package from the require or require-dev require [r] Adds required packages to your composer.json and installs them For magento/product-community-edition, magento/product-enterprise-edition, or magento/magento-cloud-metapackage updates, use require-commerce. require-commerce [r] Adds required packages to your composer.json and installs them If a magento/product-community-edition, magento/product-enterprise-edition, or magento/magento-cloud-metapackage change is required, also makes any associated composer.json changes. run-script [run] Runs the scripts defined in composer.json search Searches for packages self-update [selfupdate] Updates composer.phar to the latest version show [info] Shows information about packages status Shows a list of locally modified packages suggests Shows package suggestions update [u|upgrade] Updates your dependencies to the latest version according to composer.json, and updates the composer.lock file validate Validates a composer.json and composer.lock When I try to run:
composer require mageplaza/module-multi-flat-rates
It gives these Errors:
Problem 1 - Root composer.json requires magento/product-community-edition 2.4.5-p1 -> satisfiable by magento/product-community-edition[2.4.5-p1]. - magento/product-community-edition 2.4.5-p1 requires php ~7.4.0||~8.1.0 -> your php version (7.3.33) does not satisfy that requirement. Problem 2 - composer/composer[1.6.0, ..., 1.9.3] require symfony/finder ^2.7 || ^3.0 || ^4.0 -> found symfony/finder[v2.7.0, ..., v2.8.52, v3.0.0, ..., v3.4.47, v4.0.0, ..., v4.4.44] but it conflicts with your root composer.json require (^5.2). - magento/framework[103.0.4, ..., 103.0.5-p2] require php ~7.4.0||~8.1.0 -> your php version (7.3.33) does not satisfy that requirement. - magento/framework 103.0.6 requires php ~8.1.0||~8.2.0 -> your php version (7.3.33) does not satisfy that requirement. - magento/framework[102.0.0, ..., 102.0.2-p2] require php ~7.1.3||~7.2.0 -> your php version (7.3.33) does not satisfy that requirement. - Root composer.json requires friendsofphp/php-cs-fixer ~3.4.0 -> satisfiable by friendsofphp/php-cs-fixer[v3.4.0]. - Conclusion: don't install amasty/module-delivery-date-manager 1.0.8 (conflict analysis result) - magento/framework[102.0.5, ..., 102.0.6-p1, 103.0.0, ..., 103.0.1-p1] require composer/composer ^1.9 -> satisfiable by composer/composer[1.9.0, ..., 1.10.26]. - magento/framework[102.0.3, ..., 102.0.4-p2] require composer/composer ^1.6 -> satisfiable by composer/composer[1.6.0, ..., 1.10.26]. - composer/composer[1.10.0, ..., 1.10.26] require composer/semver ^1.0 -> satisfiable by composer/semver[1.0.0, ..., 1.7.2]. - You can only install one version of a package, so only one of these can be installed: composer/semver[1.0.0, ..., 1.7.2, 3.0.0, ..., 3.3.2]. - friendsofphp/php-cs-fixer v3.4.0 requires composer/semver ^3.2 -> satisfiable by composer/semver[3.2.0, ..., 3.3.2]. - Root composer.json requires magento/magento2-functional-testing-framework ^3.7 -> satisfiable by magento/magento2-functional-testing-framework[3.7.0, ..., 3.12.0]. - amasty/module-delivery-date-manager[1.0.0, ..., 1.0.8] require magento/framework >=102.0.0 -> satisfiable by magento/framework[102.0.0, ..., 102.0.7-p3, 103.0.0, ..., 103.0.6]. - magento/framework[102.0.7, ..., 102.0.7-p3, 103.0.2, ..., 103.0.3-p3] require monolog/monolog ^1.17 -> satisfiable by monolog/monolog[1.17.0, ..., 1.27.1]. - Conclusion: don't install monolog/monolog 1.27.1 (conflict analysis result) - Root composer.json requires amasty/module-delivery-date-manager ^1.0 -> satisfiable by amasty/module-delivery-date-manager[1.0.0, ..., 1.0.8]. You can also try re-running composer require with an explicit version constraint, e.g. "composer require mageplaza/module-multi-flat-rates:*" to figure out if any version is installable, or "composer require mageplaza/module-multi-flat-rates:^2.1" if you know which you need. Installation failed, reverting ./composer.json to its original content.
I guess I need to do #3. but I am not sure which exact lines to remove from my composer.json? Should I remove all of the following?
], "config": { "allow-plugins": { "dealerdirect/phpcodesniffer-composer-installer": true, "laminas/laminas-dependency-plugin": true, "magento/*": true }, Also - there is no composer.lock file in Magento root anymore (it didn't recreated itself) - is that a problem?
UPDATE:
I installed PHP 8.1 now and ran the following:
composer install --no-cache It shows the following:
The "laminas/laminas-dependency-plugin" plugin was skipped because it requires a Plugin API version (">=1.1.0 <2.3.0") that does not match your Composer installation ("2.3.0"). You may need to run composer update with the "--no-plugins" option. No composer.lock file present. Updating dependencies to latest instead of installing from lock file. See https://getcomposer.org/install for more information. Loading composer repositories with package information Info from https://repo.packagist.org: #StandWithUkraine Updating dependencies Your requirements could not be resolved to an installable set of packages. Problem 1 - php-amqplib/php-amqplib v3.2.0 requires ext-sockets * -> it is missing from your system. Install or enable PHP's sockets extension. - magento/product-community-edition 2.4.5-p1 requires php-amqplib/php-amqplib ~3.2.0 -> satisfiable by php-amqplib/php-amqplib[v3.2.0]. - Root composer.json requires magento/product-community-edition 2.4.5-p1 -> satisfiable by magento/product-community-edition[2.4.5-p1]. To enable extensions, verify that they are enabled in your .ini files: - /opt/cpanel/ea-php81/root/etc/php.ini - /opt/cpanel/ea-php81/root/etc/php.d/20-bcmath.ini - /opt/cpanel/ea-php81/root/etc/php.d/20-bz2.ini - /opt/cpanel/ea-php81/root/etc/php.d/20-calendar.ini - /opt/cpanel/ea-php81/root/etc/php.d/20-ctype.ini - /opt/cpanel/ea-php81/root/etc/php.d/20-curl.ini - /opt/cpanel/ea-php81/root/etc/php.d/20-dba.ini - /opt/cpanel/ea-php81/root/etc/php.d/20-dom.ini - /opt/cpanel/ea-php81/root/etc/php.d/20-enchant.ini - /opt/cpanel/ea-php81/root/etc/php.d/20-exif.ini - /opt/cpanel/ea-php81/root/etc/php.d/20-fileinfo.ini - /opt/cpanel/ea-php81/root/etc/php.d/20-ftp.ini - /opt/cpanel/ea-php81/root/etc/php.d/20-gd.ini - /opt/cpanel/ea-php81/root/etc/php.d/20-gettext.ini - /opt/cpanel/ea-php81/root/etc/php.d/20-gmp.ini - /opt/cpanel/ea-php81/root/etc/php.d/20-iconv.ini - /opt/cpanel/ea-php81/root/etc/php.d/20-intl.ini - /opt/cpanel/ea-php81/root/etc/php.d/20-mbstring.ini - /opt/cpanel/ea-php81/root/etc/php.d/20-mysqlnd.ini - /opt/cpanel/ea-php81/root/etc/php.d/20-pdo.ini - /opt/cpanel/ea-php81/root/etc/php.d/20-phar.ini - /opt/cpanel/ea-php81/root/etc/php.d/20-posix.ini - /opt/cpanel/ea-php81/root/etc/php.d/20-pspell.ini - /opt/cpanel/ea-php81/root/etc/php.d/20-simplexml.ini - /opt/cpanel/ea-php81/root/etc/php.d/20-soap.ini - /opt/cpanel/ea-php81/root/etc/php.d/20-sodium.ini - /opt/cpanel/ea-php81/root/etc/php.d/20-sqlite3.ini - /opt/cpanel/ea-php81/root/etc/php.d/20-tidy.ini - /opt/cpanel/ea-php81/root/etc/php.d/20-tokenizer.ini - /opt/cpanel/ea-php81/root/etc/php.d/20-xml.ini - /opt/cpanel/ea-php81/root/etc/php.d/20-xmlwriter.ini - /opt/cpanel/ea-php81/root/etc/php.d/20-xsl.ini - /opt/cpanel/ea-php81/root/etc/php.d/20-zip.ini - /opt/cpanel/ea-php81/root/etc/php.d/30-mysqli.ini - /opt/cpanel/ea-php81/root/etc/php.d/30-pdo_mysql.ini - /opt/cpanel/ea-php81/root/etc/php.d/30-pdo_sqlite.ini - /opt/cpanel/ea-php81/root/etc/php.d/30-xmlreader.ini - /opt/cpanel/ea-php81/root/etc/php.d/zzzzzzz-pecl.ini You can also run `php --ini` in a terminal to see which files are used by PHP in CLI mode. Alternatively, you can run Composer with `--ignore-platform-req=ext-sockets` to temporarily ignore these required extensions. FINAL UPDATE: Deleting composer.lock & running composer install fixed the problem. Thank you all for your help!