Magento 2 Rental Extension Feature Requests & Roadmap

Sales Igniter’s Magento 2 rental extension is built from what rental businesses actually ask for. Nearly every feature below started as a customer request. This page is the public record: what has shipped, what customers are asking for now, what we are weighing up, and a form to add yours.

It covers the Magento 2 and Adobe Commerce rental booking extension. Running WordPress instead? The WooCommerce rental plugin has its own feature request page, on its own release cycle. On Shopify? The Shopify rental app has its own feature request page too.

  • Requested
  • Under consideration
  • Planned
  • Shipped

Requests we have already built

Every item here is in a shipped release of the Magento 2 rental extension or one of its add-ons. Versions and dates come from the Magento 2 release notes. Open a card to read what the feature does.

  • Shippedv1.2.216 · Oct 2026

    Late return fees charged automatically

    A rental that comes back late gets a late fee, priced by the hour, day or week after a grace period, and collected from the deposit, the saved card or a payment link.

    Read moreShow less

    Turn it on under Stores › Configuration › Sales Igniter › Rental. A late fee can be the product's own rental price for the late time, a fixed amount per hour, day or week, a percentage of the rental, or only a flat late-return fee, with an optional fee on top and a cap per item. A grace period forgives short lateness, days the store is closed are left out, and each product can follow the store, have its own settings or have no late fee.

    The Return grid, the mass return and Scan Returns have a Returned at field. A late check-in creates the order's late fee with a line per late item. Rentals › Late Fees lists every fee with mass Accept and Waive and a CSV export. Accept tries the ways you tick, in your order: keep it from the security deposit, charge the card saved at checkout, or email a payment link. Set When a rental comes back late to Charge automatically to collect at check-in. A declined card is tried again and the customer gets the link.

    The product page and the cart state the policy in one sentence, and My Account shows each fee with a Pay now button. There are emails for the payment request, the receipt and unpaid reminders, a daily staff digest, and a Late Fees report.

  • Shippedv2.0.0 · Oct 2026Maintenance extension

    Maintenance: tickets, service schedules and repair costs

    A workshop board where a ticket takes units out of availability while they are repaired or serviced, with service schedules, checklists, costs and damage charges.

    Read moreShow less

    A ticket takes units (serial numbers or a quantity) out of rentals for exactly the days it needs, and its conflict panel shows which bookings the hold leaves short. Each ticket has a status, priority, technician, timeline, comments and photos. The board has Open, Overdue, Waiting, Done and Mine tabs and a CSV export.

    Needs service at check-in sends a unit straight to the workshop from the Return grid, Scan Returns or GraphQL. Service schedules service a product or a unit every so many days, rentals or days on rent, or by a meter reading, and the Send screen can warn or refuse to send an overdue unit. Checklists at check-out and check-in open a ticket when an answer fails, and customers can report a problem from My Account on Luma and Hyvä.

    Parts, labour with a timer and vendor invoices are costed on the ticket, and a damage charge can go to the customer through the late fee routes, from the deposit, the saved card or a payment link. Reports cover cost per item, downtime, utilisation impact and service compliance.

  • Shippedv1.2.216 · Oct 2026

    AI assistants that can search your rentals and check dates

    Claude, ChatGPT and other assistants can answer shoppers with your store's own data: search rentals, check free dates, get the cart price and a link that puts the rental in the cart.

    Read moreShow less

    An assistant can search your rentals, read a product, check free dates, get the price the cart will charge, and receive a link that puts the rental in the cart with those dates. It sees only what any visitor sees and books nothing.

    It is off by default. Turn it on per store view under Stores › Configuration › Sales Igniter › Rental › AI connections.

  • Shippedv1.0.0 · Oct 2026Subscriptions & Memberships extension

    Subscriptions and memberships for hire

    Recurring billing for products and long-term hire, and memberships that grant store credit, member prices or queue slots.

    Read moreShow less

    Subscriptions & Memberships is a separate Magento 2 extension. Customers subscribe on plans you set per product or as store defaults: every so many days, weeks, months or years, at the catalogue price, a fixed price or a percentage off, with an optional free trial, sign-up fee and number of billing cycles. The product page offers Pay once or Subscribe. Every renewal is an ordinary Magento order, charged to the saved card, and offline methods create renewal orders that wait for payment. Failed payments are retried on the days you set, with reminders before renewals and when a card expires.

    In My Account customers can skip a renewal, pause, renew now, change the plan or card, and cancel in two steps with retention offers. Mark a product as a membership and buying it grants store credit each period, a customer group for member prices, rental queue slots, or a mix.

    On rental stores, rental products can be subscribed to: the plan sets the length of the rental, the unit stays reserved while the subscription is paid, and each renewal carries the next period's dates.

  • Shippedv1.0.0 · Oct 2026Subscriptions & Memberships extension

    Rental queues, with the next item sent as one comes back

    Members line up the items they want and the next one is sent as soon as a loan comes back, with a pick list, serials and return reminders.

    Read moreShow less

    The rental queue is part of Subscriptions & Memberships on rental stores. Customers keep a queue in My Account and reorder or remove items. Each membership plan gives a number of queue slots. Staff work from Queue › Send, which has a Send next for all button, and a pick list. Loans carry their serials, returns can be scanned, and the next title can go out automatically when one comes back. There are return reminders and replacement charges for lost items.

    This is a queue of what a member wants next. A waiting list for a sold-out product, where a customer joins a line for the next free unit and is notified when it returns, is not part of it.

  • Shippedv1.2.214 · Oct 2026

    Pay part now, balance later

    Checkout can offer Pay in full or Pay part now. The balance is collected by payment link, a charge to the saved card, or at pick-up.

    Read moreShow less

    Off until you turn it on under Stores › Configuration › Sales Igniter › Rental › Booking deposit. The part paid now can be a percentage, a fixed amount per unit or per order, or the first days of the rental. The balance is collected with a payment link, charged to the saved card, or paid at pick-up, and every balance is listed under Rentals › Balances.

    Customers see their payment schedule in My Account, in emails and on invoices. A booking's security deposit is held back while its balance is still owed. It works on Luma and on Hyvä with the Hyvä Compatibility extension, and there is GraphQL for deposits and balances.

  • Shippedv1.2.214 · Oct 2026

    Search the catalogue by date, place or branch

    A date bar for any page, and a results page that lists only the rentals that are free, with the total for those dates on each card.

    Read moreShow less

    The Rental search widget can go on any CMS page, block or Page Builder area, on Luma and Hyvä. The results page, on by default at /rental-search, lists only the rentals that are free for the dates searched, with the total for those dates on each card, sorted by Recommended, Price or Name. Searched dates carry through to the product page.

    Products get location fields on the Rental tab, and Multi Source Inventory sources act as branches, so a search can be near a place or at a branch and the rental is booked at the branch chosen. A map beside the list is off by default. Category and search pages can also honour the searched dates by marking or hiding what is not free. The Search Styler, under the Calendar Styler, sets how the widget looks, with a live preview.

  • Shippedv1.0.0 · Sep 2026Request for Quote & Hide Price extension

    Request for Quote, and hide prices

    Customers add products to a quote instead of the cart, you send an offer, and they check out at the agreed price. Prices can be hidden by customer group, category or product.

    Read moreShow less

    Customers add products to a quote from product, category and search pages, widgets, the wishlist or the cart, with a price they would like to pay and a note per line. Staff edit the quote on Magento's own Create New Order page, with fixed prices or percent off per line, a discount, surcharge or target total, shipping and an expiry date, and send an offer. The customer checks out at the agreed price, and guests can do it without an account.

    Hide the price and Add to Cart by customer group, category or product, and replace them with Add to Quote, a link or a Get a quote form, or make a product quote-only. It is enforced on the server, including GraphQL. Sales › Quote Requests has a grid, a page per quote with the conversation and every version of the offer, Convert to Order, a quote PDF and emails for every step. Rental stores add a bridge so quotes carry rental dates and can hold stock. It also has a GraphQL API, a Hyvä storefront and an importer from Amasty Request a Quote.

  • Shippedv1.2.206 · Sep 2026

    Condition photos at send and return

    Take photos of a unit as it goes out and comes back, kept private with that serial's history.

    Read moreShow less

    Photos can be taken from a phone or tablet at send and return, or added on the unit's own page. They are private evidence and are never shown to customers. They are stored in a private folder or in Amazon S3 or any S3-compatible service, with a test button that also checks the web server keeps the folder private, an optional retention period, and a keep as evidence flag that the retention period never touches.

    Every serial has a page with its details, photos and a history of every send, return, inspection and service. A Rental usage and photos box on the order screen shows staff what each unit did on that hire.

  • Shippedv1.2.206 · Sep 2026

    Odometers, hour meters and checks on every serial

    Record what each unit reads when it goes out and comes back, with field sets for vans, e-bikes, plant, boats, cameras and more.

    Read moreShow less

    Group the things your staff check into field sets: an odometer or hour meter, the fuel level, a yes or no check such as cleaned, a note, photos. Give them to the products they suit, or start from one of 14 ready-made sets. Send Rentals, Return Rentals and Scan Returns then ask for them unit by unit. A meter cannot go backwards unless staff say it rolled over or was replaced, and a required field can be skipped with a reason when a gauge is broken.

    The Usage report can be grouped by serial fields to show the miles or hours each unit did, and the Serials grid under Rentals › General lists every serial of every product with search, filters and QR code or barcode label printing. There is GraphQL for readings and photos, so a handheld app or telematics feed can record them.

  • Shippedv1.2.202 · Sep 2026

    iCal feed per product

    Each product gets a private calendar feed that Google Calendar, Outlook, Apple Calendar or a channel manager can subscribe to, and other calendars can be imported to block dates.

    Read moreShow less

    Each product has a feed address in two versions: availability, which shows dates only and can be shared with a partner, and bookings, which carries order numbers and customer names. An edited booking updates its event instead of adding a second one, and the address can be replaced from the product page if it leaks.

    The other half arrived in 1.2.204 on 22 September: paste the .ics address from Airbnb, Booking.com, Vrbo or another depot into a product's calendar sync panel, and the dates it says are taken stop being sellable here. Calendars are checked every ten minutes, a failed download never frees dates, and an imported calendar can never remove a customer's reservation.

  • Shippedv1.2.202 · Sep 2026

    Scan a barcode to return a rental

    Point a barcode scanner at each item and it checks itself in, instead of picking serials from a list.

    Read moreShow less

    Rentals › Send and Return › Scan Returns is one box that a barcode scanner types into. Each scan returns one unit. A code that matches nothing, a unit scanned twice, a unit that is not out, or one that belongs to another order is refused with the reason.

    The Serials grid prints QR code or barcode labels for the units, so the same labels work for scanning.

  • Shippedv1.2.198 · Sep 2026

    Drive the rental system from your own software, or a headless storefront

    Magento has had a GraphQL API for years, and none of it knew what a rental was. You could ask it for a product, its price and its stock level — but…

    Read moreShow less

    Magento has had a GraphQL API for years, and none of it knew what a rental was. You could ask it for a product, its price and its stock level — but a rental product has no single price, and "in stock" is meaningless without dates. So anyone building a headless storefront, a warehouse app or an integration with their own systems hit the same wall: the questions that actually matter to a hire business could not be asked.

    There was no way to ask what a product costs for a particular set of dates, or whether it is even free on them. No way to paint a date picker without a request per day. And no way to take a booking at all, because Magento's own addProductsToCart has nowhere to put a start and end date — a rental line added through it arrives with no dates, prices at nothing, and fails at checkout. The back office was not much better served: two REST endpoints for sending and returning serials, and nothing else.

    Shipped in 1.2.198. The rental extension now adds its own GraphQL to Magento's existing /graphql endpoint. There is nothing to install or switch on.

    For a storefront

    • Availability for real dates — whether a quantity can be booked over a range, how many units are free at the busiest moment inside it, and when the answer is no, a reason you can show a customer: booked out, shorter than the minimum hire, a closed day, past the maximum period.
    • A whole calendar in one request — every day in a window with its free quantity, the fully booked days, the days the product cannot go out on at all, and the next available date. A month-long picker is one round trip, not thirty.
    • Pricing for a date range, including date-based specials and surge periods, with the working shown — which tier or named pricing period produced each part of the total, so you can tell a customer why it costs what it does.
    • Booking — a rental add-to-cart that carries the dates, re-checks availability before the line goes in, and reports per-line errors so one sold-out item does not lose the rest of the basket.
    • Rental details on the product itself, so a picker knows whether to collect a time, what the minimum and maximum hire are, the turnover buffers and the price tiers — without a second query.

    For a back office

    • Orders by rental date, not order date — what is going out this morning, what is due back, what is out over a weekend, and what is overdue. Magento can only find orders by when they were placed, which is rarely the question a hire business is asking.
    • Bookings — list, create, move, resize, cancel part of one, or delete. Turnover time is applied for you, and editing a booking no longer has it block itself.
    • Serial numbers — the whole fleet, filtered and paged, with add, edit, delete and a bulk add for a delivery that either writes every unit or none of them.
    • Sending and returning — the same actions as the Send and Return screens, so a scanner app and a member of staff cannot get out of step.
    • Maintenance tickets — open, change and close them, with the same effect on the fleet the admin has: a unit in the workshop stops being bookable, and becomes bookable again when the ticket closes. This part needs the Maintenance extension at 1.2.48 or later.

    Nothing new had to be invented for permissions. The back-office fields authorise against the same admin roles the matching screens already use, so an admin or integration token that can reach the REST API can reach these, and a role that cannot ship items cannot ship them through the API either. The storefront fields stay open, as the rest of the storefront schema is.

    One thing worth knowing if you have a mixed catalogue: rental products previously came back as null from Magento's standard products query, because the rental product type had no GraphQL type of its own. A headless listing silently lost exactly the products this extension exists to sell. That is fixed in the same release.

    Full documentation, with a worked example for every query and mutation, is in the GraphQL API section of the Magento 2 Rental docs.

  • Shippedv1.2.198 · Sep 2026

    Show the units that never go out, and get the percentages right

    The utilization report only listed kit that had been sent out, so the units earning nothing were invisible - and several of the percentages it did show were measured against the wrong capacity.

    Read moreShow less

    The utilization report answered the wrong question. It told you how hard the kit you did send out had worked, and said nothing at all about the kit that never moved — because the per-unit rows were built from what had been shipped, a unit that earned nothing simply was not in the report. The one row worth reading was the one you could not see.

    The numbers that were there could not always be trusted either. Once one unit had an acquisition date inside the period, every unit after it in the list was measured against that unit's shorter capacity and read too high. A unit's capacity stopped at its last booking rather than at the end of the report, so something that sat idle for the rest of the period still showed as fully used. And with the calculation method set to Product, anything bought recently could report well over 100% utilized, because the hires were counted over the whole period while the capacity started on the day you bought it.

    Shipped in 1.2.198. Every unit is now measured on its own, over the same window its capacity is measured over, and units that never left the yard are listed at 0%. The report also no longer stops dead on a product with no rental stock — that used to end the run and leave the report stuck on "running" indefinitely — and the per-unit data is read once per product instead of once per unit per booking, so it builds considerably faster.

  • Shippedv1.0.0 · Sep 2026Deposits & Damage Waiver extension

    Refundable security deposits at checkout

    Take a deposit with the rental payment, hold it against the order, and release it in full or in part when the item comes back in one piece.

    Read moreShow less

    A deposit is the customer's money, and treating it like a sale is what makes it go wrong. Taken as an ordinary line it is taxed, it lands in revenue, and getting it back to the customer is a manual refund that somebody has to remember weeks after the kit came back. Most shops ended up taking deposits off-system, or not taking them at all.

    Shipped in the Deposits & Damage Waiver extension 1.0.0. The deposit is charged with the order so that it can be refunded, and is tracked as held money from that moment until somebody — or the clock — decides where it goes.

    • Priced per product or per order — a flat amount, a percentage of the rental charge, or an amount per day, optionally multiplied by quantity, with a minimum and a maximum per line. Set it for the shop and override it on any product, or turn it off for the ones that never leave the yard.
    • Its own line, and not revenue — kept apart from the hire charge, untaxed by default, and visible as a deposit to the customer rather than buried in the total.
    • Released from the order page — give it all back, or give part of it back and keep the rest against a damage or late charge. Keeping any of it requires a reason, and the reason is stored on the order.
    • Or released on a schedule, a set number of days after the hire comes back, so deposits do not sit on the books waiting for someone to remember them.
    • The automatic release will not run early — it fires only once every unit on the order has actually been returned. Anything still out, overdue or lost keeps its deposit until a person decides.
    • A refund the gateway keeps refusing stops and asks for help rather than retrying forever, and the order says so.

    Every deposit is in one of five states — held, released, part released, retained, or failed — and which one is recorded rather than inferred. To a refund-shaped system, "we kept the money because the trailer came back with a bent drawbar" and "nobody has got round to it" look identical, and the difference between them is exactly what a dispute or a chargeback turns on.

    Installing it changes nothing on your existing orders: the deposit panel renders only on an order that actually has one. Setup and the day-to-day handling are documented in the Magento 2 Rental docs.

  • Shippedv1.0.0 · Sep 2026Deposits & Damage Waiver extension

    Damage waiver at checkout

    A waiver line the customer accepts or declines on the product page, priced as a percentage of the hire or a flat amount, and recorded against the order.

    Read moreShow less

    Hire trades that handle damage with a waiver had no way to sell one. The charge had to be added by hand after the order, which means it is missed on the orders that are busy enough to matter, and there is no record of the customer ever having been offered it — which is the only part that counts when there is an argument about a broken machine.

    Shipped in the Deposits & Damage Waiver extension 1.0.0. The waiver is now a line the customer sees and decides on before the item is in the basket, and the decision travels with the order.

    • Offered four ways — mandatory, optional and pre-ticked, optional and unticked, or not offered at all. Set it once for the shop and override it on any product.
    • Priced the way your trade prices it — a percentage of the rental charge (10–15% is the equipment-hire norm), a flat amount per item, per day, or once per order, with an optional floor and ceiling per line.
    • The customer is shown the rule, not a guess — the product page says "10% of the rental charge" rather than a figure, because on a percentage waiver the real amount is not knowable until the hire dates are picked. The amount appears in the basket as soon as they are.
    • The decision is recorded on the order, as Accepted or Declined, and survives everything that rebuilds an order later — admin order edit, reorder, a request for quote, and extending a live hire.
    • It is revenue, and it is taxed like revenue — its own line, its own tax class, invoiced with the order, and non-refundable unless you deliberately allow refunds.
    • Mandatory means mandatory — a control the customer cannot untick is still one they can delete from the page, so acceptance is applied on the server rather than trusted from the browser.

    A damage waiver limits what the customer owes for accidental damage under your hire contract. It is not insurance, the default wording on the product page says so, and selling insurance is a regulated activity in most countries. One setting deserves a second thought before you use it: an optional extra that arrives pre-ticked is restricted for consumer sales in the EU and the UK, so it is there for shops hiring to trade customers rather than as a default.

    Setting it up, and what a member of staff does with it day to day, is documented in the Magento 2 Rental docs.

  • Shippedv1.2.197 · Sep 2026

    Four storefront date pickers, and the old one kept

    Choose the calendar your storefront uses from one setting: an inline range picker, a popup range picker, separate start and end pickers, or the calendar that shipped before this release.

    Read moreShow less

    Stores › Configuration › Sales Igniter › Rental › Calendar Styler now has a single Date Picker setting with four options. In Line Range Picker is the new default. Previous Date Picker is the jQuery UI calendar that shipped before 1.2.197, kept unchanged, so a store can rule the new calendar out if anything misbehaves.

    The setting replaces the old Calendar Engine and Always Show Calendar settings. Every store that had either of those is migrated to the equivalent picker on upgrade, so no store changes calendar by itself, and the per-product "Show the calendar in line" attribute still overrides the store setting.

  • Shippedv1.2.197 · Sep 2026

    A guided booking flow, one question at a time

    The In Line Range Picker asks for one thing at a time — start date, start time, end date, end time — with a progress row across the top showing what has been chosen so far.

    Read moreShow less

    Rather than presenting two calendars and two time dropdowns at once, the picker moves the customer through the booking a step at a time and shows only what is relevant to the step they are on. The progress row across the top fills in as they go, and any completed step can be clicked to go back and change it.

    Choosing a new start date clears the steps after it, so a range that is no longer possible is never left behind. A Start over control resets the whole selection, and the panel keeps the customer in one place instead of scrolling between fields.

  • Shippedv1.2.197 · Sep 2026

    Design the calendar with a live preview

    A Calendar Styler settings group with the real calendar rendering beside the fields: style, main colour, corner radius, months shown, slot interval, legend and units left.

    Read moreShow less

    Style (airy, card, bold or classic), main colour with presets, corner radius, how many months are shown, the time slot interval, whether the progress row appears, whether the units left in each day are shown, and whether the legend is shown — each changes the preview as you set it.

    The Date Picker and Style are chosen from picture cards that show what each option looks like rather than from a dropdown of names, and the preview can be switched between a product-column width and full width to check both.

  • Shippedv1.2.197 · Sep 2026

    Time of day as a slot grid, and a reason when a slot is greyed out

    The chosen day’s times at your configured interval, grouped under Morning, Afternoon and Evening, with the store hours in the heading — and an unavailable slot says why it is unavailable.

    Read moreShow less

    Time of day was a dropdown; it is now a grid of the day's slots. A greyed slot is labelled with the reason: Booked for someone else's reservation, Disabled for an admin closure, before pick-up on a same-day return, or too short for the minimum rental period. The customer is not left guessing which of those it was.

  • Shippedv1.2.197 · Sep 2026

    Right-to-left locale support in the calendar

    The calendar renders right to left in RTL locales, popup calendars included.

    Read moreShow less

    Popup calendars previously rendered left to right with Sunday on the left, while the inline calendar next to them was correct. Both now follow the store locale.

  • Shippedv1.2.197 · Sep 2026

    Rentals Dashboard

    One screen for the day: units going out, due back, overdue and currently out, the next seven days, and a money card with revenue, average order value and the top five products.

    Read moreShow less

    Rentals › Dashboard shows units going out, due back, overdue and currently out for any chosen day, the next seven days, and an overdue list oldest first. The money card carries revenue this month, the last 30 days against the previous 30, the average rental order, orders awaiting payment, a 12-week paid-against-ordered chart and the top five products by revenue.

    The whole page arrives in one request, so stepping a day or changing source is a single round trip rather than one per panel.

  • Shippedv1.2.197 · Sep 2026

    Inventory Availability report on the standard Magento grid

    Keyword search, a filters popover with removable chips, a columns popover, paging and CSV export, over day, week, month and 90-day views.

    Read moreShow less

    The report now uses the same data grid toolbar as the rest of the admin, so it behaves the way every other Magento grid does. A heat map over the booked share has distinct sold-out and overbooked states, product and day headers stay put as you scroll, and a hover card breaks the reserved figure down by order, manual, maintenance and RFQ.

    It is fully keyboard navigable, and any view can be exported to CSV.

  • Shippedv1.2.197 · Sep 2026

    Rental Calendar report with an Out / In view

    The default view shows, per day, how many units go out and how many come back, the orders behind them and any overdue units, with Send and Return actions in the day popover.

    Read moreShow less

    Opening a day lists every pick-up and return for it with Send and Return actions beside each. By order, week and timeline-by-product views are there as well.

    The FullCalendar library the old report loaded on every admin page that rendered it has been removed entirely, so the report is lighter as well as more useful.

  • Shippedv1.2.197 · Sep 2026

    Serial Numbers report: one row per physical unit

    Each serial is a row with a bar for every booking, labelled with the order and customer, so a unit’s year reads without a click. Plus bulk actions, a record drawer and CSV export.

    Read moreShow less

    Adds a retired status; bulk send, return, new maintenance ticket and change status actions; a serial record drawer with cost, acquisition, utilisation and booking history; and a CSV export.

    Rebuilding it turned up three faults worth naming. The report rendered blank on arrival because the first request carried no source or stock scope. The source and stock filters were swapped, so filtering by source silently filtered by stock instead. And the stored serial status and maintenance ticket were ignored, so a unit held in the workshop looked identical to one out on a customer booking.

  • Shippedv1.2.197 · Sep 2026

    A booked day can no longer show as free

    Availability is now derived from the reservations table when it is read, instead of from a cached inventory array that could be up to 24 hours out of date.

    Read moreShow less

    The old design cached a serialized inventory array per product and only invalidated it when the product was saved — never when a reservation was written — so a day that had just been booked could keep showing as available for up to a day.

    Availability is now built on read, with a date-windowed query and a sweep-line builder. The rental cache type, its cron job and its console command are gone with it, so there is one less thing to warm, flush or explain.

  • Shippedv1.2.197 · Sep 2026

    Moving between months no longer waits on the server

    Everything the calendar needs is sent with the page, so stepping through days and months is instant.

    Read moreShow less

    Every month change used to make an availability round trip. The page now carries the availability the calendar needs, so navigation happens in the browser.

  • Shippedv1.2.197 · Sep 2026

    A faster storefront and admin

    First phase of removing the HTML round-trip plugin that re-parsed rendered HTML on every block of every page. The admin order view went from 0.421s to 0.208s.

    Read moreShow less

    The extension used to place several pieces of its output by re-parsing already-rendered HTML, on every block of every page. Each behaviour that has been replaced keeps its own compatibility switch under Stores › Configuration › Sales Igniter Rental › Theme Compatibility, all off by default, so a heavily customised theme can put any one of them back.

    Measured on the admin order view, 0.421s down to 0.208s. The product page is 37ms faster and the category page 57ms faster.

  • Shippedv1.2.197 · Sep 2026

    Magento 2.4.9 on PHP 8.3 and 8.4

    Supported on the current Magento release and the current PHP versions.

    Read moreShow less

    Rental date storage also moves to the MySQL date format in this release. The conversion is scheduled by the upgrade and runs on the next cron passes in bounded chunks, so nothing long runs inside setup:upgrade. To convert immediately instead, run bin/magento salesigniter:rental:migrate-dates --dry-run and then without the flag. It is idempotent and one way, and any row it cannot parse is reported and left untouched.

  • Shippedv1.0.0 · Sep 2026Hyvä Compatibility extension

    Hyvä theme support, as its own extension

    salesigniter/hyvarental supplies the Hyvä versions of the templates that depended on Luma’s JavaScript — one extra Composer command, and nothing changes for Luma stores.

    Read moreShow less

    Hyvä ships no RequireJS, no jQuery and no Luma JavaScript, and its product page markup is not Luma's. This optional companion extension supplies the Hyvä versions of the few templates that depend on that: the rental add-to-cart button with the Rent and Buyout labels, the pricing card, and the out-of-stock modal, rewritten with Alpine and Hyvä's own modal helper instead of emitting a RequireJS call on every page of the site. It also moves the pricing card next to the calendar, where the Luma layout instruction silently matched nothing and left the card down by the footer.

    It requires rental extension 1.2.197 or later. Everything in it is wired through the Hyvä compatibility module fallback and Hyvä's own layout handles, so nothing in it can reach a Luma page. One known limitation: the Previous Date Picker needs jQuery UI and therefore RequireJS, so a Hyvä store always gets the new calendar whatever that setting says.

  • Shippedv1.2.192 · May 2026

    Stop rental and regular products being bought in one order

    A setting that stops a rental and a regular sale product being combined in the same purchase, for businesses whose fulfilment cannot handle a mixed order.

    Read moreShow less

    Some hire businesses pick, book out and invoice a rental completely differently from a sale, and a basket holding both is a problem rather than a convenience. This setting refuses the combination at the cart, rather than letting it through to a warehouse that cannot process it.

  • Shippedv1.2.178 · Aug 2025

    Availability re-checked at checkout, not just at add to cart

    A basket that sat open while someone else booked the same dates is caught at the checkout page, instead of becoming an order you cannot fulfil.

    Read moreShow less

    Availability was checked when the product went into the cart. On a busy catalogue that leaves a window: two customers can both add the last unit for the same dates, and whoever pays second gets an order that cannot be fulfilled. The check now runs again on the checkout page, so the conflict surfaces before payment rather than after it.

  • Shippedv1.2.178 · Aug 2025

    Hide the calendar per product when there is no inventory

    The global setting existed; this adds the same control per product, so one out-of-stock line does not show a calendar with nothing bookable in it.

    Read moreShow less

    Showing an empty calendar on a product with no units left invites a customer to try every date and fail on all of them. This can now be decided per product rather than only for the whole store.

  • Shippedv1.2.156 · Sep 2024

    Customers can see their upcoming and past reservations

    A reservations page in the customer account: what is coming up, and everything they have hired before.

    Read moreShow less

    A customer who wants to know when their booking starts, or what they hired last summer, no longer has to open old order emails or ring the counter.

  • Shippedv1.2.156 · Sep 2024

    Customer reservations tab in the admin

    A Reservations tab on the admin customer page, so a phone call can be answered from the customer record instead of from the order grid.

    Read moreShow less

    Someone calls about their hire. You have their name. This puts their reservations on the customer page, rather than making you search the order grid for the right order first.

What customers are asking for

Requests sent through the form below, in the customer's own words, once we have read and approved them. Customers with a licence can vote, and votes decide the order.

The first requests are being reviewed. Yours could be the first one listed. Send it below.

On the table, not yet promised

These are candidates, not commitments, and there is no date on any of them. Demand decides the order: vote for the ones that would change how you work, or tell us on the form, and they move up.

  • Under consideration

    SMS and WhatsApp reminders

    Pick-up and return reminders sent to the phone rather than to an inbox nobody reads.

    Read moreShow less

    Email reminders exist. For a same-day or next-day hire an email is often read too late, and late returns cost availability. This would send the same reminders over SMS or WhatsApp through a provider of your choosing.

  • Under consideration

    Webhooks for send and return

    Fire an HTTP call when a unit goes out, comes back or goes overdue, so other systems can react without polling.

    Read moreShow less

    Accounting, a driver app, a maintenance system, or an automation tool. Today the only way to find out that a unit went out is to look. A signed webhook per event would let those systems be told instead.

  • Under consideration

    Delivery and collection routing

    Group the day’s deliveries and collections into runs, with time windows the customer picks at checkout.

    Read moreShow less

    For businesses that deliver, the schedule is the hard part, not the booking. Delivery and collection windows chosen at checkout, a day view grouped into runs, and a driver sheet per run with the addresses and what is on each stop.

  • Under considerationMulti Source Inventory add-on

    Pick-up branch chosen at checkout

    Multi Source Inventory already holds stock per source. This would let the customer choose which branch they collect from, and check availability against that branch only.

    Read moreShow less

    A store with several depots can already hold rental stock per source. What is missing is the customer-facing half: choosing the branch on the product page or at checkout, seeing a calendar that reflects that branch's stock rather than the total, and returning to a different branch if you allow it.

Request a feature

Tell us what you are trying to do and how you handle it today. Concrete beats general: the requests that get built are the ones where we can picture the yard, the counter or the spreadsheet you are replacing. Say which Magento version and theme you are on if it matters. We read every one and reply, and approved requests are listed above in your own words.

Magento 2 and Adobe Commerce rental extension questions

Does Magento 2 have a rental system built in?

No. Magento Open Source and Adobe Commerce sell a product once and have no idea of a hire period, availability across dates or a return step. Renting is added with an extension. Sales Igniter puts an availability calendar, date-based pricing, quantity and serial-number inventory, send and return tracking and rental reports on top of the standard Magento catalogue, cart and checkout, so your theme, payment methods and shipping carriers keep working. See the Magento 2 rental booking extension features and pricing.

Does it work with Adobe Commerce as well as Magento Open Source?

Yes. It is one extension and it installs the same way on both, through Composer from our own repository. It is currently supported on Magento 2.4.x up to and including 2.4.9, on PHP 8.1 to 8.4. Multi Source Inventory is supported through a separate add-on, so a rental business with several branches can hold stock per source.

What should a Magento 2 rental extension do?

At minimum: block dates that are already reserved, price by duration rather than per unit, hold or take a payment, and record when each unit went out and came back. Beyond that the needs differ by trade, which is why most of the list above exists: serial-number tracking for equipment hire, buffer time for cleaning and turnaround, a dashboard for the counter, and reports that tell you what is out and what is late. The full feature list shows what is covered today.

Does it work on a Hyvä storefront?

Yes, with the free companion extension. Hyvä ships no RequireJS, no jQuery and none of Luma's JavaScript, so the handful of templates that depend on those are supplied by salesigniter/hyvarental, installed with one extra Composer command. Nothing is needed on Luma or a Luma-derived theme. The one limitation is that a Hyvä store always gets the new calendar, because the older jQuery UI picker cannot run without RequireJS.

How do I request a feature, and what happens next?

Use the form on this page and leave the platform set to Magento 2. We read every request and reply. Requests we approve for listing appear under "What customers are asking for" with a status that changes as it moves through under consideration, planned and shipped. Nothing is published automatically.

Who can vote, and how do votes count?

Anyone logged in with a Sales Igniter licence for the Magento 2 rental extension or one of its add-ons can vote once per request. Votes order the open requests on this page and are the main input when we plan a release. Not a customer yet? The form still works, and you can vote once you have a licence.

Is the Magento roadmap the same as the WooCommerce one?

No. They are two products on two release cycles, built on two platforms, so a feature can land on one long before the other and some features only make sense on one of them. The WooCommerce side has its own page: WordPress / WooCommerce rental plugin feature requests and roadmap. If you want something on both, choose WooCommerce and Magento on the form and it is listed on both pages.

Already a customer with something urgent? Support requests go through the helpdesk rather than this form. Paid custom development is available too — see custom development.