Free tool

Order form generator

Formgong team ·

The sample is an order request: product, quantity, who is ordering, and where it should ship. You price it and take payment after the message arrives.

Short answer: An order form generator collects a product, a quantity and a shipping address. This page loads that template as HTML you can copy. It does not add tax and it does not charge a card. Put a price in the option label if buyers should see one. Add a Formgong key and the order can arrive in Telegram at once.

Order form template

The product list is Starter kit, Custom bundle and Wholesale. Replace those words with your real products. You can put a price in the label, such as “Starter kit, 25 USD”. The value that arrives is the label text, so write the name you want to read in Telegram.

Quantity is type="number". Set a minimum in your page if you want to block zero. The sample does not set min for you.

Live preview

Preview only. Nothing is sent from this page.

Place an order

Copy the code

Replace fk_your_access_key with your own Formgong access key. The placeholder does not accept submissions. The honeypot field is named botcheck. Leave it empty.

The HTML form posts in the browser. React and Vue show an error on the page if the request fails. These class names need Tailwind on your site. This page does not load Tailwind. Bootstrap 5 class names need Bootstrap on your site. This page does not load Bootstrap.

HTML
<style>
#fg-fk_your_access_key{box-sizing:border-box;max-width:520px;width:100%;padding:28px;border:1px solid #dbe2ea;border-radius:8px;background:#fff;color:#0f172a;font:16px/1.5 system-ui,sans-serif;display:grid;gap:16px}#fg-fk_your_access_key *{box-sizing:border-box}#fg-fk_your_access_key h2{font-size:24px;line-height:1.3;margin:0 0 4px;color:#0f172a}#fg-fk_your_access_key label{display:grid;gap:6px;font-weight:500}#fg-fk_your_access_key input,#fg-fk_your_access_key textarea,#fg-fk_your_access_key select{width:100%;font:inherit;min-height:44px;border:1px solid #94a3b8;border-radius:8px;padding:10px 12px;background:#fff;color:#0f172a}#fg-fk_your_access_key textarea{min-height:96px;resize:vertical}#fg-fk_your_access_key .fg-reminder-consent{display:flex;align-items:flex-start;gap:10px;font-weight:400}#fg-fk_your_access_key input[type=checkbox]{width:20px;min-height:20px;flex-shrink:0;margin:2px 0}#fg-fk_your_access_key button{font:inherit;font-weight:600;min-height:48px;padding:12px 20px;border:0;border-radius:8px;background:#4338ca;color:#fff;cursor:pointer}#fg-fk_your_access_key :focus-visible{outline:3px solid #4338ca;outline-offset:3px}#fg-fk_your_access_key button:disabled{cursor:wait;opacity:.7}#fg-fk_your_access_key p{margin:0}#fg-fk_your_access_key fieldset{border:0;padding:0;margin:0;display:grid;gap:8px;min-width:0}#fg-fk_your_access_key legend{font-weight:500;padding:0;margin-bottom:6px}#fg-fk_your_access_key .fg-choice{display:flex;align-items:center;gap:10px;font-weight:400}#fg-fk_your_access_key input[type=radio]{width:20px;min-height:20px;flex-shrink:0;margin:0}#fg-fk_your_access_key .fg-trap{position:absolute;inset-inline-start:0;top:0;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
</style>
<form id="fg-fk_your_access_key" action="https://formgong.com/submit" method="POST">
  <h2>Place an order</h2>
  <input type="hidden" name="access_key" value="fk_your_access_key">
  <input type="hidden" name="_lang" value="en">
  <label>Name * <input type="text" name="name" required autocomplete="name"></label>
  <label>Email * <input type="email" name="email" required autocomplete="email"></label>
  <label>Phone <input type="tel" name="phone" autocomplete="tel"></label>
  <label>Product * <select name="product" required><option value="">—</option><option value="Starter kit">Starter kit</option><option value="Custom bundle">Custom bundle</option><option value="Wholesale">Wholesale</option></select></label>
  <label>Quantity * <input type="number" name="quantity" required></label>
  <label>Shipping address * <textarea name="shipping_address" required></textarea></label>
  <label>Order notes <textarea name="notes"></textarea></label>
  
  <div class="fg-trap" aria-hidden="true"><label>Leave this field empty<input name="botcheck" tabindex="-1" autocomplete="off"></label></div>
  
  
  <button type="submit">Send order</button>
</form>

Make it live free

Create a free form, then open Connect on that form in this browser. If it still has the default name, email and message fields, they are replaced with this form.

Order form templates, checked 11 October 2026
This pagePoper order form generator
TotalYou add it, or leave it offLive total, tax and currency
PaymentNone. No card fieldsCode you host yourself
DeliveryTelegram and email via FormgongThe generated code has no inbox
AccountNone to copyNone, on their page

Fields an order form needs

  • Who. Name and email are required. Phone is optional, for a courier question.
  • What. One product select. For two products, add a second select in the manual builder, or ask them to send a second order. This template is one line, not a cart.
  • How many. A number field. You multiply by the price. The form does not.
  • Where. Shipping address is a textarea. Ask for street, city, postal code and country in the placeholder if you add one later.
  • Notes. Gift wrap, a delivery window, or a size. Optional.

A shop with a cart, stock and card checkout should use that shop. Shopify and a payment link win there. This template is for a baker, a small wholesale list, or a maker who takes a few orders by hand.

A running total, if you want one

Poper’s order form generator writes a live total, tax and currency. This page does not, because a wrong total on a public form is worse than no total. You can add a total yourself. Give each option a data-price and read it when the quantity changes. The script below is an example. It is not loaded on this page.

Optional total script
const form = document.querySelector("#order-form");
const total = form.querySelector("[data-total]");
function paint() {
  const option = form.querySelector("[name=product]").selectedOptions[0];
  const price = Number(option?.dataset.price || 0);
  const qty = Number(form.querySelector("[name=quantity]").value || 0);
  total.textContent = (price * qty).toFixed(2);
}
form.addEventListener("input", paint);

Put the currency in the page next to the total so the buyer knows it is not a charge. Formgong still receives the product name and the quantity, not a card number. Do not add card fields.

Order forms this template fits

  • A weekend bakery. List the cakes. Quantity is how many. Notes are the inscription. You reply with a payment link.
  • A wholesale request. The Wholesale option plus the address is enough for a first email. You send a real invoice from your books, not from this form.
  • A custom bundle. The buyer picks Custom bundle and explains it in the notes. You quote a price. The form did not invent one.

Free limits, email and storage

The order form template is free to copy. An order is delivered only after you replace the placeholder key.

Copying the code needs no account. AI generations are limited to 5 an hour and 10 a day for each network, plus 100 a day for the whole site. When a limit is hit, use “Build it yourself, without AI”. That path does not call the model.

On the free plan, Telegram is instant and email is sent for every submission. The free plan is 300 submissions a month. Auto-reply is not on the free plan. Submission data is stored in the EU. Support is Formgong at support@formgong.com.

Your description is sent to the model so it can choose fields. It is not stored. Do not paste passwords, card numbers or other secrets.

Questions

What is an order form generator?

It builds a form for a product, a quantity and a shipping address, and gives you the HTML. This page loads that template. It does not run a shop.

Is there a free order form template?

Yes. The HTML on this page is the template. Copy it, change the product names, and replace fk_your_access_key. No account is required to copy.

Can the form charge a card?

No. Do not collect card numbers in these fields. Send a payment link after you accept the order, or use a shop that handles cards.

Will the total be calculated?

Not in the default copy. Option labels can show a price. An optional script on this page shows one way to multiply price by quantity in the browser. Formgong stores the fields you submit, not a computed total.

Where does the order arrive?

In the Formgong inbox after you add a real key. On the free plan, Telegram is instant and email is sent for every order.

Sources

Checked on 11.10.2026 against these public pages: FormBackend order form generator, Poper order form generator, splitforms order form template, MDN: input type=number.

← Formgong