Kitrelio 1.0.0-rc.1 — Review Candidate

Developed by Xtreme Code.

View six screens from the local equipment-rental demonstration.

Kitrelio manages equipment pools, physical units, reservations, dispatch and returns. This release candidate includes WooCommerce checkout integration. Validate it on staging before use; marketplace eligibility remains open.

Installation

  1. Prepare a development WordPress site with WooCommerce and InnoDB database tables. The tested environment uses WordPress 7.1, WooCommerce 11.1.0, PHP 8.5.10 and MariaDB 11.4.10.
  2. Upload the installable Kitrelio ZIP through Plugins, Add New, Upload Plugin.
  3. Activate Kitrelio and open Kitrelio in the admin menu. Administrators and shop managers receive rental management access.

Equipment and reservations

Create pools, then add unique serials or internal unit identifiers. Import the AV demo to create sample equipment and draft products. Choose local dates in the displayed store timezone. Nonexistent or ambiguous daylight-saving hours are rejected; choose another time. API callers may supply an explicit UTC offset. A manual hold expires after ten minutes; confirming always revalidates availability.

Expand a booking to dispatch or return individual units. A damaged return excludes that unit from future selection. Equipment still out remains unavailable beyond its planned return. Reassignment requires the booking to have no physical movements. Select Preview replacement units to review the complete proposed preparation list from the same pools, then Confirm proposed units. The server rechecks availability and booking version; a changed proposal is rejected without altering the current allocations. Managers can approve directional pool equivalents and preview a replacement before applying it. Approval in one direction does not approve the reverse. Quantity changes use the same preview process and require no physical movements. These operational changes preserve the original commercial snapshot and do not charge, refund or edit WooCommerce line totals.

Retiring demonstration data safely

Import into a test site first. The importer creates draft products and keeps stable identifiers so an interrupted import can resume. It does not overwrite an existing product or reset used equipment. To remove a sample product from sale, open that exact product in WooCommerce and change its status to Draft. Review each sample unit and its future bookings before changing its technical state to Retired. Equipment still dispatched must be returned through the physical workflow first. Retirement can put an existing future booking at risk, so resolve its allocation explicitly. Keep equipment, orders, events and evidence needed for history; there is no automatic catalogue purge or automatic reversal of an edited demo. Reimporting does not reactivate retired units.

Preparation buffers

Administrators can set store-wide pickup and return buffers in minutes under Kitrelio. Each new booking freezes these values; existing bookings retain their original policy. Buffers reserve equipment without changing customer dates or rental prices. The return buffer runs from the actual return timestamp. Dispatch is blocked until that buffer ends. Each buffer can be between zero and seven days.

Extensions and physical replacements

Once a physical movement exists, preparation-only cancellation, reassignment, rescheduling and quantity controls are hidden. Rental managers can instead review a later return and record an agreed additional amount in the original order currency. The server rechecks the same active physical units across the extended interval; it never substitutes another unit merely to accept an extension. Terminal return/loss rows and the original commercial snapshot remain intact. The total period is limited to 366 days. The agreement is visible to staff and included in privacy export. The customer order shows the current pickup and return times separately from the original purchased line. The agreed amount is a record, not an automatic price estimate, invoice adjustment or gateway charge.

For a physical replacement, select the same-pool unit actually handed to the customer and the original unit’s condition. The list contains at most 200 serviceable candidates; availability is rechecked at confirmation. A returned unit receives an actual return timestamp, a damaged return enters maintenance, and a confirmed loss remains lost without a return timestamp. Missing equipment stays dispatched until actually returned or settled as lost. Damage, missing equipment and loss require an open issue first. The replacement receives its own dispatch record. A stale review or stock conflict leaves both records unchanged. Repeating the same command does not duplicate the handover. Cross-pool equivalence remains a preparation-before-dispatch operation.

WooCommerce products

In the product general settings, use Add component to select equipment pools and the number of units in each kit. Suggestions include up to 1,000 pools. The Advanced component map accepts pool ID:quantity pairs, for example 12:1,15:2, and also works without JavaScript. Set the regular price as the rental rate and select calendar-day or hourly billing. Partial units round up. Variation component overrides are available; an empty override inherits the parent.

All rental lines in a cart use the same period. The public availability check is indicative; adding rental items requests an atomic fifteen-minute cart hold. Viewing an unchanged cart does not renew the deadline. Checkout transfers the same hold to the order without releasing equipment. An expired hold must pass a fresh availability check. A supported payment-status transition confirms the reservation. Refunds and payment completion never imply a physical return. A late stock conflict creates an order note and a manual-review flag.

CSV, notes and private photos

Import UTF-8 CSV using the header pool_id,serial. Validate the preview before applying. Existing serials are skipped on resume. Export includes technical state and neutralizes spreadsheet formulas.

Notes are private WordPress records. Photos require GD and an existing directory configured with the KITRELIO_PRIVATE_DIR constant, outside the server document root. Verify that the server has no public alias for that directory. Without verified private storage, photo upload fails closed while notes remain available. JPEG, PNG and WebP up to 8 MB and 16 megapixels are decoded and re-encoded as JPEG. Only authorized rental staff can download them.

Repeating the same evidence form preserves one note and one photograph. Reusing its command key with different content is rejected. A durable reference in the private note lets reconciliation recover an interruption before its separate metadata and issue counter were written.

Availability block

Add the Equipment Availability block and enter the published rental product ID. The equivalent shortcode is [kitrelio_availability product_id="123"]. The block loads and saves its product attribute in the WordPress editor. The frontend uses the same server availability service as product pages.

Data and external services

The plugin creates four prefixed InnoDB tables and private operational note records. It sends no proprietary telemetry and needs no mandatory SaaS. Deactivation and uninstall preserve data. Keep a database and private-photo backup before upgrades.

Roles, issues, loss and deposits

Rental Operators can read rentals, dispatch, return and add issues. Rental Managers can also manage inventory, reservations, resolve issues and record deposits; site settings remain administrator-only. Resolve every open issue to close a returned rental. For a unit confirmed lost, first record an issue, then use Record loss without charging and resolve the case after review. Lost units remain unavailable. If recovered later, a manager must inspect the unit before explicitly changing its technical state.

The manual deposit ledger records money handled outside the checkout. Received amounts may be partially released or retained by agreement; settlements cannot exceed the balance or change currency. No gateway transaction, automatic damage charge or refund is performed.

Duration and opening rules

Product settings accept minimum/maximum billing units and tiers such as 3:55.00;7:40.00. The highest threshold reached sets the rate for every billing unit, not just additional units. Administrators may enable opening weekdays, pickup/return hours and blackout dates. Any overlap with a blackout is rejected. Existing accepted bookings retain their dates; new bookings and rescheduling validate current opening rules.

Recovery and privacy

Action Scheduler checks accepted rental orders in batches every five minutes and restores missing booking links. Failed/cancelled orders with existing reservations are reconciled without creating fresh holds. Unresolvable conflicts are flagged for manual review. A working WordPress cron or system cron runner is required. The Windows laboratory includes a loopback cron runner started with AVVIA_WORDPRESS.cmd. On a hosted site, configure a reliable scheduler and verify completed actions in WooCommerce Scheduled Actions; do not rely on visitor traffic for time-sensitive reminders. Deactivation removes this scheduled action and preserves rental data.

WordPress personal-data export includes rental periods, notes and manual deposit entries for orders matching the requested billing email. Administrators can download a private evidence ZIP from the booking, then transfer it to the verified requester through a secure channel. The ZIP contains the selected booking’s notes and photographs, with a limit of 100 cases and 64 MB of photographs. Files are created outside the webroot and removed after streaming. Interrupted exports and newly leased orphan uploads older than one day are cleaned in batches of up to 50. Active file leases and photographs referenced by native records are preserved. Historic files without a lease require administrator review. Erasure unlinks terminal rentals without evidence or outstanding deposits, and records redaction without storing the removed values. Active rentals, evidence and unsettled deposits are retained for review. Review the privacy request results together with WooCommerce retention settings. Administrators can erase eligible resolved evidence after an explicit review, or opt into retention after 30–3650 days since last modification. This permanently removes eligible notes and private photos only for terminal rentals with no open issues or outstanding deposits. The policy is disabled by default. Already authorized interrupted erasures continue to recover even after the age-based policy is disabled. Interrupted WooCommerce link redactions are also retried.

Inventory transactions use a separate wpdb connection with reconnect/replay disabled until completion. A lost connection aborts the request; an uncertain payment or commit outcome requires reconciliation. Database routing drop-ins require a tested adapter and are currently rejected for inventory transactions. Keep database connection limits in mind when qualifying the host.

Reminders and operations

Administrators can enable pickup and return reminders with a lead time of 1–168 hours. Messages are queued once per booking, kind and target date. Return reminders require dispatched equipment. A successful mail call means accepted for sending, not delivery confirmation. Known failures retry at most three times; uncertain outcomes require an administrator to review the duplicate-message risk before retrying or discarding. A functioning scheduler and mail setup are required.

The calendar displays up to 500 confirmed bookings per month in the store timezone. Search matches an exact booking ID, order ID or serial. Bookings use twenty-row pages and inventory uses hundred-row pages. Pool selectors are limited to 200 pools.

Equipment labels

Open an equipment unit label and print its Code 128 barcode. The barcode encodes a stable KITRELIO-UNIT identifier, while the human-readable label shows the pool and serial. Scan it into the booking scan field to dispatch or return equipment. Typed serials remain available. QR codes are not included. Check the printed result with your physical scanner before labelling equipment.

Customer orders

Administrators can configure pickup/return instructions and a contact email. Customers viewing their own order see rental status and these instructions; equipment serials and private evidence are not exposed. An unresolved reservation conflict displays a review status.

Updates and backup

Back up the complete database and private photograph directory together before updating. On staging, upload the newer Kitrelio ZIP using WordPress’s replace-current-plugin workflow, then check diagnostics, a sample checkout and a return. Never restore only the stock tables while retaining newer orders. Deactivation and uninstall preserve data; there is no automatic permanent purge.

After a real CodeCanyon purchase is available, the optional official Envato Market plugin can handle purchased updates. Kitrelio does not collect purchase tokens, install the updater or require a license connection to operate. Name/author matching and offline behaviour have been tested with synthetic metadata; a real marketplace update remains pending. The Update URI is an identity header, not a proprietary API endpoint.

Third-party code

Code 128 rendering uses an editable, namespaced subset of Picqer PHP Barcode Generator 3.3.0, by Casper Bakker, Nicola Asuni and contributors, under LGPL-3.0-or-later. Its source, license, GPL text and change notice are included under src/Vendor/Barcode. WordPress and WooCommerce are separately installed dependencies.

Current limitations

Host and third-party qualification continues across failure boundaries, host configurations, themes, browser versions and external gateways. The configured WordPress coding-standard audit reports zero errors and warnings, with documented line-specific exceptions. Plugin Check identifies the Update URI as unsuitable for WordPress.org hosting; this package targets separate commercial distribution.

The full compatibility/security/accessibility matrix, public documentation hosting and CodeCanyon submission checks remain open. This candidate is supplied for staging and review; approval and untested compatibility are not implied.

Troubleshooting