Hi @scandidesignco,
Thank you for reaching out and for providing a detailed explanation of the issue you encountered. I completely understand how frustrating this can be, especially if you’re coming from another eCommerce platform where this workflow behaves differently.
To clarify, orders that are manually created in the WooCommerce admin are handled differently from orders placed by customers on the frontend.
When an admin creates an order, adds products, manually enters the customer’s billing and shipping details, and leaves the order in a pending state, WooCommerce may mark the order as not payable via the frontend. This is what results in the message you saw: “This order cannot be paid for.”
As you discovered, removing the customer information allows the order to be paid. This works because, in that state, the order is treated as a generic draft invoice, where the “Pay for order” link functions and the checkout flow behaves more like a standard frontend order.
Once customer details are added, the order state becomes restricted. WooCommerce assumes that payment has been, or will be, handled manually or through an external process, and frontend payment is disabled as a safeguard against double charges or fraud. This is expected behavior rather than a bug, though I agree the experience could be improved.
If you’d like to see this handled differently, we welcome your feedback. You can submit a feature request using the link below, as this is one of the primary ways we collect merchant input to help improve the plugin:
https://woocommerce.com/feature-requests/woocommerce/
Also, when I add a new order as admin, it automatically applies sales tax to it even though the customer billing/shipping info does not get charged sales tax. That needs to be fixed too.
Thank you for bringing this to our attention. WooCommerce’s tax logic is primarily designed for frontend checkouts, where the customer’s address and tax settings are clearly defined. As a result, this logic can behave unexpectedly in the admin interface, particularly when the store is set up with prices that include tax.
Initial calculations without customer data:
When a manual order is created in the backend, WooCommerce may calculate tax using the administrator’s location or the store’s base address rather than the customer’s address, leading to inaccurate tax amounts.
The behavior depends on your tax calculation setting (WooCommerce > Settings > Tax > “Calculate tax based on”):
- If set to Customer billing or shipping address and no address has been entered yet, tax defaults to the store’s base location.
- If set to Shop base address, tax is always calculated using the store’s location, regardless of the customer’s address.
To work around this, you can manually remove the tax line for customers who should not be taxed, configure tax zones or rates for exempt customers, or use a tax exemption plugin if you create manual orders frequently. For example:
https://woocommerce.com/fr/products/woocommerce-tax-exempt-plugin/
https://ww.wp.xz.cn/plugins/tax-exemption-woo/
If you would like the development team to be aware of this beyond submitting a feature request, you can also report it directly on GitHub at:
https://github.com/woocommerce/woocommerce/issues
This allows the developers to review the behavior, better understand the scenario, and determine whether a future update is appropriate.
Thank you for taking the time to investigate this. I understand how frustrating this experience can be. Please let me know if you have any further questions.