There instructions are primarily targeted at the OrderFlow administrator responsible for carrying out the OrderFlow side of the setup for the OrderFlow and Magento integration. For these steps you will need admin privileges on the target OrderFlow instance.
As OrderFlow is a modular system, you will first need to ensure that the necessary modules are present:
Navigate to the Advanced -> System -> Loaded Modules, and confirm that the following modules are loaded.
rtd2-process rtd2-integration rtd2-integration-magento2 rtd2-web-integration
If any of these modules are not present, then this will need to be rectified in order to complete the integration. The steps for doing this are outside of the scope of this document.
In order to allow Magento to connect with OrderFlow, make sure that there is a user present that corresponds with the user setup in API Settings configuration.
Note that the user will need:
- access to the /remoteorder/imports/importitems.xml and /remoteorder/imports/importitems.xml resources. This is typically achieved by associating the user with the Remote Importer role.
- access to the organisation and channel required on which the connection is to take place.
The next step in to set up the application properties to correspond with the settings of the Magento installation described in Magento Configuration. These include values for the endpoint URL, API user and API Key as described in the Magento Web Services Configuration section.
From Setup -> Properties -> Search in OrderFlow, you will need to check the value for the property inventory.process.based.notification is set to
(This property was added for backward compatibility purposes, but with the value set to false, inventory import using the extension will not be possible.)
From the same menu, do a search, but filter on the group 'Magento API'. This is where the Magento API properties are configured. We are only concerned with the following SOAP properties.
Magento 2 API SOAP base URL: this is the base URL for the Magento API endpoint. In our example, the value used is http://orderflow.magento/soap/default.
Magento 2 API SOAP User: this corresponds with the name of the user set up in the Magento Web Services Configuration.
Magento 2 API SOAP Password: this corresponds with the password for the user set up in the Magento Web Services Configuration.
Note that the properties used may need to be scoped by organisation or channel to align with the channel and organisation used with the specific Magento instance. For single channel or organisation OrderFlow environments, this will not be necessary.
Channel and Organisation Configuration
OrderFlow is a multi-channel and multi-organisation system that allows a single instance of OrderFlow to interface with multiple instances of Magento and other eCommerce platforms.
For a particular integration, the OrderFlow Channel and Organisation through which the specific Magento instance will communicate to OrderFlow will need to be correctly configured.
Give the channel the same name as entered in the Magento configuration e.g. magento. Set the organisation that will own the channel, choose Magento for the Integration API. The Scheduled Handlers Activated and Periodic Reports Activated options should be enabled.
For inventory updates to be posted back via using the Magento channel, the organisation’s Primary Channel should point to the Magento channel.
To enable shipment despatch notifications from OrderFlow to Magento, use the Advanced > Event menu to navigate to the event definitions screen.
Then select the shipment_despatch event. From there, enable the shipment_despatch_process_listener if it is not already enabled, and disable the shipment_despatch_listener if it is enabled, as shown in the screenshot below.
(The latter event is present for backward compatibility purposes only, and is now deprecated.)
Note: that you might want to turn off any event listener that uses the rtd2-notification module with the order_notification handler, as these will generate errors in the logs.
Remember to refresh the event definitions using the Refresh button at the on the event definitions screen.
As Magento does not send a product type when exporting product definitions, you will need to configure the import mapping to handle this. Navigate to Advanced > Import Mappings > List and select the product entry that is associated with the Magento channel. Add the following to the Pre-translations script field, then use the 'Update' button to apply this configuration:
<mapping qualifier = "product" to = "type">'default'</mapping>
If there is no import mapping for the Magento-enabled channel, then you will need to add one. Click on the New new button, set Type to 'Product', set the Organisation or Channel, and enable the Activated field. Then add the following text into Pre-translations, and update the form:
<fieldmapper> <mappings useinput = "true"> <mapping qualifier = "product" to = "type">'default'</mapping> </mappings> </fieldmapper>
An example of this in action is shown below.