Description
Free internal order and inventory management for producers, shops and distributors. It works independently, without WooCommerce, a paid license or a trial period. Test your business workflow and keep a backup before using it with live records.
Choose a producer, retail or distributor activity profile without changing the stock policy. The front form supports a multi-product cart, optional delivery/company data and retail checkout. Distributor partial deliveries and invoices are not yet available. Configure products, units, quantity steps and prices. Enter orders with multiple products without available stock. Reuse customers by ID. Receive stock, mark orders delivered and record full or partial payments. Choose stock consumption on delivery or only after both delivery and full payment. Each order keeps its original rule. Completed orders remain in history. Edit pending orders, record returns/cancellations and refunds, and record paid expenses.
Customer management includes paginated search, editable contact/company/address/notes, current receivables and linked order history. Orders preserve the customer name and contact details from creation. Launch a new order from a customer record, including customers beyond the 500-entry quick selector. Set or reschedule an undelivered order’s delivery date with an audit reason; filter orders due today, overdue, in the future or without a delivery date. Dates follow the site’s timezone. No notifications are sent automatically.
An order intake role can only take orders. An order operator can also mark them delivered or paid. Inventory management, corrections and partial payments require the inventory manager capability. All interface messages use WordPress translations; the direct-install package includes Romanian translations. The directory package relies on WordPress language packs when available. Stored product names, units and customer details are not translated automatically. No WooCommerce dependency, external services or automatic homepage replacement.
A Delivery only role sees a separate queue of pending deliveries: historical customer name, phone, delivery address, date, product names, units and quantities. Structured prices, totals, currency and payments are not queried or included in its HTML. It can mark delivery, with each order’s original stock policy; it cannot take orders, record payments, edit stock or access financial reports, documents or exports. The public order page displays this queue instead of intake for this role. The queue is paginated at 50 orders. Custom roles combining additional capabilities retain their separately granted access. Contact and product text are user-supplied; avoid storing financial or sensitive notes in delivery fields.
Order lists in administration support search, status/date filters and pagination (50 orders per page), with CSV export of the displayed page. Financial period reports use each payment/refund/expense event date and export summary totals. CSV downloads require inventory access and contain customer data; they are not invoices. The front active list supports customer/phone/order-number search and pending delivery, unpaid or stock-reconciliation filters. Filters are preserved across pages and status actions. It uses 50 orders per page, with a total count and Previous/Next navigation for all active orders. Stock movement history is paginated with product/date filters and complete period totals per product; movement CSV exports the displayed page, while totals CSV covers the full filtered period. Customer selectors retain their previous limits.
Administrator JSON exports include all COI ledger tables. Media files and WordPress accounts are excluded. Validated JSON backups up to 2 MiB can be restored atomically into an empty ledger only, with a matching site timezone and a fresh safety backup. Existing records are never replaced or merged. Source user and image references are cleared; historical audit payloads retain original references. Recovery of cancelled orders, PDF/XLSX reports and invoicing are not yet implemented. PRO is planned as a separate extension; it is not bundled. There are no fiscal device connectors. In completion mode delivered unpaid products remain in the recorded stock. A receipt on an existing order is preserved if stock is insufficient; the order remains active until stock completion is retried. Quick counter checkout is atomic and requires sufficient stock.
The Commercial documents tab creates numbered offers and proformas from active orders, with issuer details, separate customer billing profiles, optional due dates, immutable item/price/party snapshots and audited cancellation. Each document type and series maintains its own consecutive numbers. Changing to an existing series resumes its numbering; cancelled numbers are never reused. Documents do not change stock, order totals or payments. Browser printing/Save as PDF is supported; no tax breakdown or fiscal invoice is generated. The complete JSON backup now covers 23 tables, including documents, events and numbering. Previous 18-table backups are accepted with empty commercial registers.
The Supply tab records suppliers and multi-product receipt documents, with optional manual unit costs. Receipt data is retained as a snapshot and every stock movement links to its document. Cancellation retains the document and creates inverse movements only when estimated physical stock is sufficient. Receipts do not automatically record supplier payments or expenses; unit costs do not constitute stock valuation, tax calculations or profit reporting.
Source code
The readable JavaScript sources are assets/front.js and assets/media.js. Readable CSS is in assets/admin.css, assets/front.css and assets/print.css. These are the original files shipped and loaded directly; no minification, bundler or build step is used for these assets. PHP source is included in the plugin root and includes directory.
Installation
- Install on a test WordPress site using 64-bit PHP 8.1 or later and a MySQL/MariaDB database with InnoDB support.
- Activate per site. Network activation is unsupported.
- Open Orders & Inventory. Set currency and decimal places before adding products.
- Select the Producer / later delivery, Shop / counter sales or Distributor / companies activity profile, and the stock rule for new orders: on delivery, or after delivery and full payment. Existing orders keep their original rule.
- Add products. Select a standard unit or enter a custom unit, quantity step, price and optional minimum stock. Choose the product image in the same form; access to the WordPress media library is required.
- Record initial stock or receive stock through the Supply tab. A saved order does not reserve stock; the configured consumption rule checks availability later.
- Use the order intake page created by the plugin, or add [cenariu_orders] to a page and include that page in your menu. The homepage is not replaced. Operators must sign in and have order intake permissions.
- Assign the appropriate role to each operator deliberately. The Delivery only role has its own delivery queue and cannot record payments or access financial reports.
FAQ
-
How do I upgrade an existing inventory?
-
Back up the full WordPress database and files before replacing the plugin. If Plugins shows “Upgrade existing inventory data”, an administrator with inventory access must run that action. Inventory operations pause until it completes; WordPress administration stays available. The upgrade retains existing records and moves the plugin’s historical table, option and permission names to the cenaorin_ prefix. Reload existing inventory forms after completion.
An interrupted upgrade can be resumed from Plugins. Keep the current plugin installed and retain its upgrade marker; do not delete or rename database tables to force completion. A diagnostic code explains a refused operation. Ask the hosting administrator to check database table-lock and rename permissions when database_error appears. Inventory ledger tables require InnoDB; shared WordPress options/usermeta tables do not need conversion. This upgrade does not merge conflicting inventories.
-
Does an order reserve stock?
-
No. A new order can be created without stock. Stock is checked when its configured consumption rule becomes satisfied. Partial payments alone never consume stock.
-
What if payment is recorded but stock is insufficient?
-
For an existing order, the receipt is retained and the order remains active until stock completion succeeds. Receive the missing stock and retry stock completion; do not record the payment again. Immediate counter checkout requires sufficient stock and completes atomically.
-
Can I change the stock rule for existing orders?
-
Changing the setting affects new orders. Existing orders retain their original stock rule and historical product, unit and price details.
-
Are offers and proformas fiscal invoices?
-
No. They are internal commercial documents with separate series and historical snapshots. Browser printing or Save as PDF is supported. No fiscal invoicing, POS or cash-register connector is included.
-
Does uninstalling remove my records?
-
No. Business records, roles and capabilities are retained. JSON backups exclude media files and WordPress accounts; restoration is supported only into an empty ledger, with a matching timezone and a fresh safety backup. It does not merge or replace existing records.
-
Does activation modify my homepage or the Catina plugin?
-
No. This plugin uses its own tables and an administration screen.
-
What customer information is stored?
-
Customer names, optional phones, addresses, company references and notes, orders and payment records are stored in the site’s database. Select an existing customer by ID or create a separate new record. User IDs and timestamps identify the recorded operations. This release sends no data to external services. Site administrators are responsible for access and retention. Data, roles and capabilities are retained on deactivation and uninstall. Commercial profiles may include email, tax/registration identifiers, bank and IBAN details; documents and audits keep historical copies. Import/restore previews expire after 15 minutes; expiration is not immediate physical deletion. Downloaded CSV/JSON/printable copies require separate protection. Suggested text is available in the WordPress Privacy Policy Guide; adapt it before publication. Administrators with inventory access can export the selected customer record and linked business records as JSON after verifying the requester. Issuer profiles, operator IDs and operation tokens are excluded. Review free-text notes before sharing. This is not a restorable backup. Administrators may clear current phone, address, company, reference and notes after reviewed confirmation, only when no incomplete orders remain. Name, billing details, orders, documents, audits and downloaded copies remain; this is not anonymization. There is no automatic personal data eraser or email-based WordPress exporter.
-
Does this generate invoices?
-
No. Invoicing is planned for a separate PRO extension.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Cenariu Orders & Inventory” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Cenariu Orders & Inventory” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
0.33.2
- Hide the current outstanding balance in cancelled receipt details, consistently with the supplier agenda, receipt list and CSV. Historical totals and payments are retained.
0.33.1
- Fix MySQL DATETIME errors when date filters are empty in orders, reports, stock and financial ledgers. Preserve open-ended date ranges and period totals.
0.33.0
Normalize scalar fields, typed quantity and receipt arrays, report filters, batch selections and upload metadata at the request boundary. Preserve exact decimal arithmetic, action-specific nonces and capability checks; reject malformed typed input before ledger operations.
0.32.1
Add bounded upgrade diagnostic codes, recovery instructions and a return link to Plugins. Inventory calculations and migration ordering are unchanged.
0.32.0
Explicit administrator data upgrade to distinct storage, role and option prefixes. The resumable upgrade supports mixed WordPress metadata engines without converting shared tables; WordPress administration remains accessible when an upgrade is paused. Existing inventory forms must be reloaded after upgrading.
0.31.3
Recovery release: use the existing ledger without automatic namespace migration or conversion of shared WordPress tables. Existing installations keep their stored metadata. This recovery release does not complete directory-review prefix corrections.
0.31.2
Keep WordPress administration accessible when the namespace migration is paused; show a bounded diagnostic code to administrators and block inventory operations until recovery.
0.31.1
- Align localized JavaScript configuration names with the distinct cenaorin prefix.
0.31.0
- Migrate existing inventory tables, options, role memberships and grants to the distinct cenaorin prefix without copying commercial records.
- Remove legacy endpoint, menu and hook registrations. Refresh open forms after upgrading.
0.30.0
- Use distinct cenaorin identifiers for new installations and requests, with compatibility for existing data, roles, links and extensions.
- Normalize commercial notice selectors before escaping output.
- Keep direct-distribution translation registration outside the WordPress.org package.
0.29.41
- Search and filter active front orders, preserving reviewed filters across pagination and status actions.
0.29.40
- Paginate all active front orders at 50 per page, with totals, translated navigation and preserved page after status actions.
0.29.39
- Clarify Free installation, activity profiles, product units and images, stock rules, access, translations and retained records. Ledger behavior is unchanged.
0.29.38
- Load product media controls only in Products and stock, and delivery card styles only on the delivery-only admin page.
0.29.37
- Add a delivery-only role and separate paginated queue without financial fields, with nonce-protected delivery using the original stock policy.
0.29.36
- Translate automatic order intake menu labels and new page titles. Existing page titles and ledger records are preserved.
0.29.35
- Reject noncanonical product identifiers in stock receipts before any receipt or stock write.
0.29.34
- Translate product unit selector labels while preserving stored unit values.
0.29.33
- Keep the custom unit field hidden for standard units and group the integrated product image controls.
0.29.32
- Select standard or custom product units and choose images directly when adding or editing products; validate and save image with product fields atomically.
0.29.31
- Redesign front active orders with responsive cards, status badges, clear product quantities and grouped actions.
0.29.30
- Bind product CSV preview to reviewed currency and price precision; refuse changed or legacy preview context before writes.
0.29.29
- Correct order-list result plurals and use the account locale for supplier and delivery-preparation document language.
0.29.28
- Validate and unslash the contact-clear HTTP method; document uncached transaction updates.
0.29.27
- Add reviewed clearing of current customer contacts, blocked by incomplete orders, with explicit confirmation and retained history.
0.29.26
- Add administrator JSON export for a selected customer, linked business records and historical billing details; no email-based identity matching.
0.29.25
- Add translated suggested privacy policy content and clarify commercial data, previews and retention.
0.29.24
- Localize controller error responses for imports, backups, repeat orders, public intake and supplier documents.
0.29.23
- Correct customer and order singular/plural labels, Romanian three-form translations and standalone document locale/error messages.
0.29.22
- Localize customer records and public intake steps, cart and validation messages through WordPress.
0.29.21
- Localize remaining administrative labels, activity profiles, CSV headers and product image picker through WordPress APIs.
0.29.20
- Add fully prefixed public extension hooks while preserving API 1.0 aliases.
0.29.19
- Use a separate translation for receipt recording date; preserve the stock label context.
0.29.18
- Localize order lists, filters, financial reports, supply pages and printable receipts. Directory packages skip bundled translation registration.
0.29.17
- Localize overview and stock dashboard labels, descriptions and product administration.
0.29.16
Explicit standard nonce checks, complete SQL arguments and paginated delivery joins. Documented statement-level static-analysis decisions.
0.29.15
Reject noncanonical product identifiers and malformed quantity maps before order creation.
0.29.14
Reject altered nonce values rather than accepting sanitized tokens.
0.29.13
Use the directory-required major/minor Tested up to format; exact test matrix remains WordPress 7.1.3.
0.29.12
Compatibility validation expanded to WordPress 7.1.3 with dedicated isolated fixtures.
0.29.11
Shared strict CSV/JSON upload validation and bounded backup file reading.
0.29.10
Product import form submits its explicit import kind for strict validation.
0.29.9
Strict CSV upload metadata and import kind validation; explicitly sanitized document parameters.
0.29.8
Fully prepared stock, financial, supplier and commercial document reports with consistent pagination and period totals.
0.29.7
Prepared schema migration queries, supplier summaries and remaining core audit reads.
0.29.6
Prepared delivery queries, order and audit reads, core registers and report filter validation.
0.29.5
Fully prepared cash flow and customer balance summaries. Reject invalid filter containers and pagination types.
0.29.4
Explicit prepared identifiers for core snapshots, backups, restoration guards and transaction locking.
0.29.3
Prepared table identifiers throughout core inventory, customer, order and supplier transactions.
0.29.2
Prepared table identifiers and complete parameterized customer searches. Improved SQL review coverage.
0.29.1
- Explicit contextual escaping for form attributes and displayed HTML fragments, centralized WordPress stylesheet printing and translator placeholder notes.
- CSV parser requires administrator inventory access and rejects wrappers, missing files and oversized local input. Tested-up-to metadata reflects the complete local WordPress matrix.
0.29.0
- Explicit selection of up to 50 delivery preparation orders for atomic scheduling or explicit date removal, with a mandatory audit reason.
- Per-order review hashes reject stale batches; repeated identical requests return existing audit entries and changed-token payloads are refused. Stock, delivery and payments are preserved.
0.28.0
- Delivery preparation tab: selected-day, overdue and unscheduled active undelivered orders, complete product totals and paginated customer preparation cards.
- Separate full-product and displayed-order CSV exports plus a protected printable preparation sheet. No delivery confirmation, payment or stock allocation is performed.
0.27.0
- Advisory stock planning: undelivered demand, physical estimate, shortage and step-rounded replenishment to the minimum target.
- Product demand drilldown with paginated open order lines and separate protected planning/demand CSV exports. No automatic reservations, purchases or stock changes.
0.26.0
- Unified financial register for receipts, positive refunds, other expenses and supplier payments counted once.
- Date/type/method filters, pagination, full matching totals by currency and separate event-page/totals CSV downloads. Unknown payment methods remain explicit.
0.25.0
- Stock ledger pagination, product/date filters and consistent complete opening/incoming/outgoing/closing totals by product.
- Separate CSV downloads for displayed movements and full period totals, without changing stock or orders.
0.24.0
- Reviewed order repetition using original quantities and current catalog/customer details. Source history, stock and payments are preserved; stale reviews are rejected.
- Early nonce/referer normalization across all endpoints and WordPress-enqueued styles for standalone documents.
- Separate directory preparation package excludes local PO/MO catalogs; site package retains Romanian translations. Assigned WordPress.org slug still requires confirmation before submission.
0.23.0
- Responsive supplier statement cards, readable amounts/dates and linked receipt records; traditional tables remain available for printing.
- Supplier payment history for receipts on the displayed page, with explicit 100-entry limit and complete balance totals.
- Statement balances and history are read together under the shared ledger mutex; independent-connection tests verify blocked readers and consistent committed data.
0.22.0
- Supplier statements with full balances and paginated receipt history. Supplier name changes no longer split the same supplier’s balance.
- Commercial register filters for series/number, type, status, order and customer, plus per-document issue/cancellation audit.
0.21.0
- Commercial offers/proformas, issuer and billing profiles, independent series, immutable snapshots, printing, audited cancellation and complete backup/restoration coverage.
- Versioned extension hooks and shared transaction API with nested transaction protection. Independent-connection concurrency tests cover numbering and repeated tokens.
0.20.0
- Atomic empty-ledger restoration after complete validation, with safety backup, timezone and administrator checks. Existing data is never replaced. Source user/media references are cleared.
0.19.0
- Read-only backup summary shows customer/supplier balances by currency and recorded stock, with Romanian translations.
0.18.1
- Reject invalid product steps/flags, payment and correction types, malformed UUIDs, schedule dates and audit JSON.
0.18.0
- Grouped backup consistency checks for receipts, supplier payment/expense pairs and linked stock movements, including void receipts and returns.
0.17.2
- Backup inspection reconciles order line totals, payments and refunds with overflow-safe integer arithmetic.
0.17.1
- Backup inspection checks exact fields, scalar types, date validity and configuration values against shared schema definitions.
0.17.0
- Read-only JSON backup inspection for counts, IDs, tokens and ledger references. Restoration remains unavailable.
0.16.3
- Import errors identify the failing data row; blank rows and the header are excluded from numbering.
0.16.2
- Reject batch duplicates according to database collation with full transactional rollback; validate customer phones before confirmation.
0.16.1
- Clear document table headings, empty customer statements and Romanian document translations.
0.16.0
- Protected printable order, delivery and customer statements. Internal records, not fiscal documents.
- Customer statement lists latest 50 orders; totals cover matching orders.
- Customer imports return to the customer section.
0.15.0
- Atomic new-customer CSV import with required unique references and audit.
- Downloadable CSV templates, specific validation errors and Romanian import/export translations.
- No merging or updates of existing records; restoration is still unavailable.
0.14.0
- Administrator product CSV import with preview, atomic batch save, SKU duplicate checks and zero opening stock.
- Maximum 100 products per batch, 128 KiB input; no updates or customer import yet.
0.13.2
- Translatable section navigation and Romanian translations for JSON/CSV export controls and errors.
- Full interface translation is still in progress.
0.13.1
- Administrator catalog CSV exports for all products and customers, independent of pagination.
- CSV is not a full backup; import is not yet implemented.
0.13.0
- Protected administrator JSON export with a coherent ledger snapshot, row counts and format metadata.
- Explicit export limits and exclusions; restoration is not available yet.
0.12.1
- Front form styles are readable original assets enqueued through WordPress on authorized shortcode pages.
0.12.0
- Daily management overview with linked delivery, stock and supplier payment priorities.
- Complete supplier workflow: editable supplier records and audited contact changes, document deadlines and audit history.
- Payment agenda, overdue/today queues and combined document/supplier/payment/date filters with pagination and CSV.
- Optional payable total and deadline saved atomically with receipt creation.
- Protected printable internal receipt sheets with line items and payment history; not invoices.
0.11.0
- Explicit receipt payable totals with audit history, partial/full supplier payments and linked expenses.
- Supplier balances and CSV export, with separate counts for documents without payable totals.
- Paid receipts cannot be cancelled and their payable totals are locked.
0.10.0
- Suppliers and atomic multi-product stock receipt documents with optional unit costs.
- Receipt history, stock-ledger links and audited cancellation with physical stock checks.
0.9.0
- Customer records, paginated search, linked order history and current receivables.
- Historical customer-name snapshots and defaults for future orders.
- Delivery scheduling, audited rescheduling and today/overdue/future filters.
0.8.0
- Paginated administration order lists, customer/phone/company/reference/ID search and status/date filters.
- Financial period totals and protected CSV exports of order pages and cashflow summary.
0.7.0
- Producer, retail and distributor profiles; multiple products in the front cart.
- Optional delivery/company data, temporary failed-cart recovery and atomic counter sales.
- Preserve payment when stock completion fails and allow safe retry after restocking.
0.2.1
- Select stock consumption on delivery or after delivery and full payment.
- Order intake role, pending-order edits, returns, cancellation and refunds.
- Paid expenses, net cash flow and correction history.
- Upgrade preserves previous orders and stock movements.
0.1.1
- Orders with multiple product quantities and explicit existing customer selection.
0.1.0
- First development release: independent catalog, orders, stock receipts, delivery and payments.
- Operation-specific nonces, capability checks and transactional ledger.
- Configurable currency precision and Romanian translation.