Gravity Forms Inventory - WordPress Plugin
This plugin provides robust inventory management for Gravity Forms. Use this when selling products or tickets or when creating bookable resources like events, appointments, and reservations!

Plugin Features
Just specify the available inventory in your Product field and GF Inventory will handle limiting how much of that item can be ordered. If you’re working with choice-based fields, you can limit how many times each choice can be selected.
Have more complex requirements? With GF Inventory, you can share inventory across multiple fields and forms. Or, group multiple fields together to scope inventory by a unique combination of field values.
Specifications:
| Release date: | 11-10-2020 | |
| Last updated: | 07-10-2026 | |
| Type: | Paid | |
| License: | GPL | |
| Subject: | Tools for Gravity Forms | |
| Compatibility: | W5.x W6.x | |
| Includes: | Plugin | |
| Language packs: |
|
|
| Developer: | Gravitywiz | |
| Rating: | ||
Share with your friends!
A Practical Guide to Setting Up and Using Gravity Forms Inventory
Gravity Forms Inventory becomes useful when a form stops being a simple inquiry form and starts acting like a limited resource: a ticket, an event seat, a T-shirt size, a room reservation, equipment for a specific date, a project topic, a team role, or any other option that cannot be selected indefinitely. This guide focuses on real-world use rather than marketing copy: where inventory is enabled, how simple limits differ from resources, how to show remaining availability to visitors, how to verify deductions after a form submission, and what to do if the remaining counts look wrong.
The plugin is especially useful for WordPress site owners who already run processes through Gravity Forms and do not want to move a simple workflow into a full online store or a separate booking system. That said, it requires discipline: you need to understand which entries count as claimed, which fields control resource selection, how page caching affects availability, and what happens when an entry is deleted or edited.
This article is structured as a working guide. First, we will identify suitable use cases and limitations, then go through installation and the initial check, take a close look at Simple Inventory, Resources, Shared Inventory, and Scoped Inventory, build a sample booking form with limited capacity, verify the result on the site and in the dashboard, and finish with common issues, related tools, video, and FAQ.
What Problem the Plugin Solves
The core idea behind Gravity Forms Inventory is simple: a selected item has a limit, and submitted form entries consume that limit. If a visitor selects a product, ticket, date, room, or option, the plugin needs to determine how many units are already claimed, how many remain, and whether a new submission can still be accepted. Unlike a standard contact form, the goal here is not just to save the entry, but to prevent people from booking or purchasing something that is no longer available.
In practice, this covers several classes of use cases. A ticket sales form can limit the total number of seats. A size selection form can assign separate stock levels to each size. A volunteer signup form can cap the number of people for each role. A booking form can tie availability to a date, room, or another attribute. An internal workflow can limit the selection of a project topic, a piece of equipment, or a time slot.
When It Is Better Than a Basic Submission Limit
A regular submission limit answers the question "how many times can this form be submitted?" Inventory answers a different question: "how many times can this specific resource be selected?" If you need to stop one person from submitting the same request more than once, that is not an inventory problem. If you need to sell 40 workshop seats or allow each project topic to be chosen by only two students, then you specifically need inventory tracking on the selected field.
A good sign that the use case fits is that you can clearly name the resource being consumed: a ticket, seat, option, date, room, piece of equipment, slot, size, package, or role. If no resource is actually being consumed and you simply want to limit repeated submissions, a submission limit solution is usually the better fit.
Who the Plugin Is Best For
Gravity Forms Inventory is a strong fit for sites where Gravity Forms is already the main platform for forms, requests, calculations, or payments. It is useful for agencies building custom workflows for clients, event organizers, educational projects, services with limited appointment slots, small sellers who only need a form instead of a full store, and administrators who want to manage the number of available selections without building a separate application.
The plugin is also a good fit when several similar forms need to draw from the same shared availability. For example, one form may appear on an event landing page, another inside an account area, and a third on a partner page, while all three sell the same seats. In that case, Advanced Inventory with a shared Resource helps avoid a situation where each form operates in its own isolated stock pool.
When Another Tool Is the Better Choice
Gravity Forms Inventory is not a replacement for full eCommerce inventory management. If you have a product catalog, variations, a cart, orders, refunds, shipping, taxes, stock statuses, and integrations with an accounting or ERP system, WooCommerce or a specialized platform is the more logical choice. Inventory can be connected to WooCommerce data with additional tools and code, but at that point you are dealing with an integration project, not a simple field configuration.
The plugin can also be excessive for a simple "submit a request" form where the only requirement is to stop receiving more than a certain number of submissions per day. In that case, GP Limit Submissions is a closer fit. If the main goal is to block specific dates in a calendar rather than count resource availability, GF Limit Dates is usually the better tool. If options need to be populated from external records or a database, GP Populate Anything is worth considering as a related solution.
What to Check Before Installation
Before installing the plugin, it helps to start not with the activation button but with a clear model of how availability should work. Inventory looks simple when there is only one resource. As soon as dates, options, multiple forms, payments, or caching enter the picture, most mistakes come from an unclear model: what exactly is being consumed, which entry counts as claimed, when a resource should be returned, and where the administrator will verify the remaining quantity.
Platform and Core Dependencies
Gravity Forms Inventory belongs to the Gravity Wiz ecosystem and runs on top of Gravity Forms. For new installs, Gravity Wiz uses Spellbook as the platform plugin for installing, licensing, and updating products. So before configuring anything, make sure Gravity Forms is already installed and working on the site, that a user with administrator permissions can manage WordPress plugins, and that the system requirements for Spellbook and Gravity Forms do not conflict with your hosting environment.
Do not enable the plugin immediately on a live form with active sales or bookings. Create a copy of the form or a separate test form, walk through the scenario with several submissions, review the entries, the dashboard, and the public page, and only then move the configuration to the production page.
Your Field and Resource Map
Before you start configuring, answer these four questions:
- Which field in the form consumes inventory: a Product field, Drop Down, Radio Buttons, Checkboxes, Option field, or another choice-based field?
- Do you need one shared limit or a separate limit for each option?
- Do you need availability to be split by an additional parameter such as date, time, room, size, city, or ticket type?
- Should multiple forms or multiple fields consume the same shared Resource?
If the answers are simple, Simple Inventory is often enough. If the answers include "shared pool," "multiple forms," "per date," or "by combination of values," you should plan for Advanced Inventory.
Caching, Payments, and Entry Retention
Inventory depends on accurate entry counts. If the form page is aggressively cached, a visitor may see outdated availability. If personal data deletion or automatic entry cleanup is enabled, availability may return earlier than you expect. If the form accepts payments, you also need to understand which payment status should count as confirmed and when a spot should be held temporarily.
A practical pre-launch check: open the form in an incognito window, submit several test requests, refresh the public page while logged out, and compare the visible availability with the Inventory dashboard. If the numbers do not match, check caching and entry retention rules first instead of randomly adjusting limits.
Installation and the First Admin Check
Installation should not turn into a project of its own. For a typical site, the path is straightforward: install the Gravity Wiz Spellbook platform plugin, activate it, confirm that Gravity Forms is already working, and then use the Spellbook interface to install the required product from the Gravity Perks suite. If the product was installed manually earlier, verify that updates and licensing are now handled using the method Gravity Wiz recommends for the current setup.
This guide does not cover purchasing, entering a license key, or bypassing access controls. It assumes the administrator already has legitimate access to the product files and installation permissions. After installation, your job is not to "just turn the plugin on" but to confirm that the correct settings now appear in the form editor.
Where to Find the Settings After Activation
Open the target form in the Gravity Forms Form Editor. Add a Product field or another choice-based field, then open that field's settings. Gravity Wiz documentation explains that after installation and activation, inventory controls become available in the field settings under the Perks section for Product fields and choice-based fields. This is an important detail: the plugin is not configured as one global option for the entire site, but in the context of specific form fields.
If you do not see the Perks section or the Inventory option, first confirm that Gravity Forms, Spellbook, and the Perk itself are all active. Then make sure you are opening a supported field type. Not every form field should have inventory attached to it. A text field for a name or email, for example, is not a resource by itself. Unsupported custom fields may require a developer-level extension through documented hooks, but you should always start with supported field types.
A Minimal Test Form
For the first verification step, create a separate form with one Product field and a clear label such as "Consultation Slot." Enable Simple Inventory, set a small limit, place the form on a private or test page, submit several test entries, and confirm that the remaining quantity changes. A small test like this helps separate an installation problem from the complexity of your future form.
Next, add a choice-based field, such as Radio Buttons with several time options. Enable Simple Inventory for that field, assign limits to each choice, submit entries using different options, and observe how the public form behaves. If the basic test works, you can move on to more complex resources.
Simple Inventory for Products and Choices
Simple Inventory is the fastest path to a working limit. In this mode, the remaining quantity is stored directly in the field settings or the individual choice settings. That works well when the form has a single product, one ticket, one size list, or one set of options, and there is no need to split availability by date, room, or multiple forms.
Product Field: One Resource, One Quantity
For a Product field, the setup is straightforward. Add the Product field, open its settings, go to Perks, select Simple in Inventory Type, and enter the quantity in the Inventory field. If the product has a Quantity field, remember that the ordered quantity consumes the available inventory. This matters especially for tickets and products where one visitor may order more than one unit.
A common mistake is assuming that the Inventory value always shows the original limit. Gravity Wiz explains in its FAQ that the editor may display the currently available quantity by default rather than the initial limit. So if you increase availability after receiving submissions, set the new total intentionally. For example, if you originally had 20 seats, 5 are already claimed, and you want to add 3 more seats, your final logic should reflect the new total capacity, not just the random number "3."
Choice-Based Fields: A Separate Limit for Each Option
For Drop Downs, Radio Buttons, Checkboxes, Multi Select fields, and choice-based Product fields, the logic is different: a limit can be assigned to each choice individually. In the Gravity Wiz tutorial, once Simple Inventory is selected, an Inv. column appears in the choices editor. That is the most convenient place to define how many times each option can be selected. If a specific option should not have a limit, you can leave it unrestricted, but it is best to document that decision in the form notes so the next administrator does not mistake a blank value for a configuration error.
Choice-based inventory is especially useful for limited roles, sizes, groups, topics, time windows, and package options. For example, you can allow only two participants to choose the "Photographer" role, five to choose "Assistant," and leave "Guest" unlimited. For apparel sales, you can assign separate stock counts to each size without creating a separate form for every size.
What Visitors Should See
You do not always need to show the exact number. For an event with limited seating, an honest message like "Only 3 seats left" can help visitors make a decision faster. For an internal request form, the exact count may be unnecessary. Gravity Forms Inventory supports showing available stock through the Show available inventory setting, and the message text can be customized with custom messages and merge tags. The key is to avoid misleading the user.
If the remaining quantity affects the visitor's decision, show it next to the selection or in the field description. If the count matters only to the administrator, keep the public form cleaner and monitor the numbers through the dashboard.
Resources, Shared Inventory, and Scoped Inventory
Advanced Inventory is needed when a simple number in a field is no longer enough. In this model, the key concept is the Resource. A Resource defines inventory and behavior, and it can then be used by multiple fields or forms. That makes it possible to create one shared pool and consume it from different parts of the site.
Resource as the Single Source of Availability
A Resource is created in the Form Editor under the Perks tab. According to the documentation, you can select an existing Resource, add one, edit it, or delete it. A Resource has a name and an inventory level. The name is not for visitors, but for the administrator: "Conference Tickets," "Saturday Rooms," "Consultation Slots," or "Backdrops by Date." The clearer the name, the easier it will be to read the dashboard and troubleshoot issues later.
Do not create a separate Resource for every minor variation if those variations should be managed as one shared pool. For example, adult and child tickets may have different prices but still consume the same shared room capacity. In that case, two Product fields can point to the same Resource. If you create two separate resources instead, the form may allow more bookings than the real capacity supports.
Shared Inventory Across Multiple Fields and Forms
Shared Inventory allows multiple fields or forms to consume the same Resource. This is useful for separate landing pages for the same event, distinct forms for different audiences, an internal admin form alongside a public form, and any scenario where the price or wording differs but the physical resource is the same.
With shared choice-based inventory, stable choice values matter. Gravity Wiz notes in its FAQ that when sharing limits across choice-based fields, the values must match. For complex forms, it is best to use simple unique values and not rely only on polished labels. Gravity Forms documentation for Product fields also warns that when choice labels contain special characters, you should enable show values and define simple unique values, otherwise calculations, conditional logic, dynamic population, and validation may behave unpredictably.
Scoped Inventory for Dates, Rooms, and Combinations
Scoped Inventory solves the problem of "one resource, but availability must be counted separately for each combination." The clearest example is a workshop that runs on multiple dates. You have 30 seats for each day, not 30 seats across all days combined. In that setup, the Product field consumes the Resource, while the Date field becomes the scope. As a result, availability for one day should not affect another day.
The same logic works for rooms, equipment, sizes, cities, time slots, or combinations of several parameters. But the more scopes you add, the greater the risk of mistakes in your field mapping. Before configuring anything, write down which fields define the unique availability key. For a booking form, that might be "date + room"; for rentals, "date + item"; for training, "date + group."
Integration with Limit Dates
Gravity Wiz documentation notes automatic integration with GF Limit Dates: if a Resource is tied to a Date field where Limit Dates is enabled, dates with no available inventory can be blocked. This is a powerful booking scenario, but it comes with limits. The Known Limitations section explains that shared inventory across multiple forms for Date field resources used with GF Limit Dates can create performance issues, and it recommends keeping that setup limited to a small number of forms. So do not build a large web of dozens of forms and dates without dedicated testing.
Messages, Availability, Shortcodes, and Conditional Logic
Once the limit is configured, the next decision is what the visitor should actually see. Inventory without clear messaging often creates a poor experience: the user selects an option, submits the form, and only after an error appears realizes that no seats remain. It is better to show availability in advance, hide or disable exhausted options, and provide a clear explanation when the remaining quantity is not enough.
Messages for Shortage and Exhaustion
Gravity Forms Inventory lets you configure several messages: insufficient inventory, exhausted inventory, and available inventory. These messages support merge tags such as {requested}, {available}, {claimed}, {item|items}, and {limit}. For an English-language form, these messages should be adapted to the specific resource instead of being left as generic placeholder text.
Examples of a practical approach:
- For tickets: "You requested more tickets than remain. Available:
{available}". - For role selection: "This role is already full. Please choose another option."
- For date-based booking: "No spots are available on the selected date. Check nearby dates."
- For a limited product: "Only
{available}of{limit}remaining."
A good message does not blame the user. It explains the state of the resource and gives the next step: choose another option, reduce the quantity, switch dates, or contact the administrator.
Showing Availability with a Shortcode
For pages where availability needs to appear outside the form itself, the documentation describes an Inventory Shortcode. The basic example displays available inventory for a specific form and field:
[gravityforms action="inventory" id="123" field="4"]
For scoped inventories, you can pass scope_values. If the scope is tied to a Date field, the date value must use the YYYY-MM-DD format. This is helpful when you want to place a banner near the form saying something like "Seats remaining for the selected date," but it is best not to overload the page with dozens of shortcodes if availability changes often and the page is cached.
Conditional Logic Based on Availability
When Inventory is enabled for a field, Gravity Wiz documentation describes additional conditional logic options: Available, Any Choice Availability, and Overall Availability. You can use them to show a notice, hide an explanatory block, or trigger an admin notification when availability drops below a threshold. There is one limitation for Multi Select fields: Available conditional logic is not supported, so that field type needs separate testing.
Do not turn conditional logic into a maze. If one setting displays a warning such as "Only a few spots left," that is reasonable. If three different blocks are hiding one another based on availability, dates, and payment status, the form becomes hard to maintain. Complex logic is better documented in a form note: which fields control availability, which messages the user sees, and which dashboard the manager checks.
Practical Use Case: Workshop Registration by Date
Let us walk through a concrete example. Suppose the site accepts registrations for a workshop that runs on multiple dates. Each date has a limited number of seats. The visitor chooses a date and the number of seats, the form must prevent overselling beyond the remaining capacity, and the administrator needs to see the status for each date separately.
Goal
The goal is to create a form where each day has its own capacity. If one date is full, the user should either choose another date or see a clear message explaining that no spots remain. The administrator should verify availability through the Inventory dashboard and entries, not by guesswork.
Preparation
Create a new form or copy an existing one. Add a Date field for the selected date. Add a Product field for the workshop seat. If the visitor can book multiple seats, add a Quantity field or configure the Product field so the quantity is counted correctly. For testing, use a small limit such as just a few seats so you can quickly reach exhaustion.
If dates must be restricted in advance, enable the relevant Date field setting or use GF Limit Dates if it is already part of the site setup. Do not mix every add-on in at once. First make sure inventory is deducted correctly, then add date blocking.
Configuration Steps
- Open the Product field and go to the
Perkssection. - Select
Advancedfor Inventory Type because availability must depend on the chosen date. - Create a Resource with a clear name such as "Workshop Seats."
- Set the Resource limit to match the capacity for a single day.
- Add a scope to the Resource and name it "Date."
- Map that scope to the Date field in this form.
- Enable available inventory display if visitors should see the remaining quantity before submitting.
- Set the exhausted and insufficient messages in clear English.
- Save the form and place it on a test page.
If the form is used on several pages or there is a separate form for administrators, configure a shared Resource only after the single-form version passes testing. In a shared setup, it is important that fields and values match wherever that is required for the selection logic.
Verification
Open the test page as a normal visitor. Choose the first date, submit the form, then repeat submissions until the limit is exhausted. After each submission, check the Inventory dashboard. For scoped inventory, the dashboard should let you view availability by scope. Then choose another date and confirm that it has not been affected by submissions for the first date.
Also test what happens when an entry is edited. Gravity Wiz explains that inventory is entry-based: if an entry is deleted or the quantity or choice is changed, the corresponding amount may become available again. That is convenient for corrections, but risky if an administrator deletes entries as part of data cleanup without understanding the effect on inventory.
A Payment-Related Nuance
If the registration includes payment, do not consider the setup verified until you have tested the full payment flow. Gravity Wiz notes in its FAQ that by default the Processing status does not reduce the inventory count because the user has not completed payment yet. In high-demand sales, that can create an overbooking risk. A developer can use documented filters for temporary reservation logic, but that is a separate technical setup that should be tested on staging.
How to Verify the Result After Setup
Verification is not just one successful submission. Inventory should behave correctly in several states: before the first registration, after partial consumption, at full exhaustion, after an entry is edited or deleted, after the public page is refreshed from cache, and during payment if payment is part of the flow.
The Public Side of the Site
Test the form as a visitor while logged out of WordPress. Check whether availability appears where you expect it to. Make sure a disabled choice, hidden choice, or exhausted message does not break the layout. If an option disappears, consider whether that makes the form less clear: in some cases, a disabled choice with a "sold out" note is better than making the option vanish without explanation.
If the form is embedded through the block editor, the Embed Form button, or a shortcode, test the exact method used on the live page. Also check the page on a mobile device: availability messages often end up longer than the option labels and may wrap awkwardly.
Entries and the Inventory Dashboard
After several test submissions, open the form entries. Compare the selected fields, quantities, and payment status. Then go to the Inventory dashboard. According to the documentation, each metabox corresponds to a field with Inventory enabled; for scoped inventory, the dashboard shows drop-downs for viewing individual scopes. If the numbers in the dashboard do not match your expectations, do not change the limit immediately. First find the entry that should have consumed the resource and check how it was saved.
In the dashboard Screen Options, you can enable the inventory limit display if you need to compare the remaining number with the original capacity. That is useful for administrators who would otherwise see only the current remaining quantity and not understand the overall limit.
Exhaustion Testing
Set a small limit, such as two spots, and submit three test entries. The third submission should receive the correct rejection or an insufficient inventory message. Then delete one test entry and verify that the availability returns. This quick test confirms that inventory is truly being calculated from entries, rather than simply locking the button after the first selection.
Do not skip the negative test. A successful submission shows only half the system. For inventory, the rejection path matters even more because that is what protects you from overselling and unnecessary manual cleanup.
Common Issues and Troubleshooting
Most Gravity Forms Inventory problems look like "the remaining quantity is wrong," but the causes vary. Below is a practical symptom-based troubleshooting flow. Move from the simplest checks to the more complex ones: first field type and settings, then entries, then caching, then payment status, and only after that custom code.
Availability Does Not Decrease After Submission
Symptom: the user submits the form, the entry is created, but the public form or the dashboard still shows the previous quantity.
Possible cause: inventory is enabled on the wrong field, the quantity is not linked to the correct Product field, the entry is not considered confirmed because of payment status, or the public page is being served from cache.
What to check: open the entry and confirm that it contains the exact choice or product that should consume inventory. Then check the Inventory dashboard. If the dashboard is correct but the public page is not, the problem is almost certainly page caching, object cache, or a cached form fragment.
How to fix it: exclude the form page from page cache, review object cache settings, and temporarily disable form optimization features during testing. If the scenario involves payment, confirm which payment status counts as approved for inventory.
Negative Inventory or Overbooking Appears
Symptom: there are more bookings or orders than the limit allows, or several visitors manage to claim the same last available resource.
Possible cause: caching is serving an outdated version of the form, multiple users are submitting at the same time when only one unit remains, the payment flow leaves entries in an interim status, or a customization allows negative stock behavior.
What to check: compare entry timestamps, payment status, and the public availability shown before submission. If the problem appears only on the live page and disappears in an uncached preview, start with caching. If it occurs only with payments, review the Processing status and documented filters for temporary payment statuses.
When to roll the setup back: if overbooking is happening on real sales, temporarily disable public sales for that limited resource or switch to tighter manual review until you finish testing payment and cache behavior.
Exhausted Choices Are Hidden Differently Than Expected
Symptom: a choice disappears even though you expected a disabled state, or it stays visible even though no availability remains.
Possible cause: the Hide choice when inventory exhausted setting is enabled, or the behavior was changed by a snippet or filter. In some cases hiding the option improves the form, but in others it makes the interface harder to understand.
What to check: open the field settings and Inventory settings. Compare the behavior on the form with the exhausted message configuration. Also verify whether a developer added a custom snippet for a waiting list or disabled choices.
How to fix it: choose one consistent strategy. For product sales, hiding an unavailable option may be fine. For schedules or training groups, a disabled choice with an explanation is usually better so the user understands why the option is unavailable.
Shared Inventory Is Not Syncing Across Forms
Symptom: one form consumes the remaining quantity, but another form still shows the full limit.
Possible cause: the fields point to different Resources, the values in the choice-based fields do not match, or one of the forms is still using Simple Inventory.
What to check: open both forms and compare the Inventory Type, the selected Resource, the choice values, and the scopes. For choice-based sharing, the values must match. The visible labels can differ, but the underlying technical value has to match wherever the value is used for mapping.
How to fix it: move the related fields to the same Resource, normalize the choice values, save both forms, and run a test with submissions from two different pages.
Scoped Inventory Breaks After Duplicating a Form
Symptom: after copying a form, availability by date or other scopes is no longer calculated correctly.
Possible cause: Gravity Wiz lists in Known Limitations that scopes must be reconfigured and resaved after duplicating a form.
What to check: open the Resource and its scopes in the copied form. Make sure the scope mapping points to the new form's fields instead of looking inherited while actually being broken.
How to fix it: recreate or resave the scopes in the new form, then test with a separate date and a small limit.
Availability Does Not Match Physical Inventory
Symptom: the form shows more or fewer available units than actually exist.
Possible cause: entries were deleted, edited, archived, or affected by a Personal Data Retention Policy. Gravity Wiz specifically notes that deleting an entry adds inventory back, which may not reflect the physical inventory in the real world.
What to check: review entry history, personal data retention rules, manual admin actions, and any external inventory process. If a physical item has already been assigned or shipped, deleting the entry for database cleanup can incorrectly make it available again.
How to fix it: do not delete entries that are supposed to keep consuming inventory. Use separate statuses, notes, exports, or business-process archiving instead of deletion if that works for your site and data requirements.
Safe Improvements Without Unnecessary Code
Gravity Forms Inventory includes hooks and snippets, but not every problem should be solved with PHP. For most sites, it is safer to start with the built-in tools: custom messages, Show available inventory, the Inventory Shortcode, conditional logic, and the dashboard. Code is justified when there is a confirmed need: a dynamic limit from a custom field, temporary payment statuses, support for additional field types, or special behavior for exhausted choices.
Write Messages as Part of the Interface
The most useful no-code improvement is better copy. Replace vague generic phrases with messages that make sense. If the user selected too many tickets, tell them how many are still available. If an option is exhausted, explain whether another date can be chosen. If the form is hidden after exhaustion, leave a contact path or a waiting-list link if that process actually exists.
Use Shortcodes Only Where They Help
Shortcodes are convenient for showing remaining availability near an event description or above a form. But on a cached page, that output can easily become a source of confusion. For important sales or bookings, it is usually better to show availability inside the form itself and exclude the page from cache. If you do use a shortcode, test it in the same context where the visitor sees the form.
Do Not Add Snippets Without Ownership
Gravity Wiz publishes snippets that extend inventory behavior, but every snippet should have an owner: who added it, why it was added, where it is stored, and how to roll it back. If a developer adds a filter for payment statuses or dynamic inventory limits, document that in the project notes. Without that record, the next administrator will search in the field settings even though the behavior is actually being changed in code.
A practical rule: if the problem can be solved with field settings and clear messaging, do not start with PHP. If code is unavoidable, use only documented hooks or official snippets and test them on a copy of the form.
Video: Working with a Form That Has Limited Availability
Gravity Wiz has a focused video covering the product order form scenario with stock management. It is worth watching after you understand the difference between Simple and Advanced Inventory: the video helps you see the overall form setup flow for products and availability, but it does not replace troubleshooting for caching, payment statuses, or scoped resources.
Use the video as a visual reference for the intent "how to use Gravity Forms Inventory in an order form": watch where the field is configured, how the remaining quantity is defined, and how the form behaves after inventory is consumed. For more complex scenarios involving dates and multiple forms, return to the sections on Resources and Scoped Inventory.
Gravity Forms Inventory FAQ
Can I use Gravity Forms Inventory without a Product field?
Yes. The plugin supports choice-based fields, including Radio Buttons, Checkboxes, Drop Downs, Multi Select fields, and choice-based Product field variants. But each scenario should be tested: Product fields are more convenient for sales and quantity handling, while regular choice fields work well for roles, topics, slots, and options that do not involve pricing.
Why did the inventory number change in the editor?
According to Gravity Wiz documentation, the editor may display the currently available quantity by default rather than the original limit. That is normal for day-to-day monitoring, but it can be confusing when you restock or increase capacity. If you need to see the original limit, use the dashboard Screen Options or a documented snippet only if that behavior is truly necessary in the editor.
Can one shared quantity be used across multiple forms?
Yes. To do that, use Advanced Inventory and the same Resource in related fields or forms. For choice-based fields, make sure the values match. After setup, submit test entries from each form and confirm that the dashboard shows shared consumption correctly.
Is the plugin suitable for equipment rentals?
It can be, if the rental is expressed as selecting a resource by date or by a combination of fields. Scoped Inventory can track availability by field values. But for more complex rental workflows with deposits, returns, repairs, serial numbers, and warehouse integration, you may need a separate system or a custom integration.
What happens when an entry is deleted?
Inventory is entry-based. If an entry is deleted or changed so that the selected resource is no longer consumed, that quantity may become available again. For that reason, do not delete entries that should continue to hold a physical resource. Before cleaning up data, evaluate the impact on inventory.
Can I show remaining availability only to administrators or logged-in users?
In the basic settings, you can enable or disable available inventory display for a field. For more specific conditions, Gravity Wiz publishes snippets such as showing inventory only to logged-in users, but those changes are best handled by a developer and documented in the project notes.
Why does the form allow overbooking when payments are involved?
If the user submitted the form but the payment is not complete yet, the status may be Processing. Gravity Wiz notes in its FAQ that this status does not reduce the inventory count by default. There is a documented filter for temporary reservations, but it needs to be configured and tested as a developer-level solution.
Do I need to disable caching for the page with the form?
If inventory needs to show the current remaining quantity, the form page usually should be excluded from page cache or the caching setup should be tested very carefully for compatibility. Gravity Wiz documentation directly links incorrect availability and negative inventory symptoms to server-side or object caching. If the dashboard and the public page show different numbers, start your troubleshooting there.
When Gravity Forms Inventory Is the Right Choice
Gravity Forms Inventory is worth using when your resource naturally lives inside a Gravity Forms form: a ticket, seat, option, date, role, room, equipment item, or another limited selection. The plugin is especially strong when you want to go from field configuration to a clear public-facing result without building a separate application: enable Simple Inventory for a basic limit, move to Resources for shared inventory, add scopes for dates or combinations, and monitor availability through the dashboard.
Before launch, review your field map, caching, entries, payment statuses, and dashboard behavior. Do not roll out a complex shared or scoped setup without running an exhaustion test. If the form needs to behave like a real online store, compare the requirement against WooCommerce. If you only need to limit submissions, look at Limit Submissions. If you need to control dates, bring in Limit Dates as a related tool.
Once the basic logic is verified and you clearly understand how the resource is consumed and returned, you can download the ZIP archive and move on to installation on your site. Start with a copy of the form, document the chosen inventory model in the project notes, and test not only the successful submission path but also the rejection path when availability is fully exhausted.


