Skip to content

OrderFlow Advanced Concepts

OrderFlow Ltd.

Document Version: 4.2.4

Document Built: 2024-02-16

This document and its content is copyright of OrderFlow Ltd. All rights reserved.
You may not, except with our express written permission, distribute, publish or commercially exploit the content.
Any reproduction of part or all of the contents in any form is prohibited.

General System Concepts

General System Concepts

This section offers some more detail on some of the 'general purpose' entities that have applicability across the whole system. An understanding of what these entites are and how they are used is important, particularly in understanding how multi-channel and multi-site systems are configured.

Modules

OrderFlow uses a modular architecture which allows for bespoke requirements to be introduced in a way which does not impact on or compromise the core system in any way. Modules are loaded when the application is started, and only functionality that is present in loaded modules is available to execute.

The modular architecture allows the system to avoid many of the pitfalls of creating large enterprise systems. It allows the commercial offering to be tailored to the needs of individual customers with the software provisioned without the capabilities that are not needed.

OrderFlow has the concept of core and optional modules. Core modules are included within the base distribution of OrderFlow, so are available automatically to all OrderFlow customers. Optional modules contain more advanced features that are made available according to customer needs and commercial arrangements.

Core Modules

  • api: Provides domain model and key interfaces used within application
  • courier: Provides basic support for courier integration functionality
  • dao: Provides query portion of data access layer of application
  • event: Support for event handing within application
  • hibernate: Provides object to relation mapping layer of application
  • housekeeping: Support for general housekeeping functions, such as log purging
  • import: Generic support for import of different types of data onto system
  • integration: API integration framework
  • main: Provides base implementation
  • notification: Support for external communication mechanism (e.g. email, HTTP, FTP, etc.)
  • order: Basic order processing support
  • paperwork: Support for paperwork generation, including despatch notes
  • print: Support for generation of printable items
  • process: General purpose process framework, also work with API integration framework
  • remote-order: Supports order-related remote API operations
  • remote-print: Supports remote API operations relating to printing
  • remote-warehouse: Supports warehouse-related remote API operations
  • reports-standard: Standard or 'built-in' reports
  • schedule: Functionality to support running scheduled jobs
  • service: Supports general purpose services within - application (e.g. property lookup, cacheing, etc.)
  • user: User management, access and authentication
  • view: Provides base support for dashboard-related functionality
  • view-admin: Admin-related dashboards
  • view-despatch: Despatch-related dashboards
  • view-import: Dashboards related to import
  • view-integration: Dashboards related to integration with third party systems
  • view-reports: Dashboards relating to reporting
  • view-setup: Setup-related dashboads
  • view-warehouse: Dashboards for warehouse and stock management
  • warehouse: Basic warehouse management functionality
  • warehouse-stockcheck: Basic stock checking functionality
  • web: Base support for user interface
  • web-admin: GUI for system administration features
  • web-advanced: GUI for advanced setup
  • web-despatch: GUI for basic despatch operations (packing, order and shipment searches, etc)
  • web-despatch-courier: GUI for courier related despatch functionality
  • web-despatch-manifest: GUI for manifest related functionality
  • web-despatch-packages: GUI for functionality for creating and managing packages within shipments
  • web-import: GUI for data imports
  • web-integration: GUI for integration with third party systems
  • web-inventory: GUI for basic stock control
  • web-reports: GUI for reporting
  • web-setup: Setup screens
  • web-user: Web layer for providing user access and authentication
  • web-warehouse: GUI for basic warehouse management functions

Optional Modules

  • accounting-sage: Module to support Sage 200 integration
  • activity: Activity logging
  • address: Supports basic address validation and cleaning
  • archive: Supports controlled archiving and purgeing of operational data
  • batch: Batch picking support, sufficient for paper-based batch picking
  • batch-taskpick: Further batch picking support, required for handheld picking
  • billing: Creation of billing metrics and generation of billing data
  • courier-abol: Courier integration with iAbol
  • courier-aland: Courier integration with Aland Post
  • courier-amazon-mf: Amazon Merchant Fulfilment integration
  • courier-bpost: BPost courier integration
  • courier-colis: Courier integration with Colis Prive
  • courier-correos: Courier integration support for Correos
  • courier-dhl: Courier integration with DHL
  • courier-dhldeutschepost: DHL DeutschePost integration
  • courier-dpd: DPD courier integration (UK)
  • courier-dpdnl: DPD courier integration (Netherlands)
  • courier-endicia: USPS courier integration using Endicia
  • courier-fedex: Courier integration with Fedex
  • courier-hermes: Courier integration with Hermes
  • courier-huxloe: Courier integration with Huxloe
  • courier-hypaship: HypaShip integration
  • courier-jerseypost: JerseyPost integration
  • courier-landmark: Landmark courier integration
  • courier-metapack: Courier integration with MetaPack
  • courier-mondial: Courier integration with Mondial Global
  • courier-netdespatch: Courier integration with NetDespatch
  • courier-parcelperfect: ParcelPerfect courier integration (South Africa)
  • courier-postnl: Integration for PostNL
  • courier-royalmail: Courier integration with Royal Mail (Tracked)
  • courier-royalmailppi: Support for Royal Mail PPI
  • courier-springppi: Courier support for Spring PPI
  • courier-tnt: Courier integration with TNT
  • courier-ukmail: UKMail courier integration
  • courier-ups: UPS web services integration
  • courier-usps: USPS integration (incomplete)
  • courier-whistl: Whistl integration
  • courier-wndirect: WnDirect courier integration
  • courier-worldship: UPS Worldship integration
  • courier-yodel: Yodel DeskDispatch courier integration
  • handheld: Handheld terminal application screens
  • handheld-support: Support for handheld terminal functionality
  • infile: Support for 'fetching' import files
  • integration-amazon: Amazon Merchant Web Services integration
  • integration-ebay: eBay marketplace integration
  • integration-generic: Generic integration support, allowing third parties to build endpoints conforming to OrderFlow API
  • integration-magento: Magento integration
  • integration-magento2: Magento 2 integration
  • integration-shopify: Shopify
  • mobile: Mobile application dashboard support
  • monitoring: Support for monitoring-related functionality
  • multisite: Support for multi-site or -warehouse environemnts
  • order-consolidation: Support for despatch using consolidation: including just in time despatch of multiline shipments
  • order-expedite: Support manually expediting priority orders
  • order-pick: Advanced order picking related functionality
  • payment: Support for interactions with payment gateway as part of order processing workflow
  • product-group: Basic support for grouped products (bundles, bill of materials)
  • productivity: Productivity statistics generation
  • remote-monitoring: Remote system monitoring
  • reports-periodic: Periodic report generation and export functionality
  • scope: Multi-channel and multi-organisation support
  • warehouse-advanced: Advanced warehouse management and stock tracking
  • warehouse-bom: Bill of materials support
  • warehouse-crossdock: Just-in-time despatch of cross docked shipments
  • warehouse-licenceplate: Licence plate-related features
  • warehouse-po: Purchase order support
  • warehouse-stockcheck-advanced: Advanced stock checking through metrics and activity assignment
  • warehouse-stockmove: Configurable creation of stock move tasks
  • web-despatch-routeplan: Support for grouping and routing despatches
  • web-test: Module with features for managing test data sets. Not suitable for use in production environments

The choice of modules that need to be deployed in an environment depend on the feature sets that OrderFlow need to support. The table below provides a list of common features, as well as the modules required to support them.

Feature Modules Also Requires
Multi-channel or organisation scope
Multi-site multisite
Periodic reporting reports-periodic
Stock move tasks warehouse-stockmove
Handheld funcntionality handheld-support, handheld
Single line cross docking warehouse-crossdock
Multi-line cross docking warehouse-licenceplate, warehouse-crossdock, order-consolidation Stock move tasks, Handheld functionality
Paper batch picking batch
Handheld batch picking batch, batch-taskpick Handheld functionality
Advanced stock checking warehouse-stockcheck-advanced Handheld functionality
Fetching of import files infile
Billing billing
Activity recording activity
Manual shipment expediting order-expedite
Bundles product-group
Kitting/bill of materials product-group, warehouse-bom
Monitoring monitoring, remote-monitoring
Data archiving archive

Note of course that any courier or eCommerce integration setup will also require the specific modules.

Organisations

The standard OrderFlow environment allows the definition of a single 'default' organisation. The name of the default organisation can be defined as part of the system configuration. All products, inventory, orders and shipments are associated with the default organisation.

  • Products are always associated with a single organisation
  • Warehouse locations can be associated with a single organisation or can be shared
  • Orders and shipments are always associated with a single organisation
  • Purchase orders, ASNs and deliveries are always associated with a single organisation

OrderFlow environments that support the optional 3PL (3rd party logistics) module can define multiple organisations to represent the different 3PL clients supported by OrderFlow.

Sales Channels

Incoming orders are generally associated with a specific sales channel. OrderFlow can support different data formats and business logic for each sales channel.

Examples of sales channels might be:

  • UK website
  • US website
  • European Ebay
  • European Amazon

The following aspects of an OrderFlow implementation are typically defined differently for each sales channel:

  • API integrations with other eCommerce plaforms
  • Customer paperwork
  • Courier selection logic
  • Target and mechanism for stock updates to external systems

In some cases it may be appropriate to parse incoming orders received from a single source and allocate them to different sales channels as a part of the import process. This might be done if an ECommerce shopping cart platform is used to route orders from multiple sources into OrderFlow.

Sites

OrderFlow is a multi-site system. A single instance of OrderFlow will support warehousing and fulfilment operations across multiple sites or warehouses.

Each location defined on the system belongs uniquely to a site.

A site is typically a physical warehouse address but might also be a shop, retail outlet or a distinct logical area within a larger warehouse that needs to be treated as a separate logical entity (e.g. a bonded area within an unbonded warehouse).

OrderFlow environments with the optional multi-site module enabled can support multiple sites.

Sites are one of the primary classifiers for implementing user access permissions across the system. For example, most warehouse operations, such as incoming deliveries, stock moves and stock checks are defined and organised within sites. The major exceptions are cross site stock transfers.

In addition, the fulfilment of shipments is done within a site. Since an order can be broken down into multiple shipments, it is possible for a single order to be fulfilled using different shipments from more than one site.

User access can also be granted at a site level, allowing users on the system to perform operations or view shipments, stock and warehouse information across specific sites but not across the system as a whole. For more details on this, see the Users section of this document.

  • Users can be given access to one or more sites
  • Locations are always associated with a single site
  • Incoming orders do not need to be associated with a site at the time they are received into OrderFlow
  • Outgoing shipments are always associated with a single site

Scoping and Configuration

Entity Scope

Most of the entities on the system are implicitly scoped, either by site, organisation, or channel, or some combination of these,

  • shipments belong to a site. Also, because a shipment comes as part of an order, which belongs to a channel.
  • products belong to an organisation.
  • locations are part of a site; the stock stock levels associated with a product are site and organisation-scoped.
  • deliveries are associated with a site and organisation combination.

This idea is illustrated by the diagram below, showing the scoping of some of the key entities on the system.

Entity Scoping

Additionally, users are typically scoped in that they will only have access to items belonging to specific sites, organisations and channels on the system.

Entity scoping is a powerful feature that allows for a single instance of OrderFlow to represent a wide range of processes and behaviour ranging across different organisations and channels.

Properties

Any system needs configuration - conceptually, these are the levers used to control how the system behaves in different circumstances. In OrderFlow, configuration is done almost entirely through editable properties which exist on the OrderFlow database. There are hundreds of properties on the system. The properties are organised into groups based on the functional areas for which they are mostly applicable.

Most of the properties in OrderFlow are scoped properties. Scoped properties can take on different values which apply for different sites, channels and organisations, or combinations of the above. This allows for configurability of OrderFlow to match different requirements for different sites and organisational units within the system.

OrderFlow also allows for unscoped or global-only properties, which take only a single value.

Properties are dynamically editable; no system restart is required to reflect changed property values, except in very unusual circumstances.

System states

Sandbox, configuration and live

A new OrderFlow system follows a state transition model to support a controlled transition towards go-live.

System States

When OrderFlow is first deployed it will be given a default state of sandbox which will be displayed in a yellow message bar above the top level menu. The sandbox state has no functional impact on the environment but is used to indicate that it is not being backed up and that any work done in setup and configuration may be lost.

Sandbox environments may be used to test specific problems and are usually temporary.

Before any significant setup and configuration work starts a reliable data backup strategy should be put in place and the system state set to configuration. The configuration state has no functional impact on the environment but is used to indicate that it is being backed up and that the OrderFlow implementation process has started.

Configuration environments are in the process of going live, changes should not be made to the environment without considering the potential business impact.

Before the OrderFlow environment is used to record real stock levels or process live orders the system state should be set to live. The process of setting the system state to live will require that all operational data is deleted.

Any operational data held in the OrderFlow environment when it moved to a 'live' state will be lost, configuration settings will be unchanged.

Organisation and Channel States

OrderFlow environments that support the optional 3PL (3rd party logistics) module can also assign a 'test' or 'live' state to particular organisations or sales channels. This allows 3PLs to define and test new client configurations individually.

Scope States

While the organisation is in the test state, operational data can be added and cleared as many times as is necessary to verify the configuration.

Other Entities

Some of the entities that play a role in the system are described briefly below.

  • workstations: represent the physical workstation from which the user is accessing the system. Useful in particular for configuration of printing behaviour.
  • file resources: holds document-based resources such as images, localised message files and product data sheets.