Two ecosystems,
One big event.
November 5, 2026. Lyon
Save your seat >>
No reviews yet

Order Hold

Product Order Hold Image

Developer kernel for Sylius plugins that keep orders unpaid for a while: excluded from unpaid-order cancellation, payment methods filtered everywhere.

Sylius version
2.2
Downloads
< 1K

The problem

Plugins that keep placed orders unpaid for a while (pay on account, manual review) all need the same changes to Sylius: keep their orders out of sylius:cancel-unpaid-orders, hide some payment methods everywhere Sylius offers or assigns one, and stop the customer from paying an order that is not ready. When two plugins decorate the same Sylius services on their own, the decorations compete and break each other.

Features

  • UnpaidOrderCancellationExclusionInterface: hold an order indefinitely or since a date; one decorator of the unpaid orders updater, a command that always terminates, each cancellation flushed and logged on its own.
  • UnpaidOrderCandidateQueryExtensionInterface: exclude held orders in SQL.
  • PaymentMethodEligibilityCheckerInterface: refuse a payment method with a reason, applied to the shop and API method lists, the default method, payments created after a failed one, method changes after checkout, payment requests and checkout completion.
  • PaymentEntryBlockerInterface: block the shop payment routes and shop API payment requests until the order may be paid.
  • AccountOwnerResolverInterface: the customer by default, decorated by a company plugin.
  • Fails early (container build) when the checkout, order or payment graph runs on Winzou.

This is a library for plugin developers: it has no route, no screen and no table of its own. Merchants get it as a dependency of Trade Credit.

Installation

Usually installed as a dependency of another plugin. Directly:

  1. composer require tmonier/sylius-order-hold-plugin
  2. Register Tmonier\SyliusOrderHoldPlugin\TmonierSyliusOrderHoldPlugin in config/bundles.php.
  3. Implement and tag the interfaces you need (see "Writing a hold plugin" in the README).

Full documentation: README on GitHub.

Compatibility

Sylius 2.2.9+ and 2.3, Symfony Workflow adapter for the checkout, order and payment graphs (the Sylius 2 default); MySQL, MariaDB and PostgreSQL.

Languages

Default messages in English, French, German, Spanish, Italian, Dutch, Polish.

Reviews

No reviews yet

No reviews yet. Be the first to review this product!

Loading
  • Free updates
  • Community support

Have already account? Sign in
See how it works
Compatibility & requirements
  • Compatible with Sylius 2.2 and higher

No reviews yet
17 plugins
Since 12.10.2026

Free, open source (MIT) Sylius 2 plugins for European merchants: compliance (Factur-X, EU withdrawal, GPSR), B2B (quick order, volume pricing, quotes) and back-office productivity. Tested, PHPStan max, 7 languages.

Read more
Sylius Addons Marketplace

Discover plugins, themes, and resources from trusted vendors, helping you get the most out of your work.

© 2026 Sylius. All rights reserved.

Powered by Stripe