Fundraiser order form for school and club sales

Updated 2026-10-30

Sale season means order sheets going home in backpacks and coming back with smudged totals. I would rather every buyer use one link. They pick items, say which student they support and choose pickup. The organiser adds up one sheet.

Before the sale

Edit the item lines to your real products, from cookie dough to a jersey order or picture day packages. Decide the pickup day and set close_at to the order deadline. The form takes no payment, so decide how buyers pay you.

While orders come in

Buyers share the link with relatives and neighbours. A buyer's AI might ask: "Which student are you buying from?" Then "How many of each item do you want?" Then "How will you collect your order?" It shows the answers and sends only after a yes. See agent-fillable forms.

After the deadline

Download the CSV and add up each quantity column for your supplier. Filter by seller for prizes and by pickup choice for packing lists. Browse forms for schools, forms for sports clubs and forms for nonprofits. Recruit packers with a volunteer application form, and organise treats for pickup day with a team snack schedule.

Questions

Does the form collect payment?

No. It records the order and how the buyer plans to pay. Collect money at pickup or through your school's own system, and mark orders as paid in your sheet.

How do I total orders by product?

Download the CSV and sum each quantity column. Sort by how_to_receive to build packing lists. The seller_name column shows which student sold the most.

Can I use it for a jersey order or picture day?

Yes. Swap the item lines for sizes or packages and keep the buyer and pickup questions. Use a separate form for each product line so totals stay clean.

Try the form

Live demo ยท nothing is saved

Order from our fundraiser

Thank you for supporting us. Tell us what you would like and who you are buying from. We take no payment on this form.

Cookie dough flavour
How would you like to receive your order? (required)
How will you pay the organiser?

Or paste the JSON

Give this to your AI. It needs the AI Form API MCP server or an API key. It makes the form and sends you the link.

text
Create this form with the AI Form API create_form tool (or POST https://aiformapi.com/v1/forms with my API key). Then reply with the public_url.

{
  "title": "Order from our fundraiser",
  "description": "Thank you for supporting us. Tell us what you would like and who you are buying from. We take no payment on this form.",
  "fields": [
    {
      "id": "buyer_name",
      "label": "Your name",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "buyer_email",
      "label": "Your email",
      "type": "email",
      "required": true
    },
    {
      "id": "buyer_phone",
      "label": "Your phone",
      "type": "phone"
    },
    {
      "id": "seller_name",
      "label": "Which student or team member are you buying from?",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "seller_class_or_team",
      "label": "Their class or team",
      "type": "short_text",
      "max_length": 100
    },
    {
      "id": "qty_cookie_dough",
      "label": "Tubs of cookie dough",
      "type": "number",
      "min": 0,
      "max": 50
    },
    {
      "id": "dough_flavour",
      "label": "Cookie dough flavour",
      "type": "single_choice",
      "options": [
        "Chocolate chip",
        "Sugar cookie",
        "Oatmeal raisin"
      ]
    },
    {
      "id": "qty_gift_wrap",
      "label": "Rolls of gift wrap",
      "type": "number",
      "min": 0,
      "max": 50
    },
    {
      "id": "qty_candles",
      "label": "Scented candles",
      "type": "number",
      "min": 0,
      "max": 50
    },
    {
      "id": "food_allergy_note",
      "label": "Allergy note for food items",
      "type": "short_text",
      "max_length": 250
    },
    {
      "id": "how_to_receive",
      "label": "How would you like to receive your order?",
      "type": "single_choice",
      "required": true,
      "options": [
        "Pick up at the school office",
        "Delivered by the student",
        "Pick up on order day"
      ]
    },
    {
      "id": "delivery_details",
      "label": "Where should the student deliver it?",
      "type": "long_text",
      "max_length": 400
    },
    {
      "id": "planned_payment",
      "label": "How will you pay the organiser?",
      "type": "single_choice",
      "options": [
        "Cash at pick-up",
        "Cheque at pick-up",
        "The school's own payment page"
      ]
    },
    {
      "id": "order_notes",
      "label": "Anything else we should know",
      "type": "long_text",
      "max_length": 500
    }
  ]
}

Or call the API

bash
curl -X POST https://aiformapi.com/v1/forms \
  -H "Authorization: Bearer $AIFORMAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{"title":"Order from our fundraiser","description":"Thank you for supporting us. Tell us what you would like and who you are buying from. We take no payment on this form.","fields":[{"id":"buyer_name","label":"Your name","type":"short_text","required":true,"max_length":150},{"id":"buyer_email","label":"Your email","type":"email","required":true},{"id":"buyer_phone","label":"Your phone","type":"phone"},{"id":"seller_name","label":"Which student or team member are you buying from?","type":"short_text","required":true,"max_length":150},{"id":"seller_class_or_team","label":"Their class or team","type":"short_text","max_length":100},{"id":"qty_cookie_dough","label":"Tubs of cookie dough","type":"number","min":0,"max":50},{"id":"dough_flavour","label":"Cookie dough flavour","type":"single_choice","options":["Chocolate chip","Sugar cookie","Oatmeal raisin"]},{"id":"qty_gift_wrap","label":"Rolls of gift wrap","type":"number","min":0,"max":50},{"id":"qty_candles","label":"Scented candles","type":"number","min":0,"max":50},{"id":"food_allergy_note","label":"Allergy note for food items","type":"short_text","max_length":250},{"id":"how_to_receive","label":"How would you like to receive your order?","type":"single_choice","required":true,"options":["Pick up at the school office","Delivered by the student","Pick up on order day"]},{"id":"delivery_details","label":"Where should the student deliver it?","type":"long_text","max_length":400},{"id":"planned_payment","label":"How will you pay the organiser?","type":"single_choice","options":["Cash at pick-up","Cheque at pick-up","The school'\''s own payment page"]},{"id":"order_notes","label":"Anything else we should know","type":"long_text","max_length":500}]}'

JSON definition

json
{
  "title": "Order from our fundraiser",
  "description": "Thank you for supporting us. Tell us what you would like and who you are buying from. We take no payment on this form.",
  "fields": [
    {
      "id": "buyer_name",
      "label": "Your name",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "buyer_email",
      "label": "Your email",
      "type": "email",
      "required": true
    },
    {
      "id": "buyer_phone",
      "label": "Your phone",
      "type": "phone"
    },
    {
      "id": "seller_name",
      "label": "Which student or team member are you buying from?",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "seller_class_or_team",
      "label": "Their class or team",
      "type": "short_text",
      "max_length": 100
    },
    {
      "id": "qty_cookie_dough",
      "label": "Tubs of cookie dough",
      "type": "number",
      "min": 0,
      "max": 50
    },
    {
      "id": "dough_flavour",
      "label": "Cookie dough flavour",
      "type": "single_choice",
      "options": [
        "Chocolate chip",
        "Sugar cookie",
        "Oatmeal raisin"
      ]
    },
    {
      "id": "qty_gift_wrap",
      "label": "Rolls of gift wrap",
      "type": "number",
      "min": 0,
      "max": 50
    },
    {
      "id": "qty_candles",
      "label": "Scented candles",
      "type": "number",
      "min": 0,
      "max": 50
    },
    {
      "id": "food_allergy_note",
      "label": "Allergy note for food items",
      "type": "short_text",
      "max_length": 250
    },
    {
      "id": "how_to_receive",
      "label": "How would you like to receive your order?",
      "type": "single_choice",
      "required": true,
      "options": [
        "Pick up at the school office",
        "Delivered by the student",
        "Pick up on order day"
      ]
    },
    {
      "id": "delivery_details",
      "label": "Where should the student deliver it?",
      "type": "long_text",
      "max_length": 400
    },
    {
      "id": "planned_payment",
      "label": "How will you pay the organiser?",
      "type": "single_choice",
      "options": [
        "Cash at pick-up",
        "Cheque at pick-up",
        "The school's own payment page"
      ]
    },
    {
      "id": "order_notes",
      "label": "Anything else we should know",
      "type": "long_text",
      "max_length": 500
    }
  ]
}