ShimeBill Closing Invoice Wordpress Plugin - Rating, Reviews, Demo & Download
Plugin Description
Closing Invoice groups multiple WooCommerce orders for each customer within a closing period and creates a separate WooCommerce order (an “invoice order”) for billing purposes.
It is intended for stores that offer invoice-based payment and need to manage multiple orders as a single billing unit. Invoice orders can be viewed in the standard WooCommerce order administration screen.
This plugin does not generate PDF files. A separate PDF invoice plugin is required to issue PDF invoices.
Features
- Consolidate eligible WooCommerce orders by customer for monthly billing.
- Automatically determine billing periods from a configured closing day.
- Choose order creation date or completion date as the closing basis.
- Review eligible orders grouped by customer in the administration screen.
- Create invoice orders individually or in bulk for all eligible customers.
- Record source-order information in invoice orders.
- Prevent previously invoiced orders from being billed again.
- Review closed customers and orders in the administration screen.
- Reset previously created invoice orders.
- Preview orders belonging to the next closing period.
- Store the closing date, payment due date, and other billing information on invoice orders.
- Provide billing metadata for use by PDF invoice templates.
- Automatically change source orders to the “Accounts Receivable (Paid)” status when payment is confirmed for an invoice order.
- Process orders using the WooCommerce order API.
- Use WooCommerce order data without creating custom database tables.
Requirements
- WordPress.
- WooCommerce.
- PHP 8.0 or later.
- WooCommerce High-Performance Order Storage (HPOS) environment.
The plugin processes billing using WooCommerce order data.
Development
The uncompiled JavaScript source code is included in the assets/js directory.
To build the JavaScript files:
- Run
npm install. - Run
npm run build.
The compiled files are generated in the build directory.
Usage
1. Configure the closing day
Set the monthly closing day in the plugin settings. For example, with a closing day of the 15th, the current closing period runs from the 16th of the preceding month through the 15th of the current month.
2. Review eligible orders
The invoice creation screen displays orders in the current closing period grouped by customer, including customer information and source orders. You can also preview orders for the next closing period.
3. Create invoice orders
Select the invoice creation action for an individual customer to consolidate their eligible orders. Use the bulk creation action to create invoice orders for all eligible customers who have not yet been processed.
4. Review invoice orders
Each invoice order stores metadata identifying it as a consolidated order. Open it from WooCommerce order administration to review its contents.
5. Reset an invoice
Use the reset action to undo a completed closing operation. The created invoice order is moved to the Trash, and the source orders can be considered for closing again. Administrative reset requests are handled via POST with nonce verification.
Closing Period
Closing periods are calculated from the configured closing day. The administration screen shows both the current and next closing periods.
When querying orders, the plugin searches from the beginning of the current period through the next closing day, then classifies results into the current or next period. This limits the date range used for order retrieval.
Closing Basis
Only orders placed using the plugin’s “Monthly Billing” payment method (whose displayed name can be changed) are eligible. Orders paid using other methods are excluded.
The payment method is displayed only to administrators and users with the B2B role.
The configured date basis is either:
- Order creation date (
created). - Order completion date (
completed).
When the completion date is selected, orders that have not been completed are excluded from closing.
Customer Grouping
Orders are grouped by customer. For this plugin, a customer is a registered user assigned the B2B role. The administration screen displays customer information such as company name, name, address, and email address.
Invoice Order
An invoice order is a separate WooCommerce order created from the source orders for billing and PDF invoice purposes.
Metadata links source orders to their invoice order, preventing the same source order from being included in another closing operation.
A newly created invoice order initially has the pending status.
PDF Invoice
This plugin does not generate PDF files.
To issue PDF invoices, you can use “PDF Invoices & Packing Slips for WooCommerce”. A separate qualified-invoice template named “CLOSING INVOICE” is available for monthly billing documents.
Using the metadata saved by this plugin, a compatible PDF template can display:
- Invoice issue date.
- Invoice number.
- Closing date.
- Payment due date.
- Payment method.
Security
Administrative operations such as individual invoice creation, bulk creation, and reset use WordPress capability checks and nonce verification.
The plugin checks eligible source orders before processing and excludes invoice orders from ordinary source-order searches using identifying metadata. Administrative input is handled with WordPress sanitization and escaping functions.
Data and Privacy
The plugin uses existing WooCommerce order data, including customer name, address, email address, and order details, to create invoice orders. It does not create a separate customer database for billing.
Database
The plugin does not add custom database tables. It uses WooCommerce order APIs and order metadata and is designed for HPOS order management.
Screenshots
No screenshots provided
