A small plugin for JoomShopping (Joomla). During the checkout process, it hides unnecessary options: paid payment methods if the order is completely free, and physical delivery options (Standard/Express, etc.) if all items in the cart are downloadable (digital), regardless of their price.
What the plugin does
At the "Payment Method" step, the plugin displays your selected "free" payment method only when the cart total is zero, and hides it for any paid order—the customer doesn't have to see a payment option that doesn't apply to their order.
At the "Shipping Method" step, the plugin always displays the shipping method for digital items when all items in the cart are downloadable (they have a downloadable file attached to them on the product page), regardless of their price. As soon as at least one physical item is added to the cart, the standard shipping methods are shown again, and the method for digital items is hidden.
Both identifiers—payment method and shipping method—are configured in the plugin settings; nothing is hardcoded.
Requirements
Joomla 4, 5, or 6
JoomShopping (tested on version 5.x)
Installation
Extensions → Manage → Install → Download and install the archive below. After installation, open Plugins, find "JoomShopping - Free-order-only checkout options," enable it, and specify the desired payment method ID and shipping method ID in the settings (both IDs can be found in JoomShopping → Options → Payment Method / Shipping Method, in the "ID" column).
Starting with version 1.1.1, the plugin can be updated directly from the Joomla admin panel (System → Update Manager) — no manual reinstallation is required.
| Version |
Changes |
| 1.0.0 |
Initial release: Payment and shipping method filtering based on "order is completely free." |
| 1.1.0 |
Shipping method is now determined based on "downloadable product" rather than order amount – also works for paid digital products. Fixed a payment method filtering error (reconciliation was performed on the wrong field). |
| 1.1.1 |
Added support for auto-updates from the Joomla admin panel. |