Installing and setting up a Magento 2 extension

From XTENTO Support Wiki
Jump to: navigation, search

This is a guide for Magento 2. For Magento 1 extensions and guides, please refer to Magento 1 Guides.

Disclaimer: We recommend to install ANY extension you purchase/download in a testing environment before deploying it to your production environment. Please also backup your Magento installation (files and database) before installing any extension and make sure no conflicting extensions are installed. All XTENTO extensions were tested in clean Magento installations without third party extensions and we can't guarantee for compatibility with third party extensions.


General Installation Guide

Our Magento 2 extensions can also be installed via composer. See: (Described below is the non-composer method)

The following steps are required to set up a XTENTO extension. Please follow them carefully as if you're missing one of the steps, the installation of the extension could fail which could lead to issues in your Magento installation. If the installation fails, or if you're seeing any error message, please try to re-install the module by starting from the first step again.

Warning for Mac OS users: If you are installing the extension in a local environment by copying the extensions files using Finder into a local directory, make sure to *merge* and not to *replace* the existing folders contents, as otherwise your app folder will be gone. Read more. Use a file manager that merges folders or a FTP client instead.

Installation procedure

  1. Folder structure matching (Magento 1)
    It is recommended to ENABLE the cache at System > Cache Management before installing any extension.
  2. Open the extension ZIP file you downloaded from the 'My Downloads' section on and extract it to a directory on your computer using a tool like WinRar, WinZIP or similar.
  3. Upload the extracted folders and files into the root directory of your Magento installation. The root directory of Magento is the folder that contains the directories "app", "bin", "lib" and more. All folders should match the existing folder structure. If one of our extensions is already installed and you're updating it, make sure to overwrite the existing files of the extension.
  4. Connect via SSH and run the following commands (make sure to run them as the user who owns the Magento files! See output of "ls -la"):
  5. php bin/magento module:enable --clear-static-content Xtento_XtCore
  6. php bin/magento module:enable --clear-static-content Xtento_MODULENAME (replace with what you purchased, see ZIP filename, WITHOUT the version. For example: Xtento_OrderExport)
  7. php bin/magento maintenance:enable ; php bin/magento setup:upgrade ; php bin/magento setup:static-content:deploy ; php bin/magento setup:di:compile ; php bin/magento maintenance:disable
  8. Cache Management (Magento 1)
    Go to System > Cache Management and click both the 'Flush Magento Cache' as well as the 'Flush Cache Storage' button. This is required to activate the extension.

Please follow the extension specific setup steps (if any) now. Otherwise you're done with the installation.

Update Guide

Updating a XTENTO extension is easy: Simply follow the installation guide (see above) and overwrite any existing files. No need to run the module:enable commands, however it is very important you run setup:upgrade (php bin/magento setup:upgrade) after updating any Magento extension. Then, after updating, clear the contents inside the /var/cache/, /var/di/ and /var/generation/ (Magento 2.2+: generated/code) directories (located in the Magento root directory).

Installing a Magento Marketplace extension

If you purchased an extension on Magento Marketplace, there are two ways to install your extension:

1) Easy Method: Use the "Web Setup Wizard" and install via the Magento admin panel. Easy, as it fetches components/dependencies automatically. Just be sure to select the "Install dependencies" option when installing via the Web Setup Wizard.

2) Composer Method: See here.

3) Manual ZIP Method: You can also go the ZIP route. You can download the extension ZIP file from the "My Purchases" section on Be sure to download the "Xtento_XtCore" package as well, it's located in the "Packages" tab at "My Purchases" (Screenshot where to find the Xtento_XtCore package Important, as of October 2017 there's a bug on Marketplace that won't let you download the XtCore module. Click here to download it. (This only applies if you purchased the module on Marketplace and do a manual ZIP installation)).

First, upload the contents of the XtCore package. Then, create another folder called app/code/Xtento/MODULENAME/ where MODULENAME must be replaced by the modules internal identifier. You can find it in the "composer.json" file in the extension ZIP file you downloaded, look at the node "psr-4". For example, it could say "Xtento\\ProductExport\\" or "Xtento\\GridActions\\" there, then the MODULENAME is the part after \\ and before \\, so in our examples ProductExport" or "GridActions". This is what you call the folder, then, for example app/code/Xtento/ProductExport, and you put the contents of the extension ZIP file in there.

Then, install the extensions as stated above in our normal install guide: First install and enable Xtento_XtCore, then the extension you purchased.

Any questions, please do not hesitate to contact us.

Troubleshooting: Problems after installation

ini_set('display_errors', 1);
ini_set('error_reporting', E_ALL);

Still got problems? A fatal error you can't solve yourself? Please get in touch with us.

Error "Notice: Undefined index: id in Iterator.php"

If you get the following error message: Notice: Undefined index: id in [...]/Model/Config/Structure/Element/Iterator.php on line 59

This means you forgot to install the "Xtento_XtCore" module. Install this base module first, and make sure it is enabled. It is included with the ZIP file. If you purchased the extension on Magento Marketplace, and installed the extension via Component Manager, you forgot to select "Install dependencies" when installing the extension.

Missing design / CSS in admin after setup:upgrade

This is usually due to wrong file permissions. You can deploy the static view files of Magento as described here:

PHP Memory Limit

For Magento to properly work, the PHP memory_limit should be set to at least 256M (or even better 512M) as required by Magento: Magento System Requirements

You can check the set PHP memory_limit in phpinfo() or at System > Section: "XTENTO Extensions" > General Configuration > Tab "Debug Information".

If you get an error saying: "Fatal error: Allowed memory size of 123456789 bytes exhausted (tried to allocate xy bytes)" your PHP memory_limit must be increased.

If you get an error saying: "Fatal error: Out of memory (allocated 1234567) (tried to allocate 123456 bytes)" this is a different problem not caused by the PHP memory_limit. The following system memory limits may need to be increased:

Uncaught TypeError: Argument 1 ... instance of Magento\Framework\ObjectManager\ObjectManager given

If you get this error with any of our extensions, please empty the var/di (Magento 2.2+: generated/metadata), var/cache and var/generation (Magento 2.2+: generated/code) folders of Magento.

Autoload error: Module 'Xtento_XtCore' from '/some/path/app/code/Xtento/XtCore' has been already defined

That's because you installed Xtento_XtCore twice, once via composer, once via uploading it directly into app/code/Xtento. Remove the app/code/Xtento/XtCore folder.

[ReflectionException] Class Xtento\XtCore\... does not exist

This means you forgot to install the Xtento_XtCore module. You probably did not upload the files of the XtCore extension. If you cannot find the XtCore extension and you purchased this extension on Magento Marketplace, please contact us so we can provide a copy of the XtCore module.

Composer update: Invalid credentials for ‘’, aborting

If you're trying to run composer update or install and are getting the following error about the XTENTO repository (

Invalid credentials for ‘’, aborting

You either entered the wrong credentials (you can get them at "Composer Keys" at My Downloads on or something else went wrong.

To fix this, open the "auth.json" file (located either in the Magento root directory or the composer home directory) and update it like this (the bold part must be added, including the comma!):

"http-basic": {
"": {
"username": "<your public key>",
"password": "<your private key>"
"": {
"username": "<your public key>",
"password": "<your private key>"


Web Setup Wizard: Command "show" failed

If you get the following error in the Magento "Extension Manager" after installing one of our extensions via composer:

Command "show" failed: [Composer\Downloader\TransportException] The '' URL required authentication. You must be using the interactive console to authenticate show [--all] [-i|--installed] [-p|--platform] [-a|--available] [-s|--self] [-N|--name-only] [-P|--path] [-t|--tree] [-l|--latest] [-o|--outdated] [-m|--minor-only] [-D|--direct] [--strict] [-f|--format FORMAT] [--] [<package>] [<version>]

You will need to do the following:
1) Make sure auth.json (see above - Composer update: Invalid credentials for... article) is set up properly, including XTENTO authentication keys
2) Make sure auth.json has appropriate file permissions so the Magento webserver can read the file
3) If nothing helps, copy auth.json into the Magento root directory

Personal tools
General Information
Magento 2 Guides
Magento 2 Extensions
Magento 1 Guides
Magento 1 Extensions
Magento Integration Suite
Product Feed Guides