Shopify supports over 30 different types of Webhooks which are triggered when certain events happen on your Shopify store. fmEcommerce Link (Shopify Edition) v1.3 includes support for the ‘Order creation’ Webhook – using the supplied PHP page you can have new orders automatically pushed to your copy of fmEcommerce Link.
To use Webhooks with fmEcommerce Link you will need to ensure the following are in place:
- your copy of fmEcommerce Link must be hosted by FileMaker Server v12 or later
- you will need to deploy and configure Custom Web Publishing with PHP
- you will need a static IP address/domain name for the web server that is part of the FileMaker Server deployment (we need to update the Shopify settings with a URL to a php page that will be hosted on your Server)
- you need to install the supplied webhookNewOrder.php file on your Web Server and determine the URL to this page from the outside. For example if your web server has a domain name of www.myserver.com and you create a folder called fmaccountinglink and place the webhookNewOrder.php file inside the fmaccountinglink folder the URL will be: https://www.myserver.com/fmaccountinglink/webhookNewOrder.php
- the URL needs to begin with HTTPS: Shopify only support HTTPS Webhook URLs. Shopify verifies SSL certificates when delivering payloads to HTTPS webhook addresses, so please ensure your server is correctly configured to support HTTPS with a valid SSL certificate
If you’re not sure about what the external URL to the webhookNewOrder.php file is talk to your IT person – they may need to setup port forwarding on your Internet router in some cases.
The web server “root” folders for the installation location of the PHP files for FileMaker Server v13 and later is:
Windows (HTTP or HTTPS):
[drive]:\Program Files\FileMaker\FileMaker Server\HTTPServer\Conf
where [drive] is the drive on which the Web Publishing Engine component of your FileMaker server deployment resides.
Mac OS X (HTTP):
Mac OS X (HTTPS):
N.B. the HTTPS options require a valid SSL certificate to be installed.
The webhookNewOrder.php file calls a FileMaker script as part of the processing of creating the new Order in the fmEcommerce Link file, so you will also need to ensure that the following options are ticked in your FileMaker Server Admin Console if you are running FileMaker Server v15 or earlier.
These options can be found under the Database Server > Server Plug-Ins tab. If there are any issues with the plug-in being installed automatically by the FileMaker script you can manually install it into the following directory in your FileMaker Server installation:
\FileMaker Server\Web Publishing\publishing-engine\cwpc\Plugins
Once you have determined the URL to the webhookNewOrder.php file you need to create a Webhook within your Shopify site. You can follow the Shopify instructions for configuring a Webhook through your Shopify store admin – make sure you select Order creation for the Event and enter the URL to your webhookNewOrder.php file into the URL field. The Format should be JSON. Once you have created and saved the Webhook it should look something like this:
You can now create a new dummy order on your Shopify site and confirm that the new Order is created in the fmEcommerce Link file successfully or wait until you receive a new Order. There is also an option to send a test notification after you have saved your Webhook – clicking this button will send an example order to the URL you provided. In our testing the new Order was created in the fmEcommerce Link file within a 10-30 seconds, so please wait a few minutes before troubleshooting this further.
When the Webhook makes a successful request it performs the following actions:
- it creates a new record in the Orders table and populates the Shopify Order ID
- it then performs the Process Webhooks Order script and passes in the FileMaker Order ID as a parameter. This script then updates the Order record from Shopify – the same result if you were to manually click the Update Order from Shopify button
Shopify has implemented a 5-second timeout period and a retry period for subscriptions. Shopify waits 5 seconds for a response to each request, and if there isn’t one or they get an error, they retry the connection to a total of 19 times over the next 48 hours. A webhook will be deleted if there are 19 consecutive failures for the exact same webhook.
We have a video demonstrating the Order Creation Webhook in action on the fmEcommerce Link (Shopify Edition) Videos page. You can get more information about Shopify Webhooks at the following links:
If you would like to see support for other Shopify Webhooks please let us know.