0

I have been having trouble completing tutorial on creating integration from the config.

I believe I followed all the steps correctly. Please help me find the reason why the integration won't appear as expected.

Project structure

Placed in vendor directory of Magento root directory.

somevendor
└── module-somemodule
    ├── Setup
    │   └── InstallData.php
    ├── composer.json
    ├── etc
    │   ├── integration
    │   │   ├── api.xml
    │   │   └── config.xml
    │   └── module.xml
    └── registration.php

I decided to name my example vendor as Somevendor and module as Somemodule just for testing purposes.

File contents

composer.json

{
     "name": "Somevendor_Somemodule",
     "description": "create integration from config",
     "require": {
            "php": "~5.5.0|~5.6.0|~7.0.0",
            "magento/framework": "2.0.0",
            "magento/module-integration": "2.0.0"
     },
     "type": "magento2-module",
     "version": "1.0",
     "autoload": {
            "files": [ "registration.php" ],
            "psr-4": {
                 "Somevendor\\Somemodule\\": ""
            }
     }
}

registration.php

<?php
    \Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::MODULE,
    'Somevendor_Somemodule',
    __DIR__
    );

etc/module.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
    <module name="Somevendor_Somemodule" setup_version="2.0.0">
        <sequence>
            <module name="Magento_Integration"/>
        </sequence>
    </module>
</config>

etc/integration/api.xml

<integrations>
    <integration name="testIntegration">
        <resources>
            <!-- To grant permission to Magento_Log::online, its parent Magento_Customer::customer needs to be declared as well-->
            <resource name="Magento_Customer::customer" />
            <resource name="Magento_Log::online" />
            <!-- To grant permission to Magento_Sales::reorder, all its parent resources need to be declared-->
            <resource name="Magento_Sales::sales" />
            <resource name="Magento_Sales::sales_operation" />
            <resource name="Magento_Sales::sales_order" />
            <resource name="Magento_Sales::actions" />
            <resource name="Magento_Sales::reorder" />
        </resources>
    </integration>
</integrations>

etc/integration/config.xml

<integrations>
   <integration name="TestIntegration">
       <email>someone@example.com</email>
       <endpoint_url>http://example.com</endpoint_url>
       <identity_link_url>http://example.com/identity</identity_link_url>
   </integration>
</integrations>

Setup/InstallData.php

<?php
namespace Somevendor\Somemodule\Setup;

use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\Setup\ModuleDataSetupInterface;
use Magento\Integration\Model\ConfigBasedIntegrationManager;
use Magento\Framework\Setup\InstallDataInterface;

class InstallData implements InstallDataInterface
{
        /**
         * @var ConfigBasedIntegrationManager
         */


        private $integrationManager;

        /**
         * @param ConfigBasedIntegrationManager $integrationManager
         */

        public function __construct(ConfigBasedIntegrationManager $integrationManager)
        {
                $this->integrationManager = $integrationManager;
        }

        /**
         * {@inheritdoc}
         */

        public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
        {
                $this->integrationManager->processIntegrationConfig(['testIntegration']);
        }
}

Local setup

phpinfo()

I couldn't put entire config as post length is limited to 30000 characters but I will put specific information if requested.

PHP Version => 5.5.30

System => Darwin rutherfordium.local 15.2.0 Darwin Kernel Version 15.2.0: Fri Nov 13 19:56:56 PST 2015; root:xnu-3248.20.55~2/RELEASE_X86_64 x86_64
Build Date => Dec  4 2015 19:25:34
Configure Command =>  './configure'  '--prefix=/Applications/XAMPP/xamppfiles' '--with-apxs2=/Applications/XAMPP/xamppfiles/bin/apxs' '--with-config-file-path=/Applications/XAMPP/xamppfiles/etc' '--with-mysql=mysqlnd' '--enable-inline-optimization' '--disable-debug' '--enable-bcmath' '--enable-calendar' '--enable-ctype' '--enable-ftp' '--enable-gd-native-ttf' '--enable-magic-quotes' '--enable-shmop' '--disable-sigchild' '--enable-sysvsem' '--enable-sysvshm' '--enable-wddx' '--with-gdbm=/Applications/XAMPP/xamppfiles' '--with-jpeg-dir=/Applications/XAMPP/xamppfiles' '--with-png-dir=/Applications/XAMPP/xamppfiles' '--with-freetype-dir=/Applications/XAMPP/xamppfiles' '--with-zlib=yes' '--with-zlib-dir=/Applications/XAMPP/xamppfiles' '--with-openssl=/Applications/XAMPP/xamppfiles' '--with-xsl=/Applications/XAMPP/xamppfiles' '--with-ldap=/Applications/XAMPP/xamppfiles' '--with-gd' '--with-imap=/bitnami/xamppunixinstallerstack-osx-x64/src/imap-2007e' '--with-imap-ssl' '--with-gettext=/Applications/XAMPP/xamppfiles' '--with-mssql=shared,/Applications/XAMPP/xamppfiles' '--with-pdo-dblib=shared,/Applications/XAMPP/xamppfiles' '--with-sybase-ct=/Applications/XAMPP/xamppfiles' '--with-mysql-sock=/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock' '--with-oci8=shared,instantclient,/Applications/XAMPP/xamppfiles/lib/instantclient' '--with-mcrypt=/Applications/XAMPP/xamppfiles' '--with-mhash=/Applications/XAMPP/xamppfiles' '--enable-sockets' '--enable-mbstring=all' '--with-curl=/Applications/XAMPP/xamppfiles' '--enable-mbregex' '--enable-zend-multibyte' '--enable-exif' '--with-bz2=/Applications/XAMPP/xamppfiles' '--with-sqlite=shared,/Applications/XAMPP/xamppfiles' '--with-sqlite3=/Applications/XAMPP/xamppfiles' '--with-libxml-dir=/Applications/XAMPP/xamppfiles' '--enable-soap' '--with-xmlrpc' '--enable-pcntl' '--with-mysqli=mysqlnd' '--with-pgsql=shared,/Applications/XAMPP/xamppfiles/' '--with-iconv=/Applications/XAMPP/xamppfiles' '--with-pdo-mysql=mysqlnd' '--with-pdo-pgsql=/Applications/XAMPP/xamppfiles/postgresql' '--with-pdo-sqlite' '--with-icu-dir=/Applications/XAMPP/xamppfiles' '--enable-fileinfo' '--enable-phar' '--enable-zip'
Server API => Command Line Interface
Virtual Directory Support => disabled
Configuration File (php.ini) Path => /Applications/XAMPP/xamppfiles/etc
Loaded Configuration File => /Applications/XAMPP/xamppfiles/etc/php.ini
Scan this dir for additional .ini files => (none)
Additional .ini files parsed => (none)
PHP API => 20121113
PHP Extension => 20121212
Zend Extension => 220121212
Zend Extension Build => API220121212,NTS
PHP Extension Build => API20121212,NTS
Debug Build => no
Thread Safety => disabled
Zend Signal Handling => disabled
Zend Memory Manager => enabled
Zend Multibyte Support => provided by mbstring
IPv6 Support => enabled
DTrace Support => disabled

Registered PHP Streams => https, ftps, compress.zlib, compress.bzip2, php, file, glob, data, http, ftp, phar, zip
Registered Stream Socket Transports => tcp, udp, unix, udg, ssl, sslv3, sslv2, tls
Registered Stream Filters => zlib.*, bzip2.*, convert.iconv.*, mcrypt.*, mdecrypt.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk

This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies


 _______________________________________________________________________


Configuration

bcmath

BCMath support => enabled

Directive => Local Value => Master Value
bcmath.scale => 0 => 0

bz2

BZip2 Support => Enabled
Stream Wrapper support => compress.bzip2://
Stream Filter support => bzip2.decompress, bzip2.compress
BZip2 Version => 1.0.6, 6-Sept-2010

calendar

Calendar support => enabled

Core

PHP Version => 5.5.30

Directive => Local Value => Master Value
allow_url_fopen => On => On
allow_url_include => Off => Off
always_populate_raw_post_data => Off => Off
arg_separator.input => & => &
arg_separator.output => & => &
asp_tags => Off => Off
auto_append_file => no value => no value
auto_globals_jit => On => On
auto_prepend_file => no value => no value
browscap => no value => no value
default_charset => no value => no value
default_mimetype => text/html => text/html
disable_classes => no value => no value
disable_functions => no value => no value
display_errors => STDOUT => STDOUT
display_startup_errors => On => On
doc_root => no value => no value
docref_ext => no value => no value
docref_root => no value => no value
enable_dl => Off => Off
enable_post_data_reading => On => On
error_append_string => no value => no value
...

Magento version

2.0.4

Building

Clean-up the build

rm -rf var/di  

Or

rm -rf var/cache/* var/di/* var/generation/* var/page_cache/*   

Launch the upgrade

/Applications/XAMPP/bin/php bin/magento setup:upgrade  

Build

/Applications/XAMPP/bin/php bin/magento setup:di:compile  

Note that I am using /Applications/XAMPP/bin/php instead of simply php because I want to be sure this is same runtime as locally running server.

I completed several other examples, for custom API endpoint and observers, those worked fine with same approach and debug logging, only integration causes trouble.

Obtained results

Integration does not appear in the admin panel as tutorial suggests it should.

Attempts to explain

I failed to put logger in the InstallData.php script as I tried to determine if it is being launched or not. The reason why it didn't work is actually a subject for opening a separate issue.

Maybe someone could advise if there is a better way to test that, it would be a good start.

4
  • Once you check app/etc/config.php then you can go to setup_module table and check whether your module data_version is listed or not. – Krishna ijjada Jun 2 '16 at 5:28
  • Thanks for the feedback, in app/etc/config.php I don't even have setup_module, there only is an array of modules and it doesn't even figure on that list. – Marek Jun 2 '16 at 6:37
  • check your module name in ` config.php ( Somevendor_Somemodule )` , if it it is there the next step is go to your mysql Database and table name setup_module , in that table search for your module and version number – Krishna ijjada Jun 2 '16 at 7:13
  • Thanks @krishnaijjada it also was helpful as it helped to realised the module was in fact not installed. Important remark is that without removing the db record you mentioned, the Setup/InstallData.php will NOT be launched after eventual update. – Marek Jun 2 '16 at 9:53
0

Resolved, this GitHub issue helped:

https://github.com/magento/magento2/issues/4023

Another remark: suggested directory vendor does not trigger the install, I had to put it in app/code directory.

1
  • can you share your code please I am having the same problem and couldn't fix it anyhow. – Anar Bayramov Sep 4 '16 at 18:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.