cartkept

Cartkept™ Quote Form

In review

No quote request gets lost

A request-a-quote form for your Shopify store. Each request is saved before any email is sent, so a failed email never loses one, and you are told when an email cannot be delivered.

  • Saved before any email is sent
  • 3 email attempts for every request
  • You are told when an email cannot be delivered
Email me when it's live

Submitted to Shopify App Review on 8 October 2026. Not in the App Store yet.

Request a quote
Your nameDana Reyes
Emaildana@fieldhouse.example
CompanyFieldhouse Cafe
Quantity48
MessageSoy candles in the 8 oz size, delivered to Leeds by the 14th.
Send request

Saved in the app first, then emailed. Email status: sent

A sample request for the fictional store Maple & Wick, as the shopper sees it. The wording is the form's own.
Scope requested
write_draft_orders only
Email attempts per request
3: now, +15 min, +60 min
Notification emails per store
200 per day
Message length
2,000 characters

The problem it fixes

A quote form usually fails without a sound: the email goes to spam or the sender breaks, and the request is gone. You cannot tell a quiet week from a broken form.

  1. 01

    A saved copy of every request, before any email

    The request is written to the app first and emailed second. If the email fails, the request is still in your Requests list, with its name, email and items.

    Store first, then email (app/lib/proxy.ts)

  2. 02

    You see which requests were emailed

    Each request shows its email status: Waiting, Sent or Failed. Press Resend email on any of them. The reply goes straight to the person who asked.

    Per-request delivery status and a Resend email button

  3. 03

    A warning when something is wrong

    A failed email is retried after 15 and 60 minutes. If it still fails, you get one alert. Another alert comes if requests stop for far longer than your store's usual gap.

    Delivery alert and zero-request alert

  4. 04

    From request to draft order in one click

    Press Create draft order on a request. Products from the request become real lines in the draft order. A general enquiry becomes a custom item at 0.00 for you to price.

    Draft order button, write_draft_orders scope only

  5. 05

    The form keeps your prices visible

    The form does not hide prices. It sits on your product page and your cart. It still works if the shopper has JavaScript turned off, and it carries no Cartkept branding.

    A plain HTML form posted to an app proxy

How the request-a-quote form works

  1. 1

    Add the form to your theme

    The Home page of the app has a three-step setup guide with a link into your theme editor. Add the form block to your product page, your cart, or both.

  2. 2

    Choose the address and the fields

    In Settings, type the address that should receive requests. Phone, company and message can each be hidden, optional or required. Name and email are always asked.

  3. 3

    Send yourself a test request

    The Home page has a Send test request button. Check that the request shows in Requests and that the email arrives.

  4. 4

    Answer from your inbox

    Requests arrive by email with Reply-To set to the shopper. Open Requests in the app to resend an email or create a draft order.

What it watches for you

  • Every request is counted as stored

    The shopper sees the thank-you only after the request is saved. A failure of the email never turns into an error for the shopper.

  • Failed emails are retried, then you are told

    Three attempts: at once, after 15 minutes and after 60 minutes. Then the request is marked failed and you get one alert email, not a stream of them.

  • Silence is watched against your normal pace

    Once your store has at least 8 requests over at least 7 days, a gap far longer than your usual one triggers an alert, and a second email when requests return. Smaller stores get no such alert.

  • The Home page shows the current state

    A health card shows the last request, its delivery status and any problem, such as no recipient address, a failed email or a quiet period.

Limits and your data

Scope requested
write_draft_orders only
Email attempts per request
3: now, +15 min, +60 min
Notification emails per store
200 per day
Message length
2,000 characters
Requests kept
3, 6, 12 or 24 months
Requests listed in the app
The latest 50
Not stored
IP address, browser, page URL, cookies
Stored about the shopper
Name, email, and any fields you switch on
If you uninstall
On uninstall the app stops sending emails for your store at once. Saved requests are deleted when Shopify sends its shop-erasure notice, about 48 hours later. You can also delete any single request in the app.
The Free plan
One form on your product page and cart. Every request is saved and listed with its email status. Resend email, the alerts and the draft order button are included. Notification emails are limited to 200 per store per day.A paid plan is planned. It does not exist yet, and Free stays.

More detail: Privacy and Terms.

Is it for you?

The job it does

Let shoppers ask for a quote on my store, and be sure that every request reaches me and none gets lost.

A good fit if

  • Stores that take quote requests for custom, bulk or made-to-order items
  • Owners who answer requests by email and need to know none were missed
  • Stores that want a request turned into a draft order in one click

Not the right app if

  • Stores that need a form that hides prices or needs a login to see them
  • Stores that need quotes as documents or customer accounts; this app makes neither
  • Stores that expect a reply to the shopper sent for them; you answer from your inbox

Why not do it by hand

By hand, or with a plain contact form, a lost request looks the same as a quiet week. This keeps a record of every request, shows which emails went out, retries the ones that did not, and tells you when the flow stops.

Why it will be worth paying for

A paid plan is planned for the extras that save hand work, such as forwarding to more than one address. Free stays. Paid features do not exist yet and are not part of what Free does today.

Last updated 8 October 2026

Changelog

  1. First release, in Shopify App Review

    New

    • A quote form for your product pages and your cart, added from the theme editor with no code.
    • Every request is saved in the app before it is emailed to you, and each one shows whether the email was sent.
    • If an email fails, the app tries again, then emails you once, and once more when it recovers.
    • Resend a request's email, or turn a request into a draft order in one click.
    • Choose which of phone, company and message the form asks for, and how long requests are kept.
    • The form matches your theme's colours and fonts, and still works without JavaScript.

Every product's changelog

Questions before you install

What happens to a quote request if the email fails?

The request is already saved in the app and stays in Requests, marked Waiting, then Failed. The app retries after 15 and 60 minutes, and alerts you once if all three attempts fail. You can press Resend email at any time.

Does sent mean the email reached my inbox?

No. Sent means our email provider accepted the message. We do not yet see a mailbox that bounces it later. That is why every request is also kept in the app, where you can always see it.

What do you store about the people who fill in the form?

Their name and email, plus phone, company and message if you switched those on, the items they asked about, and delivery bookkeeping. We do not store their IP address, browser, page URL or cookies. Requests are deleted after 3, 6, 12 or 24 months, as you choose. The default is 12.

In reviewSince 8 October 2026

No quote request gets lost

Submitted to Shopify App Review on 8 October 2026. Not in the App Store yet.

Email me when it's live

Questions first? Write to hello@cartkept.com. We reply within one business day.