[Guide] Retrieving orders from WooCommerce

Table Of Contents

  • Introduction
  • Step 1: Create an incoming configuration
  • Step 2: (Optional) Create a new storage for the order pagination
  • Step 3: Create a route
  • Additional information

Introduction

This article describes how to retrieve orders from WooCommerce.

Step 1: Create an incoming configuration

  • Navigate to “Connections” in the menu and select “Incoming”.
  • Create a new incoming configuration to setup the process of retrieving WooCommerce orders.
  • Insert a name in the “name” field.
    1. For example: “WooCommerce – Orders – Retrieve orders”
  • Under “Publisher” select “WooCommerce - Order - Get Orders”
  • Under “WooCommerce HTTP client” select the HTTP client that you created during the initial setup.
  • Under “Status”, select the order statuses that you want to retrieve.
    1. The “Any” option will simply request all order statuses.
  • Optional: Under “Days”, enter the number of days since orders can be created.
    1. Orders older than this number of days ago will be ignored.
  • Optional: Under “Data Limit”, enter the number of orders to retrieve in one run.
    1. Defaults to 10. Can be any number between 1 and 100.

  • Optional: Under “Request Parameters”, you can provide an object of additional options that will be sent in the request to WooCommerce. See the WooCommerce documentation for a list of supported parameters.
  • Choose to enable or disable pagination
    1. This pagination is based on the order creation date and prevents orders from being imported multiple times. Alumio will store the most recent order creation date in a storage, which will be used in the next run to only request orders since that date.
    2. When this option is enabled, you’ll need to set up the pagination functionality:
    3. Under “Pagination Track Reader Transformer”, select “WooCommerce - Pagination - Reader”.
    4. Under “Pagination Tracker Storage”, select a storage that can be used by the subscriber.
      * It is good practice to create a new storage for each subscriber. See step 2 below for instructions on how to create a new storage.
    5. Under “Entity transformers”, click “Add entity transformer” and select “WooCommerce - Pagination - Writer”.
    6. Under “Pagination Tracker Storage”, select the same storage as selected in the previous step.

  • Click “Add entity transformer” and select “Get branches from a pattern”.
  • Under “Pattern”, enter “*”
  • Click “Add entity transformer” and select “WooCommerce - Order - Restructure to Alumio”.
    1. This This transformer converts data from a WooCommerce format to the Alumio order schema.
  • Under “WooCommerce HTTP client” select the HTTP client that you created during the initial setup.
    1. This client will be used to retrieve additional information that is not included in the order data from WooCommerce.

  • Under “Map”, you can assign each of the order statuses from WooCommerce to the order statuses from your other system.

Step 2: (Optional) Create a new storage for the order pagination

When you need a new storage in order to set up pagination (see step 1), you can follow the next steps in order to create a storage:

  • Go to “Storages” > “Storages” in the menu.
  • Click the “+” button to create a new storage.
  • Insert a name in the “name” field.
    1. For example: “WooCommerce – Order pagination”
  • Save the storage.

Step 3: Create a route

Next you’ll create a route to bind the incoming configuration to the outgoing configuration. In the route, you’ll need to select the incoming configuration you created in the previous step.

On the following links, you can find more information about creating routes and outgoing configurations and publishers.

Additional information

When there are no orders returned by WooCommerce matching the requested parameters (e.g. based on order status, date etc.), no tasks will be created in your Alumio dashboard.

When retrieving orders based on one or more specific order statuses, it is highly recommended not to use the pagination functionality. This is because pagination works based on order creation date and time. This is likely to cause certain orders to be left out, especially when orders from a later creation date change status sooner than orders with an earlier creation date. Instead, it is recommended to change the orders status at the end of the integration to a status that is not retrieved by this subscriber.

This incoming configuration uses the Alumio order schema.

That’s it!

You should now be able to retrieve orders from WooCommerce!