Processing Orders

The guide illustrates the Shopware Order processing strategy on Alumio.

Problem statement

Orders placed on the website is captured in the Shopware environment, Alumio is responsible for performing periodic order dumps from Shopware to a destination endpoint.

Strategy 

The strategy adopted for processing Order is as follows,

  1. Invoke the in-built prototype "Subscriber for Shopware order" or "Shopware transaction order subscriber" to request an Order dump from Shopware to Alumio environment (Incoming connection).
  2. Perform necessary transformations to prepare the payload (Optional).
  3. Write the processed Orders to a destination storage (FTP, SFTP) or redirect the data to an external endpoint (outgoing connection).

Shopware API call details

The API call to fetch the orders from Shopware is,

Subscriber: Subscriber for Shopware order
{domain_url}/api/v1/search/order

The API call to fetch the orders-transactions from Shopware is,

Subscriber: Shopware transaction order subscriber
{domain_url}/api/v1/search/state-machine-state/&{statusId}/order-transactions

It is recommended to use the "Subscriber for Shopware order" over the "Shopware transaction order subscriber" unless explicitly requiring some fields from the order-transaction API call.

Note: The id returned in order-transactions API call does not point to the Order id, it is a separate id that points to the order transaction id. The corresponding Order id can be retrieved using the following HTTP call. data.*.id will correspond to the Order id.

Identity tracking with Mutation Date Concept

Functionality: It will restrict Alumio from fetching old Orders that were already processed by the Integration pipeline.

The transformer "Shopware Order Identity Tracker Save Transformer" provided by Alumio in the Shopware 6 connector package is used to implement this functionality.

Requirement:

The transformer requires 2 fields to be present within the JSON data it is processing.

    • orderDate.dateModified
    • identifier

Tip: If the restructuring code provided by Alumio on Shopware 6 Connector is used "Shopware Transaction Order Restructure Transformer" or "Shopware Order Restructure Transformer", the transformer also assigns these 2 fields orderDate.dateModified and identifier for tracking.

Transformer Configuration
The local storage to store the Order date (aka Mutation date) and identifier.

Incoming Configuration

The subscriber used to construct the Incoming connection is the "Shopware order subscriber", the subscriber utilizes OAuth for authentication and thus the relevant information has to be fed to the subscriber as shown below.

Data Limit - is used to limit the number of records fetched per transaction or API call to the Orders endpoint.

Start Date 

To add additional fields that might be left out by the Restructure code, Create and invoke a transformer that copies these required fields to a tag "data.*.result" before the Shopware Order Resturcuture Transformer.

Transformer to create this array structure,

Order restructure transformer

Orders Route Configuration

The intermediate configuration that connects the Incoming configuration to the Outgoing configuration.

Country Dictionary Map

The country id received from Shopware is in its Hash code format and this transformer is used to convert it to the standard ISO format.

The country hash and the respective ISO code has to be supplied in the map provided as shown below.

Outgoing Configuration

The outgoing configuration uses the Filesystem XML publisher to convert the JSON records to XML and writes it to an FTP location specified in the Filesystem configuration.

KeyPath: The keypath will be directly translated as the FileNames of the created XML in the FTP storage.