emico / magento-2-robinhq

emico/magento-2-robinhq

Magento 2 module for RobinHQ integration. Provides API endpoints for RobinHQ dynamic API

magento2-module Compatibility: 2.4.7-2.4.8 Code Quality: Fail Tests: N/A Security: Pass OSL-3.0

Are you the maintainer of emico?

Packagento pulls emico's Composer packages from the public registry so buyers can find them here.

Claim the namespace to take ownership, publish new releases directly, and start charging for premium versions.

Claim this namespace →

Magento 2 RobinHQ module

Build Status

Provides API integrations with the RobinHQ platform / dashboards

Installation

Prerequisites

  • Magento 2.4.4 or higher
  • PHP 8.0 or higher

Install package using composer

composer require emico/magento-2-robinhq

Run installers

php bin/magento setup:upgrade

Dynamic API

This module provides 5 endpoints for the RobinHQ dynamic API integration.
This endpoints are called directly from within the RobinHQ dashboard, providing the latest up to date information from Magento.

The following endpoints are available:

  • /robinhq/api/customer?email=$EmailAddress
  • /robinhq/api/customerOrders?email=$EmailAddress
  • /robinhq/api/order?orderNumber=$Id
  • /robinhq/api/search?searchTerm=$Expression
  • /robinhq/api/lifetime?email=$Email

Those are accessible from the root of your magento domain. http://my.shop.nl/robinhq/api/customer

To enable the dynamic API functionality you have to enable it in the configuration.

Stores -> Configuration -> Emico -> RobinHQ -> Enable dynamic API

Authentication

The authentication of the dynamic API is done by a pre shared key which must be communicated to RobinHQ.

You can define an API key and secret in the RobinHQ configuration.

When issueing requests to the dynamic API endpoint you have to include a Basic authentication header.
The value you have to sent is a base64-encoding of {apiKey}:{apiSecret}.

For example you have set up API key to abc and API secret to def.
The value would be base64(abc:def), which resolves to YWJjOmRlZg==.
The full authorization header is:
Authorization: Basic YWJjOmRlZg==

Customize panelview and detailview

Some endpoints provide the possibility to provide custom data in the Robin dashboards.

For example when retrieving customer details using /robinhq/api/customer the following payload is returned.

{
    "naam": "Robin Doe",
    ...
    "panel_view": {
        "street": "Lovinklaan 1",
        ...
        "my_customfield1": "234",
        "loyalty_card_number": "1265645456"
    }
}

You can simply add custom attributes to these views in the configuration.
Stores -> Configuration -> Emico -> RobinHQ -> Custom Attributes section.

When you need even more control or implement your own bussiness logic you can implement the interfaces DetailViewProviderInterface or CustomerPanelViewProviderInterface.

For example:

namespace MyVendor\MyModule;

class MyPanelViewProvider implements CustomerPanelViewProviderInterface
{
    public function getData(CustomerInterface $customer): array
    {
        return [
            'my_custom_field' => 'some value'
        ]
    }
}

Register in your di.xml

<virtualType name="Emico\RobinHq\DataProvider\PanelView\CustomerPanelViewProvider" type="Emico\RobinHq\DataProvider\PanelView\AggregateProvider">
    <arguments>
        <argument name="providers" xsi:type="array">
            <item name="mydata" xsi:type="object">MyVendor\MyModule\MyPanelViewProvider</item>
        </argument>
    </arguments>
</virtualType>

Dynamic API POST requests

For complete integration with Robin dynamic API the Magento module needs to issue POST requests to the RobinHQ platform.

For this functionality to work correctly it is mandatory to have a working RabbitMQ instance. You can read more about setting this up in the Magento documentation.

Use the following command to process the message queue:
bin/magento queue:consumers:start EmicoRobinHq

You can configure this in a cronjob or preferably using supervisor.

Frontend widgets

This module provides a widget to display the RobinHQ tracking script on your website.
This makes it possible to gain insight into all products viewed by the customer and the contents of the shopping cart.
Should work out of the box with the default Luma theme.

See: https://developers.cm.com/mobile-service-cloud/docs/viewed-products

To enable this feature you have to enable it in the configuration.

Stores -> Configuration -> Emico -> RobinHQ -> Enable viewed products tracking

No changelog yet

The vendor hasn't published a changelog. Tagged releases appear in the Versions tab.

Versions
Version Stability QA Status Compatibility Released
5.1.0 stable Fail Magento 2.4.7-2.4.8 Details 2025-12-10 15:42:57
5.0.1 stable Not tested Not yet tested Details 2025-05-06 14:24:30
5.0.0 stable Not tested Not yet tested Details 2025-05-06 14:22:00
4.1.4 stable Not tested Not yet tested Details 2024-09-17 09:31:09
4.1.3 stable Not tested Not yet tested Details 2024-04-16 10:57:21
4.1.2 stable Not tested Not yet tested Details 2024-03-19 13:02:31
4.1.1 stable Not tested Not yet tested Details 2024-03-19 11:54:09
4.1.0 stable Not tested Not yet tested Details 2024-03-19 08:03:07
4.0.0 stable Not tested Not yet tested Details 2024-03-13 12:16:59
3.0.0 stable Not tested Not yet tested Details 2024-02-21 08:59:29
2.5.1 stable Not tested Not yet tested Details 2024-02-06 10:30:44
2.4.1 stable Not tested Not yet tested Details 2023-09-05 08:33:15
2.4.0 stable Not tested Not yet tested Details 2022-12-22 13:14:55
2.3.0 stable Not tested Not yet tested Details 2022-08-02 08:48:50
2.2.1 stable Not tested Not yet tested Details 2022-07-05 08:42:21
2.2.0 stable Not tested Not yet tested Details 2022-06-27 20:05:51
2.1.0 stable Not tested Not yet tested Details 2022-06-09 08:33:20
2.0.3 stable Not tested Not yet tested Details 2022-05-24 11:40:50
2.0.2 stable Not tested Not yet tested Details 2022-05-24 10:57:06
2.0.1 stable Not tested Not yet tested Details 2022-05-20 12:36:48
2.0.0 stable Not tested Not yet tested Details 2022-05-20 12:25:56
1.4.0 stable Not tested Not yet tested Details 2022-05-09 11:45:27
1.3.5 stable Not tested Not yet tested Details 2022-02-07 20:53:35
1.3.4 stable Not tested Not yet tested Details 2021-09-17 11:53:21
1.3.3 stable Not tested Not yet tested Details 2021-08-05 06:21:55
1.3.2 stable Not tested Not yet tested Details 2021-08-04 15:16:36
1.3.1 stable Not tested Not yet tested Details 2021-07-26 11:07:27
1.3.0 stable Not tested Not yet tested Details 2021-07-20 14:40:13
1.2.1 stable Not tested Not yet tested Details 2021-05-11 07:32:35
1.2.0 stable Not tested Not yet tested Details 2020-12-10 08:09:33
1.2.0-beta.1 beta Not tested Not yet tested Details 2020-10-13 09:30:21
1.1.3 stable Not tested Not yet tested Details 2020-08-24 08:04:30
1.1.3-beta.2 beta Not tested Not yet tested Details 2020-08-03 06:20:45
1.1.3-beta.1 beta Not tested Not yet tested Details 2020-07-20 12:39:32
1.1.2 stable Not tested Not yet tested Details 2020-06-02 15:40:02
1.1.1 stable Not tested Not yet tested Details 2020-03-19 19:18:43
1.1 stable Not tested Not yet tested Details 2020-03-18 08:23:53
1.0.6 stable Not tested Not yet tested Details 2020-02-20 08:30:28
1.0.5 stable Not tested Not yet tested Details 2020-02-17 09:56:29
1.0.4 stable Not tested Not yet tested Details 2020-01-10 09:31:13
1.0.3 stable Not tested Not yet tested Details 2019-12-20 08:19:32
1.0.2 stable Not tested Not yet tested Details 2019-10-08 09:50:49
1.0.1 stable Not tested Not yet tested Details 2019-10-08 09:48:08
1.0.0 stable Not tested Not yet tested Details 2019-10-02 10:18:14
1.0.0-rc1 RC Not tested Not yet tested Details 2019-09-25 13:43:48
0.1.1 stable Not tested Not yet tested Details 2019-08-21 07:02:17
0.1.0 stable Not tested Not yet tested Details 2019-07-31 08:14:34
0.1.0-beta3 beta Not tested Not yet tested Details 2019-07-18 12:42:47
0.1.0-beta2 beta Not tested Not yet tested Details 2019-07-04 13:02:18
0.1.0-beta1 beta Not tested Not yet tested Details 2019-07-04 07:06:22

Requires 10

Package Constraint
php >=8.0 <=8.5
emico/robinhq-lib ^5.0
magento/module-customer 101.*|102.*|103.*
magento/module-catalog 102.*|103.*|104.*
magento/module-sales 101.*|102.*|103.*
magento/module-config 101.*
magento/framework 101.*|102.*|103.*
laminas/laminas-diactoros ^2.0|^3.0
webmozart/assert ^1.4
ext-json *

Requires-dev 2

Package Constraint
codeception/codeception ^5.1
mockery/mockery ^1.6

Suggests 2

Package Reason
magento/module-message-queue Use Magento AMQP queuing for POST requests. Highly recommended
magento/framework-message-queue Use Magento AMQP queuing for POST requests. Highly recommended

Compatibility

Each Magento release line is installed on its supported PHP versions, then the module is built (DI compilation + static-content deploy) and its unit and integration suites are run. The matrix shows the lines and PHP versions the module is confirmed to install and run on. Code-quality results further down (phpstan, phpcs, …) are reported separately and never affect compatibility.

Compatibility matrix (Magento × PHP)
Magento PHP 8.2 PHP 8.3 PHP 8.4 PHP 8.5
2.4.7 Pass Pass
2.4.8 Pass Pass
2.4.9 Pass not tested

Code Quality

Advisory checks against the module's source. Static analysis runs once across the whole module; PHPStan re-runs per Magento + PHP version because resolvable symbols differ between releases. These NEVER affect the Compatibility badge. A phpcs finding can't make a module incompatible.

Static analysis

Coding standards (phpcs), mess detection (phpmd), copy-pasted code (cpd), PHP cross-version compatibility, composer.json validity. Each runs once for the whole module.

Static analysis results
Tool Status Findings Summary
PHPCS Fail 142 6 errors, 136 warnings (ruleset: Magento2) — 112 auto-fixable with phpcbf
PHPMD Warning 3 3 rule violations (MissingImport:2, IfStatementAssignment:1)
Cpd Pass 0
Composer validate Pass 0

PHPStan

Type-checks the module's PHP against a real Magento install at the configured gate level. Re-runs per Magento and PHP version because resolvable symbols differ between releases.

PHPStan results by Magento and PHP version
Magento PHP 8.2 PHP 8.3 PHP 8.4 PHP 8.5
2.4.7 10 10
2.4.8 10 10
2.4.9 10 N/A

Tests

Unit and integration suites, run for each applicable Magento and PHP version. A test failure speaks to the module's behaviour, not its compatibility with a Magento line, so it is reported here separately and never reddens the compatibility matrix.

Unit tests

Unit tests results by Magento and PHP version
Magento PHP 8.2 PHP 8.3 PHP 8.4 PHP 8.5
2.4.7 N/A N/A
2.4.8 N/A N/A
2.4.9 N/A N/A

Integration tests

Integration tests results by Magento and PHP version
Magento PHP 8.2 PHP 8.3 PHP 8.4 PHP 8.5
2.4.7 N/A N/A
2.4.8 N/A N/A
2.4.9 N/A N/A

Security

Security checks run directly against the module: an audit of its declared dependencies for known vulnerabilities (composer audit) and a scan of its source for malware and web-shell signatures. Each runs once. A malware detection fails the version outright.

Security results
Tool Status Findings Summary
Composer audit Pass 0
Malware scan Pass 0
License
OSL-3.0

More from emico

View vendor
Make it pay

Turn an existing module into recurring revenue.

If you already maintain a Magento 2 module on GitHub or GitLab, listing it on Packagento takes about five minutes. We mirror your tags, handle distribution signing, and route paid licenses through Stripe Connect, so you can keep shipping the way you already do.