emico / magento-2-robinhq
emico/magento-2-robinhq
Magento 2 module for RobinHQ integration. Provides API endpoints for RobinHQ dynamic API
Magento 2 RobinHQ module
Provides API integrations with the RobinHQ platform / dashboards
Installation
Prerequisites
- Magento 2.2.0 or higer
- PHP 7.1 or higer
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=
mail - /robinhq/api/order?orderNumber=
number - /robinhq/api/customerOrders?email=
mail - /robinhq/api/search?searchTerm=
search - /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.
No changelog yet
The vendor hasn't published a changelog. Tagged releases appear in the Versions tab.
| Version | Stability | QA Status | Released |
|---|---|---|---|
| 5.1.0 | stable | Fail | 2025-12-10 15:42:57 |
| 5.0.1 | stable | Not tested | 2025-05-06 14:24:30 |
| 5.0.0 | stable | Not tested | 2025-05-06 14:22:00 |
| 4.1.4 | stable | Not tested | 2024-09-17 09:31:09 |
| 4.1.3 | stable | Not tested | 2024-04-16 10:57:21 |
| 4.1.2 | stable | Not tested | 2024-03-19 13:02:31 |
| 4.1.1 | stable | Not tested | 2024-03-19 11:54:09 |
| 4.1.0 | stable | Not tested | 2024-03-19 08:03:07 |
| 4.0.0 | stable | Not tested | 2024-03-13 12:16:59 |
| 3.0.0 | stable | Not tested | 2024-02-21 08:59:29 |
| 2.5.1 | stable | Not tested | 2024-02-06 10:30:44 |
| 2.4.1 | stable | Not tested | 2023-09-05 08:33:15 |
| 2.4.0 | stable | Not tested | 2022-12-22 13:14:55 |
| 2.3.0 | stable | Not tested | 2022-08-02 08:48:50 |
| 2.2.1 | stable | Not tested | 2022-07-05 08:42:21 |
| 2.2.0 | stable | Not tested | 2022-06-27 20:05:51 |
| 2.1.0 | stable | Not tested | 2022-06-09 08:33:20 |
| 2.0.3 | stable | Not tested | 2022-05-24 11:40:50 |
| 2.0.2 | stable | Not tested | 2022-05-24 10:57:06 |
| 2.0.1 | stable | Not tested | 2022-05-20 12:36:48 |
| 2.0.0 | stable | Not tested | 2022-05-20 12:25:56 |
| 1.4.0 | stable | Not tested | 2022-05-09 11:45:27 |
| 1.3.5 | stable | Not tested | 2022-02-07 20:53:35 |
| 1.3.4 | stable | Not tested | 2021-09-17 11:53:21 |
| 1.3.3 | stable | Not tested | 2021-08-05 06:21:55 |
| 1.3.2 | stable | Not tested | 2021-08-04 15:16:36 |
| 1.3.1 | stable | Not tested | 2021-07-26 11:07:27 |
| 1.3.0 | stable | Not tested | 2021-07-20 14:40:13 |
| 1.2.1 | stable | Not tested | 2021-05-11 07:32:35 |
| 1.2.0 | stable | Not tested | 2020-12-10 08:09:33 |
| 1.2.0-beta.1 | beta | Not tested | 2020-10-13 09:30:21 |
| 1.1.3 | stable | Not tested | 2020-08-24 08:04:30 |
| 1.1.3-beta.2 | beta | Not tested | 2020-08-03 06:20:45 |
| 1.1.3-beta.1 | beta | Not tested | 2020-07-20 12:39:32 |
| 1.1.2 | stable | Not tested | 2020-06-02 15:40:02 |
| 1.1.1 | stable | Not tested | 2020-03-19 19:18:43 |
| 1.1 | stable | Not tested | 2020-03-18 08:23:53 |
| 1.0.6 | stable | Not tested | 2020-02-20 08:30:28 |
| 1.0.5 | stable | Not tested | 2020-02-17 09:56:29 |
| 1.0.4 | stable | Not tested | 2020-01-10 09:31:13 |
| 1.0.3 | stable | Not tested | 2019-12-20 08:19:32 |
| 1.0.2 | stable | Not tested | 2019-10-08 09:50:49 |
| 1.0.1 | stable | Not tested | 2019-10-08 09:48:08 |
| 1.0.0 | stable | Not tested | 2019-10-02 10:18:14 |
| 1.0.0-rc1 | RC | Not tested | 2019-09-25 13:43:48 |
| 0.1.1 | stable | Not tested | 2019-08-21 07:02:17 |
| 0.1.0 | stable | Not tested | 2019-07-31 08:14:34 |
| 0.1.0-beta3 | beta | Not tested | 2019-07-18 12:42:47 |
| 0.1.0-beta2 | beta | Not tested | 2019-07-04 13:02:18 |
| 0.1.0-beta1 | beta | Not tested | 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 |
No QA results yet
QA pipelines haven't run for this version. Status appears here once the vendor publishes a tagged release that gets ingested.
No license declared
This package's composer.json doesn't declare a license, homepage, or authors. Check the source repository for terms of use.
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.