Skip to content

[Feature request]: 🛒 Shopify-Style “Reserve by Type” Flow with Cart, Quantity Selector, and Availability Lookup #1955

@lovelacecreativeco

Description

@lovelacecreativeco

Contact Details

lovelaba@laccd.edu

Is your feature request related to a problem? Please describe?

Yes — while Shelf.nu does a fantastic job managing individual assets on the admin side, the end-user reservation experience is currently difficult and unintuitive, especially for academic institutions like ours.

At Los Angeles City College’s Cinema Department, we have many identical items (e.g. 18 Canon T7 cameras). Right now, these items are displayed individually on the front end, making it overwhelming for students to scroll through pages of duplicate listings just to find and request what they need.

This becomes even more painful when students need to reserve gear across multiple categories. They’re expected to select specific asset IDs manually, which results in poor UX and inefficiencies for both the student and the equipment room staff who ultimately need to locate and scan the equipment anyway.

This issue was partially raised in feature request #1769 about grouping assets by type, and we’d love to build on that even further to solve the entire flow holistically.

Describe the solution you'd like

I'd like to propose a new "Reserve" experience for end users — focused on asset types, real-time availability, and a multi-step reservation cart flow modeled after modern e-commerce systems (e.g. Shopify).

🔑 Key Concepts:

  • Group Assets by Type: Instead of showing all 18 Canon T7s, display one “Canon T7” item with:
    • Quantity: 18 total
    • Available: 13 (based on reservation dates)
  • Add to Cart by Quantity: Users should be able to select how many of each item they want and add to a cart.
  • Smart Availability Lookup: The cart should be date-aware. As users set a pickup and return date, Shelf.nu checks what quantity of each item type is available for that time window.
  • Draft Reservation State: Allow users to save their request as a draft and get alerts if items go out of stock before finalizing.
  • Reservation Assistant Logic: If an item becomes unavailable during review, suggest:
    • Alternate dates where the item is in stock
    • Alternate item types
    • Prompts to update the reservation or remove the item
  • Multi-Step Flow:
    1. Project Info – Name, class, instructor
    2. Date Selection – Pickup and return dates/times
    3. Cart – Add gear by type with quantity selection
    4. Review & Finalize – Confirm reservation

🔁 Backend Logic Could Tie into:

🧭 Navigation Suggestion:

Replace the “Assets” section (for end users) with a new “Reserve” section that includes:

  • Reserve Gear – Launch the multi-step reservation process
  • My Reservations – View/edit upcoming reservations

Describe alternatives you've considered

✅ NoCoDB Workaround

To improve the current user experience, I’ve created a separate NoCoDB dashboard listing our inventory. Here’s how it works:

This works, but it’s not ideal:

  • Requires multiple tools and manual data entry
  • Still leads to confusion around item availability and timing
  • Doesn’t scale well when handling large numbers of students

A proper in-app reservation experience would eliminate this patchwork and give users confidence in what they’re requesting.

Additional context

Shelf.nu is already incredibly close to being the ideal solution for academic gear management. By extending the "group by type" concept from feature #1769 into a true cart-based reservation workflow, this becomes a system that not only tracks gear but empowers students to request it with ease.

This approach would:

  • Greatly improve student UX
  • Eliminate guesswork and emails
  • Save staff hours of manual coordination
  • Build trust in the system as a self-service platform

Thanks so much for the continued improvements and openness to feedback — really excited about the direction this is heading.

Brian Lovelace
Cinema & TV Dept., Los Angeles City College

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions