Quick answer
TL;DR
| Problem | Each deposit plugin stores deposits, balances, and totals in a different place |
| Starting point | An existing provider layer with Acowebs support, and a YITH provider that had been switched off |
| What I added | Acowebs payment schedules, WooCommerce Deposits, YITH re-enabled, WowStore, paid dates on invoices |
| Key rule | A balance or installment order always resolves to its parent, so one order never gets two invoices |
| Status | Later removed from the free WordPress.org build of this repository |
| Team | Me, with guidance from Samin Yaser, who wrote the original layer |
What I started from
Four plugins, four data shapes
The rule: invoice the parent
The total you can't trust
Where this code lives now
FAQ
Why read each plugin's source instead of its documentation?
Why keep the existing provider shape instead of redesigning the layer?
Why resolve every follow-up order to its parent?
Why rebuild the WooCommerce Deposits total instead of using the order total?
Part of the WowInvoice frontend engineering case study series →