🔥 Upcoming Pickup Days
Everything on the smokers, by day — fundraisers and events combined against the daily ceiling.
All Fundraisers
Click any column header to sort · click a fundraiser to open it.
Events — Direct Orders
2 Men and a Pig’s own customer sales. Manage them on the Orders tab — the storefront lives at orders.2menpig.com.
📅 Google Calendar Sync
Subscribe once and every approved fundraiser's pickup days (and order cutoffs) appear on your Google Calendar automatically — with org name, contact info, and details. In Google Calendar: Other calendars → + → From URL → paste this link:
Keep this link private — anyone with it can read the schedule. Google refreshes subscribed calendars every few hours. For instant adds, use the GCal buttons on each pickup day.
Fundraisers
Orders — Events
2 Men and a Pig’s own sales — 4th of July, Labor Day, and the like. No organization, no students: the money is ours. Every order still lands on the same Cook Sheet and daily capacity as fundraisers. Click an event to open it.
Edit order
Items subtotal $0.00 — the saved total adds tax, worked out on the server.
Event Details
Pickup Days
Products & Event Pricing
Tick what this event sells and set its price — the master catalog price is the starting point.
Catering
Coming soon 🍖
Catering is the third leg of the app — quotes, bookings, dates, and headcounts, all sharing the same product catalog and counting against the same smokers as fundraisers and events. Tell Claude how your catering process works and this tab comes to life.
Rentals
Rental requests from rentals.2menpig.com. Work them left to right: New → Contacted → Quoted → Approved. Items, renters and tablet checkout come next.
| Event | Who | Feeding | Equipment / Package | Logistics | Status | Quote | |
|---|---|---|---|---|---|---|---|
| Loading… | |||||||
📦 Pickup Day Counts
By Product
| Product | Qty | Sales | Cost | Profit |
|---|
🔥 Cooking by Pickup Day
2MP only — production quantities by product.
Student Sales
Click any column header to sort.
📢 Team Join Code:
The no-printing way to hand out 600 codes: the director shares THIS one code
(Remind, GroupMe, band app, whiteboard). Each member goes to ,
enters it, picks their own name, and gets their personal login code — one claim per name.
Wrong person claimed a name? Reset it below.
Add Team Members
Standard format — ask organizations for a CSV with these exact columns:
First Name, Last Name, Preferred Name, Email, Phone
(download the template). Preferred Name is optional — when
filled in, it's the name shown everywhere. Or paste below, one per line:
First Last, email, phone. Login codes generate automatically either way.
Products for this fundraiser
Each fundraiser gets its own price and cost — master list changes never touch a running fundraiser. "Add'l price" is optional multi-item pricing: first one at full price, each additional at the discount (leave blank for no discount). Profit/unit updates as you type.
Stock is the total you have — 500 ducks, 40 cases — and it stays where you set it. Sold and Left beside it do the counting: 500 stock, 1 sold, 499 left, and 499 is what a supporter sees. Leave Stock blank for unlimited. It is counted across the whole fundraiser, and it works alongside a pickup day's Max meat: whichever runs out first is the one supporters hit. 150 in stock with 300 a day of capacity sells 150; 1,000 in stock with 300 a day sells 300 that day and carries on the next.
| Sell | Product | Price $ | Add'l $ | Cost $ | Profit/unit | Stock | Sold | Left |
|---|
💛 Optional Extra Contribution
Supporters can add a few dollars on top of their order — 100% of it goes to the organization. It shows on the order page as its own “100% OPTIONAL” card. Some groups would rather just sell their product and not ask, which is what this is for.
📋 General Information
The name, dates, and description supporters see. Every card on this tab saves together with the button at the very bottom.
When the cutoff passes, the order form closes automatically — no clicking needed. Leave blank to close orders manually.
🔔 Waiting List
People who landed on the public page before it opened, or after it closed, and asked to be told. The Opening list is emailed automatically the moment this fundraiser goes ACTIVE — the button below is only for catching anyone who signed up late. Future is the organization's list and travels to their next fundraiser.
📧 Orders
Who else should see a sale as it comes in. Each address gets a copy of the same order confirmation the supporter receives — useful for a treasurer or a director who wants to watch the money arrive. Leave it blank and nobody extra is emailed.
Confirmations only — not pickup reminders, and not every message sent about an order. The supporter is never sent a duplicate.
📍 Pickup Location
Adds one question to the order form: collect it yourself at the pickup above, or send it home with a student. Needs names on the Students tab — with an empty roster the question stays hidden.
💡 Street addresses can pin the wrong end of a big property. For an exact spot: in Google Maps, right-click the exact door/stand → click the coordinates to copy → Share → Copy link. That pin lands supporters at the spot, not the street number.
📅 Scheduled Pickup Days
| Date | Time | Due | Location | Active |
|---|
👥 Sellers & Order Page
Who gets credit for an order, and what supporters are asked on the order page.
Pick Team when supporters choose between squads like Raiders vs. Wildcats. 8 or fewer choices = a dropdown, not a search box.
👤 Admin & Contacts
The admin runs the fundraiser and receives our emails. The contact is who supporters are told to reach on the public page — often the same person.
Logins for this organization
The people above need a login to see their dashboard. They sign
in at /login.html and see only their own fundraisers. Add a booster president as Admin,
a principal as Viewer — as many as you like.
| Name | Access | Status |
|---|
Add a login
🎨 Branding & Images
Everything visual in one place. The Flyer Studio, the order page, and share previews all use these.
The organization — used everywhere this org appears
This fundraiser's order page — just this one fundraiser
💳 Payments
Who collects supporter payments for this fundraiser, and the online processing fee. This is part of the agreement with the organization — Super Admin only; org admins never see it.
Checkout and emails show "Pay with PayPal / Venmo" buttons with the amount and order code prefilled. Money goes straight to the organization; their admin clicks Mark Paid on each order as payments arrive in their account.
Asks PayPal directly whether these are live or sandbox credentials. You cannot tell by looking — they are the same shape, and PayPal's dashboard opens on Sandbox, so the wrong pair gets copied constantly.
From the org's (free) PayPal Business account: developer.paypal.com → Apps & Credentials → Create App → copy the Live Client ID and Secret. Supporters get card, PayPal, and Venmo buttons; payments land in the org's PayPal and orders mark themselves paid automatically after server-side verification. The secret is stored for verification only and is never shown again or sent to any browser. For testing, use the Sandbox credentials from the same page instead and tick the box above.
Processing fee charged to supporters
PayPal charges the organization about 2.9% + $0.30 on every order — we never see it. Leave both at 0 and the group absorbs it out of their profit, which is the default and how every fundraiser worked before. Set them and supporters see one "Online Processing Fee" line at checkout instead. What the group owes 2 Men and a Pig does not change either way.
Applies only when 2 Men and a Pig collects. The 3% processing cost is always covered. Charge the full 3% and the group's profit is guaranteed; charge less (or 0) and the difference comes out of the group's profit — shown as "Online Fees" on their Dashboard.
🧾 Sales Tax
What supporters are charged on taxable products — never on donations. Part of the agreement with the organization — Super Admin only; org admins never see it.
0 = no tax line at checkout. Enter the combined state + county + city rate for the pickup location (e.g. 10 for Homewood). Rate changes only affect NEW orders — existing orders keep the tax they were charged.
Saves every card above at once — general info, pickup, sellers, contacts, branding, payments, and sales tax. Scheduled Pickup Days and Admin Logins keep their own buttons because they add rows rather than change this fundraiser.
Message Center
📱 Texts to us — replies people sent to the fundraiser number
| When | From | What they said |
|---|
Everyone who texts gets one automatic reply saying the number is not monitored and to call or email us — once every 12 hours, not once per message. STOP, START and HELP are still handled by their keyword.
Tags: {{FIRST_NAME}} {{NAME}} {{FUNDRAISER}} {{ORGANIZATION}} {{STUDENT}} {{ORDER_CODE}} {{ORDER_DETAILS}} {{ORDER_TOTAL}} {{AMOUNT_DUE}} {{PAYMENT_STATUS}} {{PAY_LINE}} {{PICKUP_DAY}} {{PICKUP_TIME}} {{PICKUP_ADDRESS}} {{LOGIN_CODE}} {{DASHBOARD_LINK}}
Preview
Sent Log
| When | Rule | Subject | Sent |
|---|
📒 Text Directory
Check who gets the text. Anyone who has opted out is skipped automatically at send time, even if checked.
| Name | Phone | Organization(s) | Fundraiser(s) | Texts |
|---|
💵 Record a payment
This is the only thing the settlement depends on. What you owe them — or they owe you — is the cost of everything cooked, less whatever of their money is sitting in your account.
✎ Edit Team Member
🗓 Cook Plan
📊 Reported Counts
For a group selling on their own (paper forms, their own site). Enter their latest cumulative totals — each save replaces the last report. Counts feed the Cook Sheet and daily capacity automatically, credited to the organization (no students).
+ New Order (phone / paper / walk-up)
Sets the settlement. Cash we keep is money the organization is still owed; cash they keep is money they owe us.
+ New Order — phone / text / paper / walk-up
Event money is always ours, so there is nothing to ask about who collected it.
Edit Order
Supporters
Everyone who has ever bought from 2 Men and a Pig — through a fundraiser, direct from us, or both. Search, fix contact info, record verbal opt-ins, and see who supports what.
| Name | Source | Phone | Orders | Lifetime | Last order | Consent |
|---|
Consent
Supports
Consent history
Buy history
| Date | Order | Fundraiser / BBQ Day | Student | Items | Total | Paid | Status |
|---|
Students
Every team member across all fundraisers. Search, filter by school, and see who's selling. A student can belong to more than one school or fundraiser — each row is one roster spot.
| Student ⇅ | School/Org ⇅ | Fundraiser ⇅ | Login | Orders ⇅ | Sales ⇅ | Status |
|---|
🔥 Cook Schedule
Every date, in order: what goes cook on the pits that day, and what is due out the door. A cook block says who it is for and when they get it; a due block is a pickup or a delivery — the same event either way, with the method tagged.
Your smoker ceiling — e.g. 3 smokers × 50 butts × 2 sessions = 300. Order forms across ALL fundraisers stop selling a day when its combined meat total hits this number (or the fundraiser's own day max, whichever comes first). Sauce never counts.
🏠 House Cooks — our own smoker time
Weddings, church BBQs, test cooks — anything on our pits that is not a fundraiser. These count against the daily capacity above, so a booked-up day stops selling like any other.
| Date | What it's for | Cooking | Notes |
|---|
📋 Their Request
🗓 Move some of this cook
🏠 House Cook
Smoker time that is ours. It has no customer record and no money — it holds a place on the schedule and eats into the day's capacity.
Master Product List
Add a Product
Butts are 50 and run about 12 hours; a turkey is neither. How many fit caps the size of a round; how long it runs is what tells you when a smoker frees up.
Categories — optional groupings; a product never needs one
| Category | Example | Food? | Display | Products |
|---|
Renaming a category updates every product carrying it. Hiding one (Display off) removes it from pickers without touching products; Delete removes it entirely — products keep their label either way.
🚚 Ways the food leaves us — pickup, delivery, whatever else you do
These fill the “How it leaves us” picker on House Cooks and tag each due block on the Cook Schedule. Renaming one here does not rewrite cooks already saved.
🥩 Wholesale — Meat, Sauce & Bread — sold by the case / gallon to renters; our cost + markup
| Product | Unit / case | Lbs | Our cost | Markup % | Sell / case | ~ / lb | Note to renter | Updated | Active | |
|---|---|---|---|---|---|---|---|---|---|---|
| Loading… | ||||||||||
These are what renters see when they click See current prices on the rental request form. Blank markup = default. "Remove" only takes it off this list; the product stays on the master list.
| SKU | Product | Category | Cost | Price | Smoker 🔥 | Fundraiser | Taxable | Active |
|---|
Cost and Price edits here set the defaults for NEW fundraisers — fundraisers already set up keep the prices they were created with (change those on the fundraiser's Products tab). Only Fundraiser Option products can be added to a fundraiser; everything active is available to Events on orders.2menpig.com.
2 Men and a Pig Logins
Company-level access only. Each fundraiser's Admins & Viewers are managed inside that fundraiser (Settings tab).
Add Login
| Name | Access | Status |
|---|
Content — Pages, Articles & FAQs
Landing pages and articles render at their slug (school-fundraisers →
/school-fundraisers) through the SEO engine. Drafts never show; Scheduled pages go live at their
publish time. Articles appear on /resources.
| Slug | Type | Category | Title | Status | Updated |
|---|
Media Library
Images, logos, social graphics, flyers, and PDFs — shared by the Flyer Studio, content pages, and (soon) AI-generated graphics. Copy a file's URL to use it anywhere.
Analytics
Fundraiser traffic & conversion
| Fundraiser | Status | Views | QR Scans | Orders | Conversion |
|---|
Views are counted from real page loads (no cookies, nothing personal). QR scans are views that arrived through a QR code. Conversion = orders ÷ views. Organic search traffic comes later via Search Console.