MilkShelf

How MilkShelf Works

A complete guide for farmers

What's in this guide

1. The Big Picture 2. Herdshare Mode 3. How Customers Sign Up 4. Add-ons 5. Your Daily Workflow 6. Pickup Days & Capacity 7. Pickup Schedule 8. Excess Jars 9. The Waitlist 10. Jar Return Tracking 11. Managing Customers 12. Emails & Reminders 13. Branding Your Portal 14. QR Code Flyer 15. Labels 16. Vacations & Pauses 17. Collecting Payments 18. Your Payments Tab
🌾 The Big Picture

MilkShelf gives your farm a custom signup page at yourfarm.milkshelf.com β€” this is your farm's permanent public link. Share it anywhere: your website, Facebook, a text message, or a QR code flyer on your fridge. Customers use it to subscribe, manage their subscription, and check for extra jars. You get a private dashboard to manage everything β€” orders, labels, capacity, emails, and more.

Here's the basic flow:

1
Customer visits your link They enter their phone number, pick a day, choose how many jars, and subscribe.
↓
2
They get a confirmation email Branded with your logo, showing their pickup day and jar count.
↓
3
They get pickup reminders Automatic emails the night before (or morning of) their pickup day.
↓
4
You check your dashboard See today's orders, print labels, post any extra jars.

MilkShelf includes built-in card billing through Stripe. Customers enter a card when they sign up and are charged automatically on their pickup day β€” no chasing payments, no Venmo requests. By default you net your full jar price β€” a small processing fee is added to the customer's charge β€” or you can choose to absorb the fees yourself in Settings β†’ Pricing. If a customer prefers to pay cash, that option is available too and their pickups are tracked the same way β€” unless the farm has turned on Require Card Payment, in which case new customers must use a card.

πŸ„ Herdshare Mode

If your farm operates as a herdshare, flip the Herdshare Mode toggle in Settings before doing anything else. It swaps the language MilkShelf uses across your dashboard, customer page, and every automatic email β€” customers become shareholders, jars become shares, pickups become distributions, subscriptions become herdshare agreements. It also unlocks the billing modes and pricing fields specific to herdshares.

Turning it on

Go to Settings β†’ Farm Settings β†’ Herdshare Mode and flip the toggle. The terminology change happens immediately, everywhere, without redoing any setup.

Billing modes

With Herdshare Mode on, the Payments tab unlocks two billing modes designed for share-based farms, alongside the per-pickup mode:

Monthly Herdshare β€” bills every shareholder a flat monthly charge on the same day of the month. You pick the day (1st through 28th). Distribution day is separate from billing day, so a shareholder can pick up on Wednesdays but be billed on the 1st.

4-Week Herdshare β€” bills every 4 weeks starting from each shareholder's first distribution. Keeps everyone on a steady 28-day cycle but staggered across the month.

Monthly price per share

Instead of price-per-jar, set a flat monthly (or 4-week) rate per share in Settings β†’ Pricing & Deposits. This is what's shown to shareholders on your portal and what they're charged each billing cycle.

One-time buy-in fee

Many herdshares charge a one-time fee per share at signup. Set the amount in Settings β†’ Pricing & Deposits β†’ One-Time Shareholder Fee Per Share. New shareholders pay it during their signup checkout, on top of their first monthly charge. Leave it at zero if you don't charge a buy-in.

Existing shareholders who already paid the buy-in

When you manually add a shareholder who paid their buy-in directly before joining MilkShelf, check the "Shareholder buy-in already collected" box on the add-customer form. They won't be charged again. The same option appears on the customer-facing signup form, so a shareholder signing themselves up can flag it β€” you'll get an email about it so you can verify before they're confirmed.

Jars per share

If one share isn't one physical jar β€” say a share is a gallon, filled as two half-gallon jars β€” set Jars Per Share to 2 in Settings β†’ Pricing & Deposits. Shareholders see their share count on the portal; you see the physical jar count on labels, pickup lists, and capacity counts.

Herdshare agreement (optional)

Many herdshares require a signed agreement before a shareholder gets milk. You can have shareholders read and e-sign your own agreement at signup β€” set it up in Settings β†’ Customer Agreement, and see "How Customers Sign Up" below for how the signing works. MilkShelf only collects a signature on the document you provide; it doesn't draft or verify your agreement, and whether an electronic signature is legally valid varies by state β€” so check your local rules.

Dashboard β†’ Settings β†’ Farm Settings (toggle), Pricing & Deposits, Customer Agreement, Payments tab (billing mode)

πŸ“± How Customers Sign Up

When someone visits your link, here's what they see:

Phone number entry

They enter their phone number first. If they've signed up before, their info is pre-filled so they can make changes. If they're new, a blank form appears.

Pick a day and jars

They choose a pickup day from your active days and select how many jars. Days that are full show as "(FULL)" and can't be selected. The jar dropdown adjusts based on what's available that day.

Pickup frequency

They choose weekly or β€” if you offer it β€” every two weeks. For biweekly customers, the system automatically manages scheduling to keep your weekly milk demand consistent β€” see below.

Biweekly pairing (every two weeks)

When a biweekly customer signs up, the system checks whether your existing biweekly customers are balanced. If they are, the new customer gets free choice of day and start date. If there's an unpaired customer, the system assigns the new customer to that customer's off week β€” so you always fill the same number of jars every week, regardless of who's biweekly. The new customer sees a note explaining why their day was pre-selected. If it doesn't work for them, they're directed to contact you directly. Jar counts are matched to the unpaired customer's jar count to keep things even.

If you'd rather let biweekly customers pick whatever day and start date they want β€” even if it leaves your weekly demand uneven β€” turn off the Auto-pair Every-2-Week Customers toggle in Settings β†’ Pickup Frequency.

Reminder preference

They choose when to get pickup reminders β€” the night before at 6 PM, the morning of at 8 AM, or no reminders.

Signing your agreement (optional)

If you've turned on a customer agreement in Settings β†’ Customer Agreement, new customers read your agreement text and sign it with their typed name as part of signing up. It applies to new signups only β€” existing customers, including anyone who joined before you turned the agreement on, aren't asked to sign retroactively. You get a PDF copy of each signed agreement by email, and MilkShelf keeps a signed record of who signed, when, the exact text they agreed to, and its version.

βš–οΈ Important: MilkShelf provides the tool for collecting electronic signatures on agreements you supply β€” it does not write, review, or verify your agreement, and it can't determine whether an electronically signed document is legally valid or enforceable in your state. Laws on electronic signatures, herdshares, and raw-milk sales vary by location, and you are responsible for ensuring your agreement complies with the laws of your area. MilkShelf is not a law firm and does not provide legal advice; consult a licensed attorney or your state Department of Agriculture before relying on this feature.
Changes lock before pickup

So your pickup-day counts and printed labels stay stable, customers can't change their order in the final stretch before a pickup β€” from 8 PM the night before through the end of pickup day. Up until then they can freely add, remove, or adjust jars and add-ons. During the locked window they see a short note that editing is paused and when it reopens (the day after pickup). Anyone whose pickup isn't imminent β€” including customers on vacation that week β€” can edit as normal.

πŸ’‘ Returning customers can come back anytime, enter their phone number, and update their day, jars, frequency, or status. They don't need a separate login.
🧺 Add-ons

Beyond milk, you can offer extra products β€” eggs, butter, yogurt, cheese, whatever you have β€” that customers add right to their order. Add-ons are optional and stay hidden until you create your first one.

Setting up your add-ons

Open the Add-On Items section in Settings and click "Add an item." Give each one a name and a price. If you only have so much to go around, set a Capacity β€” the most you can hand out on a single pickup day (leave it blank for no limit, or set it to 0 to close an item temporarily). Reorder items with the arrows, or uncheck "Active" to hide one without deleting it.

Recurring or one-time

Customers pick per add-on. Every pickup adds it to every order going forward β€” a weekly tub of yogurt, a standing dozen eggs. Just next pickup is a one-time extra for a single date β€” a one-off order of butter this week. They choose right on your signup page, alongside their milk.

How add-ons are billed

Add-ons are charged automatically β€” nothing extra for you to collect. On per-pickup farms they're billed right alongside the milk: recurring ones every pickup, one-time ones on their pickup date.

On herdshare and monthly farms, milk bills on a monthly (or 4-week) cycle, but add-ons bill per distribution β€” for each week the add-on actually goes out. So a weekly yogurt is charged for each week it's handed out, and a one-time add-on is charged on its distribution date. This keeps add-on charges matched to what customers actually receive, no matter how the milk itself is billed.

On your dashboard

Each customer's add-ons show up everywhere you need them β€” on Today's Orders, This Week, the Schedule, and their detail card when you search β€” so you always know exactly what to pack. One-time add-ons appear only on their date.

On your labels

Every add-on prints its own label alongside the jar labels, showing its name and count (e.g. "Yogurt β€” 1 of 2"), so nothing gets missed at pickup. One-time add-on labels print only on the date they're for.

Sell-out protection

If you set a Capacity β€” say 10 dozen eggs a week β€” the order form tracks how many are left and won't let customers order past your limit, the same way pickup days fill up. When an item's gone for the week, customers can't add it until capacity opens back up.

πŸ’‘ Customers manage their own add-ons. Just like their milk order, customers add or remove add-ons anytime from your portal β€” no need to relay changes to you.

Dashboard β†’ Settings β†’ Add-On Items

β˜€οΈ Your Daily Workflow

Your dashboard has five tabs across the top β€” Today, Customers, Schedule, Settings, and Payments. The Today tab is your morning routine β€” everything you need to fill jars and get them out the door:

Today's Orders

Shows every active customer picking up today, their jar count, and any notes. Customers on vacation are automatically hidden. The total jar count is shown in the header.

Print a delivery sheet

Click or tap Print on Today's Orders (or Upcoming Orders) to print a delivery sheet right from your dashboard β€” on paper, or save it as a PDF from your browser's print dialog. It's grouped by pickup location and lists each customer with their jar count, a per-location subtotal, a grand total, and each customer's payment method (cash or card). Hand it to whoever does the drop-offs so they know how many jars to load for each location and who gets them.

Labels

Pick a collection date and tap "Generate Labels" to create labels for any pickup day. Labels download as a PDF ready to print on a standard thermal label printer. Each label shows the customer name, jar count, farm URL, and collection date. Vacation customers are automatically excluded.

Excess Jars

Filled more jars than you have orders? Post the extra count here. Customers visiting your portal see a banner: "3 extra jars available today β€” help yourself while they last!" You can customize this message and it shows a timestamp so customers know it's fresh.

Day Notes

Jot a short dated reminder that shows up here on the Today tab on its date β€” and on the printed delivery sheet β€” so you can retire the whiteboard and sticky notes. Handy for a one-time pickup you sold to fill a vacation slot, or anything else you need to remember on a specific day. It's just a reminder: it doesn't create or change an order, and it never affects your totals, billing, or labels.

Jar Returns

When a customer picks up their milk, all their jars are assumed to be out. Open the Jar Returns accordion, tap any jar circle to mark it 🟒 when it comes back, then tap Save. Jars still out show as 🟠.

If a customer has more than 2Γ— their jar subscription outstanding before their next pickup, MilkShelf automatically sends them a reminder email β€” and sends you a summary so you know who to expect jars from.

Use the day dropdown to switch between pickup days. Jar tracking can be turned on or off with the toggle in the Jar Returns header.

πŸ’‘ Typical morning: Open dashboard β†’ check today's orders β†’ print labels β†’ fill jars β†’ post any extras β†’ check jar returns. Takes about 2 minutes.
πŸ“… Pickup Days & Capacity

You control which days you offer pickup and how many jars are available each day. Only the days you check will appear on your customer portal β€” if you only do Wednesday and Saturday, those are the only options customers see.

Setting up days

Check the box next to each day you offer pickup and enter the jar limit. For example: Wednesday β†’ 20 jars, Saturday β†’ 30 jars. Unchecked days are hidden from customers.

How capacity works

As customers sign up for a day, the available count goes down. When a day hits zero, it shows as "(FULL)" on the signup form and new customers can't select it. If someone cancels or pauses, that capacity opens back up automatically.

Offering every-2-week pickups

By default customers can choose weekly or every two weeks. If you'd rather only run weekly pickups, turn off Offer Every-2-Week pickups in Settings β†’ Pickup Frequency β€” new customers will then only see Weekly. Anyone already on an every-2-week schedule keeps it. When this is off, the Auto-pair Every-2-Week Customers toggle greys out, since there's nothing to pair.

What you call a container

MilkShelf calls each container a "jar" by default. If your farm bottles in jugs, switch Container from Jars to Jugs in Settings and that word follows everywhere you and your customers see it β€” the signup form, your dashboard, labels, and emails. Leave it on Jars and nothing changes.

Jar size

Set what "one jar" means for your farm β€” half gallon, quart, gallon, etc. This shows on the signup form as "One jar is a half gallon" so customers know what they're ordering.

Jar price

Enter what you charge per jar. This shows on your customer portal so customers know what to expect before signing up, and is included in their welcome email when they subscribe.

Jar deposit

If you charge a deposit for jar returns, enter the amount here. It shows alongside your jar price on the portal. The deposit is the incentive that keeps jars coming back β€” jar return tracking helps you see exactly who still has jars out so you know where your deposits stand.

Dashboard β†’ Settings tab β†’ Pickup Days & Capacity, and Pricing & Deposits

πŸ—“ Pickup Schedule

The Schedule tab gives you a 4-week forward view of all your pickup days β€” so you can see at a glance how full each day is, which customers are coming, and where you have open slots.

Where to find it

Open your dashboard and tap the Schedule tab. It loads automatically from your current customer and capacity data β€” no setup needed beyond configuring your pickup days in Settings.

How to read it

Each pickup day appears as a card showing the date, how many jars are expected out of your capacity, and a fill bar. Green-bordered cards have open slots β€” meaning off-week or vacationing customers have freed up space. Orange-bordered cards are full. Today's pickup is highlighted with a "TODAY" badge.

Seeing who's coming

Tap any day card to expand the full customer list for that pickup, including jar counts and pickup frequency. Customers who are off that week (biweekly schedule) or on vacation are shown as tags below the card so you know exactly why a slot opened up.

πŸ₯› Excess Jars

When you have extra milk beyond your regular subscriptions, enter the available quantity in your MilkShelf dashboard. A banner automatically appears on your customer portal showing how many extra jars are available, with a timestamp so customers know it's current.

How it works

Enter the number of extra jars and optionally customize the message. When you set it to 0, customers see "No extras today β€” check back tomorrow!" so they don't have to ask. If you haven't customized the message, the banner just hides when the count is 0. This is great for days when you have more milk than usual or when customers are on vacation and you have surplus.

Dashboard β†’ Today β†’ Excess Jars

⏳ The Waitlist

Instead of turning new customers away when you're full, you can enable a waitlist with a single toggle in your dashboard. Once on, customers visiting your signup page will see a "Join Waitlist" button. Here's how it works:

1
Customer joins the waitlist They enter their info and how many jars they want. They get a priority number based on when they joined.
↓
2
Capacity opens up When a customer pauses, cancels, or reduces their order, jars become available.
↓
3
Automatic offer sent The first person on the waitlist gets an email with a time-limited offer to claim the spot.
↓
4
They accept or it cascades If they accept, they become a subscriber. If they don't respond in time, the offer moves to the next person.
Waitlist Manager

From your dashboard, you can view the waitlist, reorder priorities, and remove people. The whole cascade process is automatic β€” you don't have to manage it.

Dashboard β†’ Customers β†’ Waitlist

πŸ₯› Jar Return Tracking

Keep track of how many jars each customer has at home. Open the Jar Returns accordion on your dashboard, tap the circles as you load your dishwasher each night, and hit Save. Takes about 30 seconds.

Nightly tap-to-log

Today's pickup customers are listed with one circle per jar. Orange means the jar is still at the customer's place. Tap it to mark it returned (green). Switch days with the dropdown to catch up on any day you missed.

Automatic reminders

If a customer has more than twice their subscription jar count outstanding, MilkShelf automatically sends them a friendly reminder the day before their next pickup. You get a summary email too so you know who to expect jars from.

πŸ’‘ Nothing breaks if you skip a night. The jar counts just stay where they were. The deposit is still holding either way β€” tracking is for your visibility, not a hard system lock.

Dashboard β†’ Today β†’ Jar Returns

πŸ‘₯ Managing Customers
Search & pause/activate

Look up any customer by name or phone number. From the search results you can pause, reactivate, or delete their subscription. Paused customers don't count toward your capacity and don't receive pickup reminders.

Manually add a customer

For customers who can't use the online form (or prefer not to), you can add them directly from the dashboard. Enter their name, phone, email, pickup day, frequency, and jar count.

Per-customer discount

Give an individual customer a percentage discount on their price β€” handy for a founding member, a family rate, or a staff discount. Set it on the add-customer form or when editing a customer, as a percentage with up to two decimal places (e.g. 12.5%). It applies only to that customer's recurring price β€” everyone else is unaffected β€” and card customers are automatically billed the discounted amount.

Mark cash & Venmo customers paid

For customers who pay by cash or Venmo β€” anyone not on automatic card billing β€” you decide when they're Paid or Unpaid. Two ways: tap the Mark Paid / Mark Unpaid button on the customer in your Customers tab, or click their Paid/Unpaid badge right on Today's Orders or Upcoming Orders (you'll get a quick confirm first). Their printed label then shows PAID or UNPAID accordingly, and their dashboard status stays in sync. The mark stays put until you change it β€” it won't reset on its own, so for a recurring cash customer you'd re-mark them each cycle. Card customers are billed automatically and don't get this toggle; their paid status is handled for them.

Customer notes & private farmer notes

Every customer has two notes fields. Customer Notes is anything the customer wrote on their own signup ("Special instructions, preferences, etc.") β€” they can see and edit this on the portal. πŸ”’ Private Farmer Notes is yours alone, with a yellow background so you can't mix them up β€” customers never see it and are never notified when you change it. Use it for payment notes, jar deposit status, delivery preferences, or anything else. Both fields appear on Today's Orders and Upcoming Orders so the relevant info is always in front of you on pickup day.

Download customer list

Export your full customer list as a CSV file. Useful for your own records or for importing into other tools.

πŸ’‘ If a customer wants to change their day or jar count, they can do it themselves on your portal by entering their phone number. You don't need to do it for them β€” that's the whole point of having the portal.

Dashboard β†’ Customers tab

πŸ“§ Emails & Reminders

MilkShelf sends emails on your behalf, branded with your farm logo. You don't have to write or send anything β€” it's all automatic.

Confirmation email

Sent immediately when a customer signs up or updates their subscription. Shows their pickup day, jar count, frequency, and a link to your Google Maps directions. You can add a custom message that appears in this email (e.g., "Milk is available starting at 7am. Please bring your own cooler bag.").

Pickup reminders

Sent automatically before each pickup day. Customers choose whether they want the reminder the night before at 6 PM, the morning of at 8 AM, or no reminders. You can customize the reminder text and use placeholders like {customerName}, {pickupDay}, and {jars}.

Mass email

Need to tell your customers something? Write a subject and message and send to everyone, a specific pickup day, your waitlist, or a custom group. Great for holiday closures, schedule changes, or seasonal updates.

Test emails

Send yourself test versions of the confirmation, update, and reminder emails to see exactly what your customers will receive before you go live.

Capacity alerts

If your subscriptions exceed your capacity on any day, you get a daily alert email at 8 AM showing which days are over and by how many jars.

Dashboard β†’ Settings β†’ Email Settings

🎨 Branding Your Portal

Your customer portal at yourfarm.milkshelf.com looks and feels like your farm, not like generic software.

Farm logo

Upload your logo and it appears on the customer portal and in every email. PNG with a transparent background works best. If you don't have a transparent version, the dashboard links to a free tool to remove the background.

Pickup location map

Upload a screenshot or photo showing exactly where customers should pick up. This shows on the customer portal below the signup form.

Pickup address & directions

Enter your full address and customers get a "Directions to Our Farm" link that opens in Google Maps with turn-by-turn navigation.

Farmer message

Post a message that appears on your customer portal. Useful for seasonal notes, holiday hours, or anything you want customers to see when they visit your page.

Contact form

Customers can send you a message directly from the portal if they have questions or special requests. The message goes straight to your email.

Payment link

Connect Stripe to collect payments automatically β€” customers are billed at signup and on a recurring schedule without any manual follow-up. Prefer to handle payments yourself? You can also add a link to Venmo, Square, or another payment page as a fallback.

Dashboard β†’ Settings β†’ Farm Settings

πŸ“² QR Code Flyer

MilkShelf generates a printable flyer with a QR code that links directly to your customer portal. Print it and tape it anywhere customers will see it β€” your farm fridge, barn door, cooler, or pickup area.

How it works

Customers scan the QR code with their phone and it takes them straight to your signup page. No typing, no searching β€” just scan and subscribe. It's the fastest way to get new customers signed up on the spot.

πŸ’‘ Pro tip: Print a few and put one at every pickup location. Customers who find out about your farm through word of mouth can sign themselves up before they even leave.

Dashboard β†’ Settings β†’ QR Code Flyer

🏷️ Labels

Generate jar labels for any pickup day in seconds. Labels are designed to print on standard thermal label printers and include everything your customers need to identify their order.

What's on a label

Each label shows the customer's name, jar count, your farm URL, and the collection date. Customers on vacation are automatically excluded so you never print a label for someone who isn't picking up.

Printing

Labels download as a PDF formatted for thermal label printers. Open the PDF and print directly β€” no resizing needed. If you don't have a thermal printer, the PDF works on regular paper too and can be cut apart.

πŸ’‘ Print for tomorrow too. You can generate labels for any date, so if you like to prep the night before, just pick tomorrow's date and print ahead.

Dashboard β†’ Today β†’ Labels

πŸ–οΈ Vacations & Pauses
Farm vacation (you're the one going away)

Going to a family reunion, conference, or just taking a week off? Set a Farm Vacation window in Settings β†’ Farm Vacation. The night before your vacation starts, MilkShelf emails every active customer to let them know there'll be no pickups during the window β€” with a personal message from you if you wrote one β€” and automatically pauses every card customer's Stripe subscription so nobody is charged for weeks they aren't getting milk. The night your vacation ends, everything resumes: subscriptions un-pause, reminders restart, and your next pickup day runs as normal.

Biweekly customers whose off-week falls during your vacation are handled correctly β€” they won't get a duplicate "vacation" email or a Stripe pause they didn't need. Customers who are already on their own personal vacation through your absence are left alone so they don't get unpaused prematurely.

Customer vacations

Customers can set vacation dates on the portal. During their vacation, they're automatically excluded from today's orders and don't receive pickup reminders. Their subscription stays active β€” they just skip those weeks. When the vacation ends, everything resumes automatically.

Pausing a subscription

Customers can pause their subscription from the portal, or you can pause them from the dashboard using Search Customer. Paused customers don't count toward your capacity and don't get reminders. They can reactivate anytime.

πŸ’³ Collecting Payments
How it works

MilkShelf can collect jar payments directly from your customers via card. When you connect your bank account in the Payments tab, customers see a "Card" or "Cash" option when they sign up β€” unless the farm has turned on Require Card Payment, in which case new customers must use a card. Card customers are charged automatically on whatever schedule you choose β€” no invoicing, no chasing payments. Automatic card billing is available to US farms; farms elsewhere collect payments directly.

You receive your full jar price by default

By default, fees are added to the customer's charge; farms can choose to absorb the fees instead. With the default setting, processing fees (Stripe's ~2.9% + $0.30 and a 0.7% subscription billing fee, plus MilkShelf's 1.5%) are added on top of your jar price at checkout β€” you never see a deduction. For example, if your jar is $8.00, the customer pays $8.75. You receive $8.00 every time, deposited directly to your bank account.

One-time new customer fee (optional)

If you charge a startup or membership fee when someone first joins β€” a sign-up fee, a one-time setup charge β€” set the amount in Settings β†’ Pricing & Deposits β†’ New Customer Fee. New card customers pay it once during their signup checkout, on top of their first charge; it never repeats. Leave it at zero if you don't charge one. (On herdshare farms this same idea is the per-share buy-in fee β€” see Herdshare Mode above.)

Three billing modes

Set how customers are charged in Payments β†’ Billing Mode:

Per Pickup β€” billed every pickup day, weekly or biweekly. Best for direct-sale farms where the charge ties to a physical pickup.

Monthly Herdshare β€” a flat per-share charge on the same day each month (1st through 28th). Unlocks when Herdshare Mode is on.

4-Week Herdshare β€” bills every 4 weeks from each shareholder's first distribution. Keeps shareholders on a steady 28-day cycle.

Per-pickup billing is tied to pickup day

On per-pickup billing, customers are charged on their first pickup day, then on the same day every week (or every two weeks for biweekly customers). If someone signs up Monday for a Thursday pickup, their first charge is that Thursday β€” not Monday. This keeps billing and pickups in sync.

Example: Jane signs up Monday March 16th for a Thursday pickup. Her first charge hits Thursday March 19th. After that she's charged every Thursday β€” March 26th, April 2nd, and so on.

Raising your price β€” grandfather your current customers

When you raise your price, MilkShelf asks whether to apply it to everyone or keep your current customers at the price they already pay. Choose "Keep current customers," and every active customer stays locked at their current price automatically β€” only new signups pay the new rate. No spreadsheets, no editing customers one at a time. Card customers keep their locked price even when they update their order, and if you ever want to move someone to your current price, a "Move to current price" button sits right on their customer card. Any per-customer discount still applies on top of their locked price.

Dashboard β†’ Settings β†’ Pricing (the choice appears when you save a changed price)

Customers manage their own card

Card customers see a "Manage Card Payments" button on your portal. It opens Stripe's billing portal where they can update their card, view past charges, and download receipts β€” without involving you. You never see their card details, and they never have to call to fix a declined card.

Failed payments

When a charge fails (expired card, insufficient funds, etc.), a red banner appears at the top of your Today tab listing the affected customers. Stripe automatically retries the charge over the next several days. If a customer pays you another way in the meantime β€” cash at pickup, Venmo, anything β€” click "Mark as Paid" on the banner to clear the flag. The customer also shows an orange "Past due" badge in Search Customers results until resolved.

Letting customers switch to cash on their own

In Payments β†’ Customer Billing Options there's a toggle: "Allow Customers to Switch to Cash." When on, card customers can cancel their card billing themselves from the portal and switch to paying you directly. Turn it off if you only want card customers and don't want self-serve downgrades.

The opposite control lives right next to it: "Require Card Payment." When on, it forces card at signup for that farm β€” new customers don't see a cash option at all. (Turning it on also disables Allow Switch to Cash.)

Vacations & pauses

When a card customer sets vacation dates, their Stripe subscription is automatically paused on their vacation start date and resumes on their first pickup day after vacation ends β€” so they're never charged for a week they're skipping. When you pause a customer from the dashboard, their subscription pauses immediately and resumes when you reactivate them.

Example: Sarah picks up every Thursday. She sets a vacation from June 5th to June 12th. Her June 5th and June 12th charges are skipped automatically. Her subscription resumes June 19th β€” her first Thursday after vacation ends β€” with no action needed from you or Sarah.

Cash customers

Cash is always an option. Customers who choose cash at signup are handled exactly as before β€” no Stripe involved, no change to your current workflow. You collect payment however you normally do.

Unpaid customers

If a customer starts the card signup process but doesn't complete checkout, they show up in the Payments tab as "Unpaid." You can resend them a payment link or follow up directly. They'll also show an orange "Unpaid" badge in the Search Customer results.

Connecting your bank account

Go to the Payments tab in your dashboard and click "Connect Bank Account." Stripe will walk you through a quick setup β€” you'll need your routing and account number. Once connected, your status shows "Payments Active" and customers will see the card option at signup.

πŸ“ˆ Your Payments Tab

The Payments tab is mission control for everything money-related: who's paid, who hasn't, what's coming in, and how customers are billed. You only need to spend time here if you're using MilkShelf for card billing.

Unpaid Customers

Customers who started signup but didn't complete card checkout show up here. Each row has a "Resend Payment Link" button so you can nudge them, or you can delete the entry if they're not coming through.

Projected Income

Pick a time window β€” 7 days, 14, 30, 60, 90, 180, a full year, or any custom range β€” and MilkShelf calculates your expected revenue across all active customers based on their current subscriptions and pickup schedules. Cash projections assume customers pick up as scheduled. Useful for planning, taxes, or deciding whether to raise prices.

Upcoming Charges

A live view from Stripe of every card customer with a charge due in the next 14 days. Shows the amount, the date, and the customer. Click "Load Upcoming Charges" to refresh.

Billing Mode

Pick how card customers are charged: Per Pickup, Monthly Herdshare, or 4-Week Herdshare. See the previous section for what each one does. Monthly Herdshare asks you to set a Billing Anchor Day (1–28) β€” the day of the month all shareholders are billed.

Customer Billing Options

Two toggles. "Require Card Payment" β€” when on, new customers must pay by card at signup and the cash option is hidden. "Allow Customers to Switch to Cash" β€” when on, card customers can cancel their own card billing from the portal and pay you directly; when off, they have to contact you to switch. Turning on Require Card Payment automatically turns off and disables Allow Switch to Cash (letting customers switch to cash would defeat requiring card).

Collect Payments (Stripe Connect)

The "Connect Bank Account" button launches Stripe Express onboarding. You'll enter your business details, routing and account number, and verify your identity β€” all through Stripe's hosted flow. Once finished, your status flips to "Payments Active" and customers see the card option at signup. Money is deposited directly to your bank by Stripe; MilkShelf never touches it.

Dashboard β†’ Payments tab

πŸ’¬

Still have questions?

We're happy to help. Whether you need help getting set up or just want to talk through how it works β€” reach out anytime!

Send Us a Message