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.

Contents

General Installation Guide

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 www.xtento.com 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:
  5. php bin/magento module:enable Xtento_XtCore
  6. php bin/magento module:enable Xtento_MODULENAME (replace with what you purchased, see ZIP filename, WITHOUT the version. For example: Xtento_OrderExport)
  7. php bin/magento setup:upgrade
  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.

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) Manual ZIP Method: You can also go the ZIP route. You can download the extension ZIP file from the "My Purchases" section on marketplace.magento.com. 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).

First, create a folder called app/code/Xtento/XtCore/ and put the contents of the "xtento-xtcore-1.2.3.zip" file you download in there.

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

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: http://devdocs.magento.com/guides/v2.1/config-guide/cli/config-cli-subcommands-static-view.html

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, var/cache and var/generation folders of Magento.

Personal tools
Namespaces
Variants
Actions
General Information
Magento 1 Guides
Magento 1 Extensions
Magento 2 Guides
Magento 2 Extensions
Magento Integration Suite
Toolbox