Boooverhere
Junior Member
- Sep 22, 2022
- 167
- 62
A few days ago my payment processor u/stripe suddenly shut down my account and placed me on MATCH.
That meant no Stripe, no card payments, and no checkout payments on my WooCommerce store overnight.
Orders were still coming in, but customers had no way to actually complete payment.
Instead of manually emailing every customer with an invoice (which quickly became chaos), I decided to build a small automation to handle everything.
So I built a Python-based unpaid order recovery system for WooCommerce.
Workflow:
• Runs every hour automatically
• Fetches unpaid orders through the WooCommerce REST API
• Sends the customer an invoice email immediately
• Sends follow-ups if still unpaid
Reminder schedule:
This automation turned it into a manual-invoice payment workflow instead.
Surprisingly it's been recovering a decent number of orders.
And if so:
That meant no Stripe, no card payments, and no checkout payments on my WooCommerce store overnight.
Orders were still coming in, but customers had no way to actually complete payment.
Instead of manually emailing every customer with an invoice (which quickly became chaos), I decided to build a small automation to handle everything.
So I built a Python-based unpaid order recovery system for WooCommerce.
What it does
The automation monitors WooCommerce and automatically handles unpaid orders.Workflow:
• Runs every hour automatically
• Fetches unpaid orders through the WooCommerce REST API
• Sends the customer an invoice email immediately
• Sends follow-ups if still unpaid
Reminder schedule:
- Initial invoice
- 24h reminder
- 48h reminder
- 72h final reminder
Payment options in the invoice
Because I can't process card payments anymore, the email includes multiple alternative payment options:- PayPal
- Revolut
- Bank transfer (USD / EUR / GBP depending on customer country)
- Interac e-Transfer (Canada only)
Tech stack
Built entirely with Python:- Python
- WooCommerce REST API
- Google Sheets API (order tracking)
- Brevo SMTP (email delivery)
- cron (runs every hour)
- secrets stored in .env
- full logging (automation.log, payment.log)
- currently running locally but planning to move it to a VPS
Order tracking
Every order is logged to a dedicated Google Sheet which tracks:- order ID
- email sent
- reminder stage
- payment status
- abandonment status
Why I built it
Once you lose card processing, WooCommerce basically becomes a catalog, not a checkout.This automation turned it into a manual-invoice payment workflow instead.
Surprisingly it's been recovering a decent number of orders.
Curious about one thing
Do other WooCommerce stores deal with a lot of unpaid / pending payment orders?And if so:
- how do you follow up with customers?
- manual emails?
- plugins?
- something else?