Ask Question / Quote
The Ask Question / Quote app adds an enquiry button to your product pages so customers can ask a question or request a custom price quote without going through checkout. The form can appear as a popup or as an inline accordion, and every request that comes in is stored in your admin so you can track it, filter it, and mark it as replied — no digging through your inbox required.
Requirements
- with PHP 8.3.0 +
- Joomla! 6.x
- J2Commerce 6.x
Purchase and Download
Step 1: Go to our J2Commerce website -> Apps
Step 2: Locate the Ask Question / Quote App -> click View Details -> Add to cart -> Checkout.
Step 3: Go to your My Downloads under your profile button at the top right corner and search for the app. Click Available Versions -> View Files -> Download Now
Install the App
You can install this Ask Question / Quote App using the Joomla installer. The following steps help you with a successful installation.
In the Joomla admin, go to System -> Install -> Extensions
Upload the plugin ZIP file or use the Install from URL option.
Enable the App
Once you have installed the App, you will need to enable it. There are two ways you can access the extension.
Option A: Go to the J2Commerce icon at the top right corner -> Apps
Option B: Go to Components on the left sidebar -> J2Commerce -> Apps
Look for Ask Question / Quote, click the X, and it will turn into a green checkmark. It is now enabled and ready for setup.
Configure the App
Once you click on the Ask Question / Quote Title next to the green checkmark, you are ready to start setting up the parameters.
Click the Toggle Inline Help button in the toolbar and the app will show a description below each field as you configure it.
Basic Settings tab
| Setting | Description | Default |
|---|---|---|
| Enable For All Products | When set to Yes, the Ask Quote button appears on every product regardless of per-product settings. When No, you turn it on per product (see Per-Product Settings). | No |
| Hide Add To Cart | Hides the Add to Cart button on every product. Handy for a quote-only store. | No |
| Hide Cart On Zero Price | Hides the Add to Cart button automatically for any product with a price of zero. | No |
| Form Style | Popup opens the form in a modal overlay. Accordion expands the form inline on the page. | Popup |
| Popup Size | Only shown when Form Style is Popup. Choose Small, Normal, or Large. Normal uses your template's default width. | Normal |
| Button Position | Where the trigger appears: Before Add to Cart, After Add to Cart, or Before Price. | Before Add to Cart |
| Show In | Product View Only, Category View Only, or Both Views. | Product View Only |
| Display As | Render the trigger as a styled Button or a plain text Link. | Button |
| Button Width | Only shown when Display As is Button. Inline keeps its natural width; Full Width stretches it across the column, so it can stand in for the Add to Cart button. | Inline |
| Button Text | The text on the trigger. Leave blank to use the default, "Ask Quote". | Ask Quote |
| Subtemplate | Choose Auto to match your site's active template family, or force Bootstrap 5 / UIkit. | Auto |
| Require Terms | When Yes, a mandatory checkbox is added and the customer must accept it before submitting. | No |
| Captcha | Choose an enabled Joomla captcha plugin to protect the quote form from spam. Leave Disabled if you have none set up. | Disabled |
| Empty Cart On Send | When Yes, the customer's cart is cleared and they are redirected to the home page after a successful submission. | No |
| Debug Mode | Enables detailed logging to the Joomla log file and browser console. Leave No on a live site. | No |
The Captcha field lists whatever Joomla captcha plugins you already have enabled site-wide (for example reCAPTCHA). Install and enable a captcha plugin under System -> Manage -> Plugins first, then select it here.
Email Settings tab
| Setting | Description | Default |
|---|---|---|
| Send To | Admin And Customer, Admin Only, or Customer Only — who receives the notification email. | Admin And Customer |
| Submissions Per Hour | How many quote requests one visitor may send in an hour. This is light friction only, because it counts per browser session. Set to 0 to remove it. | 5 |
| Hourly Send Limit | The most quote requests your whole store will send in any one hour, counted from what has actually been sent. No visitor can reset this one, so it is the setting that protects your sending reputation. Raise it if a busy store hits it; set to 0 to remove it. | 100 |
| Additional Admin Notification Emails | Every J2Commerce admin address already receives the admin notification automatically, so they do not need listing here. Use this field for anyone else who should be notified — a sales manager, for example — but is not a store admin. Separate multiple addresses with commas. | (empty) |
The quote form is public, so anyone can submit it. Submissions Per Hour only slows down a person clicking Send repeatedly in one browser — it does not stop an automated script, which can start a fresh session at any time. The two settings that actually protect your store are Hourly Send Limit above and a Captcha on the Basic Settings tab. Turn on a captcha before you go live.
Email Content: two buttons add the bundled customer and admin quote-request templates under the Ask Question / Quote email type — Joomla Editor Version or Visual Editor Version. Existing templates keep their content and are simply converted to the flavor you pick.
Email Templates: a toolbar button opens the Email Templates manager filtered to this app's templates, where you write the actual subject and body.
This app does not have its own subject/body fields. All email content — subject line, body, and which short codes are used — is written in J2Commerce -> Setup -> Email Templates, under the Ask Question / Quote email type. Click one of the Email Content buttons first if you have not created these templates yet, then use the Email Templates button to edit them.
Form Fields tab
Manage Form Fields opens the J2Commerce -> Custom Fields manager, where you choose which fields appear on the quote request form. Create or edit a custom field there and enable its Product Quote Form toggle to add it to the quote form.
Fieldsets groups those fields into named sections on the form. Click Add Custom Fieldset to create a fieldset:
| Field | Description |
|---|---|
| Fieldset Name | Required. The heading shown above this group of fields on the form. |
| Fieldset Icon | Optional. An icon class, for example fa-solid fa-user. |
Once you have at least one fieldset, open the Form Builder screen (from the dashboard's Form menu) to assign each custom field to a fieldset, mark it required, and drag fields into the order you want them to appear.
Admin Dashboard
Go to J2Commerce -> Apps -> Ask Question / Quote (click the app name), or open the Quote Requests item under the J2Commerce menu, to see the dashboard. It covers whatever date range you pick — use the Last 1 Day / 7 Days / 30 Days / 90 Days presets or set your own dates and click Refresh.
Four cards summarize the selected period:
- Total Requests — how many quote requests came in, with the change from the prior period.
- Requests Today
- Unique Products Quoted
- Reply Rate — the percentage of requests you have marked Replied, with the change shown in percentage points.
Two chart panels sit below the cards:
- Submissions Per Day and Current Status (which plots Received, Replied, and Send Failed requests per day) share a tabbed panel.
- Most Popular Times — a bar chart of requests by hour of day — sits in its own panel.
Three cards round out the dashboard: Hottest Products (most-quoted products), Recent Requests (click a name to open the submission), and Top Requester Countries.
Submissions Manager
Open Submissions from the dashboard's Form menu to see every quote request that has come in.
The list is searchable (by name, email, company, or product), filterable by status, product, and date range, and every column header sorts the list. Columns shown: ID, Customer, Created, Email, Company, Product, Status.
Click a customer's name or the Created date to open the full submission, including any custom fields that do not have their own column.
Status has three states:
| Status | What it means |
|---|---|
| Received | The request has arrived and is waiting on you. |
| Replied | You set this by hand once you have answered the customer. |
| Send Failed | The notification email could not be delivered. This is reported automatically — you never choose it. |
Change a single row's status directly in the list with the dropdown and Apply button. To change several at once, tick their checkboxes and click Batch in the toolbar. To permanently remove old submissions, tick them and click Trash in the toolbar — this cannot be undone.
Per-Product Settings
When Enable For All Products is set to No, turn the quote form on per product instead:
- Go to J2Commerce -> Catalog -> Products and open a product.
- Go to the J2Commerce tab -> Apps tab -> Ask Question / Quote section.
- Configure the fields:
| Field | Description |
|---|---|
| Enable Quote Request | Shows the Ask Quote form trigger on this specific product. |
| Hide Add To Cart | Hides the Add to Cart button on this product's page. |
| Hide Price | Hides the price display on this product's page. |
Click Save or Save & Close.
Per-product settings work alongside the global settings. Hide Add To Cart and Hide Cart On Zero Price in the app's own Basic Settings tab still apply even when the per-product toggle is off.
Email Short Codes
Use these short codes in your templates under J2Commerce -> Setup -> Email Templates -> Ask Question / Quote. They are replaced with real values when each email is sent.
| Short code | Replaced with |
|---|---|
[FIRST_NAME] | Customer first name |
[LAST_NAME] | Customer last name |
[EMAIL] | Customer email address |
[PHONE_1] | Customer primary phone |
[PHONE_2] | Customer secondary phone |
[COMPANY] | Customer company name |
[TAX_NUMBER] | Customer tax / VAT number |
[ADDRESS_1] | Address line 1 |
[ADDRESS_2] | Address line 2 |
[CITY] | City |
[ZIP] | Zip / postal code |
[COUNTRY_NAME] | Country name |
[ZONE_NAME] | State / zone name |
[PRODUCT_NAME] | Product name |
[PRODUCT_SKU] | Product SKU |
[PRODUCT_PRICE] | Product price, formatted with your store currency |
[PRODUCT_URL] | A link to the product page |
[QUOTE_FIELDS] | A table of every field the customer filled in on the form |
[SITENAME] | Your Joomla site name |
For a custom field you added to the quote form, use that field's own column name as the short code.
How It Works
- J2Commerce checks whether the Ask Quote button should appear — global setting or per-product toggle, plus the Show In and Button Position settings.
- The customer clicks the trigger. Depending on Form Style, a popup opens or the accordion expands inline.
- The customer fills in the fields defined on the Form Fields tab, accepts the terms if required, and completes the captcha if one is configured.
- The form submits without reloading the page.
- The request is saved and appears in the Submissions Manager with a status of Received.
- Notification emails go out per the Send To setting, using the templates you authored in the Email Templates manager. If a send fails, the submission's status changes to Send Failed automatically.
- On success, the customer sees a confirmation message. On a validation error, field-level messages appear without closing the form.
Tips
- Quote-only store — set Enable For All Products to Yes, Hide Add To Cart to Yes, and leave the price visible so shoppers know the starting point before asking for a quote.
- Replace the price with a call to action — pair Button Position: Before Price with the per-product Hide Price toggle on items where you would rather not show a public price.
- Turn on a captcha before you go live — it is the single most effective thing you can do to keep automated submissions off a public form. Pick any enabled Joomla captcha plugin on the Basic Settings tab.
- Set the Hourly Send Limit to suit your volume — it is a safety net for your mail reputation, not a day-to-day limit. Pick a number comfortably above your busiest real hour.
- Watch Send Failed, not just Received — a growing pile of Send Failed submissions on the dashboard's Current Status chart usually means a mail server problem, not a form problem.
- Write your templates before you go live — use the Email Content buttons to seed the bundled templates, then edit them in the Email Templates manager so both you and your customers get a properly branded email.
Troubleshooting
The trigger button does not appear on a product page
Cause: The app is enabled globally but the product's own Enable Quote Request toggle is off, or Show In does not match the page you are viewing.
Solution:
- Go to J2Commerce -> Apps -> Ask Question / Quote and check Enable For All Products. If it is No, open the product and turn on Enable Quote Request under the Apps tab.
- Check Show In — if it is Product View Only, the button will not appear on category pages, and vice versa.
- Confirm Button Position matches how your template renders the product page; some templates do not fire every position event.
Customers see "Quote requests are not available right now"
Cause: One of three things — the product is not eligible for quotes, the visitor has hit Submissions Per Hour, or the store has hit its Hourly Send Limit. The message is deliberately the same for all three so the form cannot be used to probe your catalog.
Solution:
- Check the product first: open it, go to the Apps tab, and confirm Enable Quote Request is Yes — or that Enable For All Products is Yes in the app settings.
- Confirm the product itself is published and visible to the visitor. An unpublished product, or one in a category the visitor's group cannot see, will always decline.
- If the product is fine, go to J2Commerce -> Apps -> Ask Question / Quote -> Email Settings and raise Submissions Per Hour or Hourly Send Limit.
- If your store is legitimately busy and keeps hitting the ceiling, raise Hourly Send Limit rather than removing it.
A submission shows "Send Failed"
Cause: Joomla could not deliver the notification email for that request.
Solution:
- Go to System -> Global Configuration -> Server -> Mail Settings and click Send Test Mail.
- Enable Debug Mode in the app's Basic Settings and submit a test enquiry, then check the Joomla system log for the failure detail.
- Once mail is working again, existing Send Failed rows will not resend automatically — reply to the customer directly and mark the submission Replied.
No enquiry email is received at all
Cause: Mail is not configured, or the emails are landing in spam.
Solution:
- Go to System -> Global Configuration -> Server -> Mail Settings and confirm mail is set up correctly.
- Check the submission in the Submissions Manager — if its status is Send Failed, see the previous section.
- Check your spam folder; enquiry emails can be filtered by aggressive spam rules.
- If you added a Additional Admin Notification Emails address, double check it is spelled correctly and comma-separated.
Captcha does not appear on the form
Cause: No captcha plugin is selected, or the selected plugin is not enabled.
Solution:
- Go to System -> Manage -> Plugins and confirm a captcha plugin (for example reCAPTCHA) is installed and enabled, with its own site key/secret configured.
- Go to J2Commerce -> Apps -> Ask Question / Quote -> Basic Settings and select it under Captcha.
The dashboard shows a storage warning
Cause: The app's submission storage table is missing — usually a site that had the plugin installed before an update added the dashboard and submissions manager.
Solution:
- Reinstall or update the Ask Question / Quote app from the ZIP file so its install/update SQL can run.
- Reload the dashboard.