Integrating with Spryker OMS

Edit on GitHub

Order Management System (OMS) in Spryker is a built-in workflow engine that manages the lifecycle of an order - from placement to delivery. It defines each step (for example payment, shipping, cancellation) as part of a process, with clear transitions and conditions.

For third-party integrations, you can primarily use OMS for event-driven and API-driven integrations.

Event-driven integration (OMS as the source)

  • OMS can be used to publish events (for example Order.Paid, Order.Shipped) when an order transitions to a specific state.
  • Your 3rd party integration can then subscribe to these events (for example via a message queue like RabbitMQ) to trigger actions in an external system (for example update ERP, notify logistics partner, send customer email).

API-driven integration (OMS as the target)

  • You can expose Glue API endpoints that trigger specific OMS commands or state transitions (for example set order status to shipped, initiate return).
  • This allows external systems (for example a Warehouse Management System, a Call Center application) to update the order status or trigger actions within Spryker’s OMS.
  • You can also extend the OMS process with custom states and transitions specifically designed for your 3rd party’s workflow.

Further reading

Setting up an Order Management System