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.

Additional Webhook examples for Order Update and Order Cancellation were added in v1.4.3. fmEcommerce Link (Shopify Edition) includes PHP examples for both the FileMaker PHP API and the new Data API (support for the Data API was added in v1.5.5).

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 if you are using the PHP API Webhook files
  • your copy of fmEcommerce Link must be hosted by FileMaker Server v17 or later if you are using the Data API Webhook files
  • you will need to deploy and configure Custom Web Publishing with PHP if you are using the PHP API Webhook files
  • If you’re using the Data API Webhook files you will need to enable the Data API and host the PHP files (either on your FileMaker Server or elsewhere, for example Amazon Lightsail or your own web server)
  • 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 fmecommercelink and place the webhookNewOrder.php file inside the fmecommercelink folder the URL will be: https://www.myserver.com/fmecommercelink/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): 

/Library/FileMaker Server/HTTPServer/htdocs

Mac OS X (HTTPS):

/Library/FileMaker Server/HTTPServer/htdocs/httpsRoot

N.B. the HTTPS options require a valid SSL certificate to be installed.

If you are using FileMaker Server v17 you cannot using the FileMaker Server Admin Console to enable Custom Web Publishing using the PHP API. You will need to use the Command Line Interface to enable these – see the FileMaker Server 17 Help for more information on these commands.

The webhookNewOrder.php file calls a FileMaker script as part of the process of creating the new Order in the fmEcommerce Link file. If you are using fmEcommerce Link (Shopify Edition) v1.2 or earlier you will also need to ensure that the following options are ticked in your FileMaker Server Admin Console:

server-plugins

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:

https://help.shopify.com/en/api/getting-started/webhooks

https://help.shopify.com/en/api/getting-started/webhooks#through-store-admin

If you would like to see support for other Shopify Webhooks please let us know.