Supper Club
Managing the weekly Supper Club menu on the reservations site.
Supper Club is a weekly rotating meal kit program available at all MoC store locations. Menus are posted Wednesdays, with 8 items rotating on a 4-week cycle.
Schedule
| Day | Action |
|---|---|
| Tuesday | Schedule items to publish Wednesday |
| Wednesday | Menus go live |
| Friday–Thursday | Order period |
| 3-12 days after publication | Pickup window |
Items are scheduled via WordPress's built-in scheduling, but scheduled publishing sometimes fails — items are saved correctly but don't go live on time. Check after the scheduled publish time and manually publish if needed.
Weekly Process
Receive the menu
MoC provides the weekly Supper Club menu via Basecamp, typically with product details, images, and pricing.
Update or create products
For each item:
- Update product title, description, short description, and image
- Set the Supper Club attribute
- Set pricing
- Set pickup date logic (3-day minimum lead time from order date)
Set Chef's Favorite tags
Chef's Favorite tags rotate weekly. For the new favorites:
- Add the "Chef's Favorite" tag to the new items
- Remove the tag from previous week's favorites
Schedule for Wednesday
Set each product to publish on Wednesday. Double-check the scheduled time.
Verify after publish
After the scheduled publish time, confirm all items are live. Manually publish any that failed to auto-publish.
Store Availability
Supper Club is available at all locations. Each product has store-specific availability set via the store attribute. When adding items, ensure all applicable stores are checked.
| Store | Catering Email |
|---|---|
| Ashland | cateringMOC11 |
| Belmont | cateringMOC03 |
| Bend | cateringMOC08 |
| Cedar Mill | cateringMOC02 |
| Corvallis | cateringMOC07 |
| Delta Oaks | cateringMOC04 |
| Franklin | cateringMOC10 |
| Hillsboro | cateringMOC12 |
| Medford | cateringMOC09 |
| West Linn | cateringMOC06 |
Between menu cycles, when all Supper Club items are hidden, the "Supper Club" filter disappears from the shop page. WooCommerce only shows an attribute filter when at least one visible product carries that attribute — it reappears once items are published. This is expected, not a bug.
Cart Mixing Rules
A Supper Club item takes over checkout for the entire order — it forces the pickup location, date and time onto the Supper Club schedule (specific stores, weekly dates, limited time windows). Because every item in the cart inherits that schedule, what's allowed in the cart depends on what else is in it:
| Cart contents | Behavior |
|---|---|
| Supper Club + standard catering | Allowed. Customer sees an informational notice that everything will be picked up together on the selected Supper Club date and location. |
| Supper Club + exclusively-seasonal item | Blocked. Hard error asking the customer to place the items as separate orders. |
| Supper Club + item that is both standard and seasonal | Allowed. It's available year-round, so any Supper Club pickup date is valid. |
Seasonal items are blocked because a season-only item (e.g. a Thanksgiving item) is only available for pickup inside its season's window. Forcing it onto a Supper Club pickup date could land outside that window, creating an order MoC can't fulfill. Standard items are available any time, so they're always safe to mix.
"Seasonal" here means exclusively seasonal — an item whose product_availability (ACF field) includes a season but not standard. An item tagged both standard and a season (like a Mother's Day item that stays on the regular menu) counts as year-round and mixes fine. The rule lives in is_seasonal_product() / validate_supper_club_cart() in the moc-supper-club-manager must-use plugin.
Reporting
The Return Supper Club Customers report in WP Admin > Reports identifies repeat customers for loyalty incentives. It queries current SC orders with pending/processing status and checks for at least one previously completed order.
GA4 doesn't differentiate between catering and Supper Club orders. For Supper Club-specific metrics, use the custom WordPress reports, not Google Analytics.