Posted on

Next Steps in WooCommerce Customization for Pizza Farm Activities


We are a small family farm who runs a drive-through wood-fired pizza pop-up featuring locally produced ingredients. On weeks where we offer our pop-up, orders open at 10am on Monday morning for pizzas to be picked up for specific time slots on Thursday and Friday evenings. Here is some additional backround on The Pizza Farm Concept from our sister site, Firespeaking.

We’ve determined that we can make 5 pizzas every 15 minutes so we’ve created a variable product with the different time slots and set the inventory to 5 for each time slot when we open orders for the week. We use the built-in variable product feature to sell pizzas for specific time slots. This means that each time slot has its own unique product ID. Customizations for each pizza are handled by features from the Product Add-Ons extension by WooCommerce to allow customers to specify the type of pizza that they would like (dropdown menu) and also to specify two additional options of Vegan Cheese (V) or Gluten Free Crust (GF) (select boxes). For pizza topping options, we typically offer a Meat Deluxe (MD), Veggie or Veggie Deluxe (Veg), Cheese (Ch) and Pepperoni (M). Depending on the customer, they might order 1-5 pizzas for a given time slot.

We are longtime WordPress and WooCommerce users. In April 2020, Billay Brooks, wrote some custom code for our pizza pop-up product so that customers could clearly see how many pizzas were available per time slot. Now, we are interested in additional functionality to automate manual processes that take time.

The two main additions we are interested are the following:

  1. Detailed Tally/Reporting of Orders
  2. Printing of Pizzas Ordered Labels and Line List

1. Detailed Tally/Reporting of Orders

Typically we close orders on Wednesday evening so that we can tally orders and make a final determination of amounts of ingredients that we need to have prepared. For example, we need to know how many dough balls to prepare for the following day because our pizza dough is started the night before (Total Orders for that day – GF Orders for that day). We generally do our purchasing on Tuesdays and preparation of topping ingredients on Wednesday so it is nice to see a running tally of the different pizza topping combinations so that we know what quantities of toppings to purchase and prepare. We also need to know how many Gluten Free and Vegan Cheese orders we have for the two days, and ideally a break down for each day, so that we can ensure that we have these specialty options on hand.

So far, we have not found a way to use WordPress’s reporting feature to produce these results for variable products with add-on options and have produced them manually which turns out to be a time-consuming activity we have to do every week. If it is determined that the WooCommerce’s native reporting features can be leveraged, that would be great.

Here is an example of one week’s tally sheet:

There are three basic sections represented in the rows (Topping Type, Dough Type, Cheese Type) and a break-down of quantities per day in the columns (Thursday, Friday, Total).

There is one additional row (Ck) which in this case represents an additional product, Cheese Cake, we were offering that week. These products are typically simpler since we generally just set an overall inventory (not specific to the day or time slots) and have the customer specify which day they want to pick them up but it is still useful and necessary to see them tallied, per day and total.

It would be good to print the date and time that the report was produced since we may produce the report as orders come in to gauge topping quantities and then produce a final report after orders have been closed to determine final quantities.

In general, we used the WooCommerce PDF Invoices & Packing Slips plug-in to quickly export all orders in a legible way to make our tallies and take note of special comments. We also added WooCommerce Order Status Manager so that we could set the day ordered as a status to filter for it in order to produce our PDF exports.

This project is our first priority. We understand that the developer working on this will have to do some important conceptual analysis of how the variable product and its associated add-on options are defined and tracked in order to produce this kind of reporting.

2. Printing of Pizzas Ordered Labels and Line List

After orders have come in, we manually write up a label for each pizza ordered and stick each one on a box. These labels are essential to the whole system as they help us to know which pizza to make next, which box to put a pizza in, and which customer to give the pizzas to. Important information on each label is the customer’s name, the day and time the pizza has been ordered. Additional important information includes how many total pizzas that customer has ordered for that time slot and which of those this specific one is. For the first of any series of pizzas ordered, we identify the license plate number (a custom field at check out) and how many of any additional products we have offered that week were ordered (eg. 1 bread & 3 desserts).

Here are some additional photos of this detail:

This final photo is from one of our very first weeks. You can see each pizza is designated by a topping type and also dough type ( /R or /GF ). We moved to only specifically designating /GF orders since regular dough is implied otherwise.

You can see occasional order specific details which were added in the additional notes field at checkout. This is an example of something that we could potentially continue to do manually as long as there was a code to know to check when the customer filled out the additional notes.

While we originally used the stack of the boxes as our “line list” which we referred to in the production line to know which pizza to make next, we soon realized that it was best to have a second print out of the orders which we refer to as the “line list” which was visible to the two people on the pizza production line (dough & toppings). Unfortunately, I don’t have a photo of this type of list. This version is more condensed. While still legible at a distance, it typically fit on two pages and was a slightly different view. The day was the title of the list. For each time slot, the last name and pizza topping and dough type was listed as well as any additional comments.

Implementation Notes

This means that each pizza ordered is further defined by what kind of pizza is ordered and two options: gluten free crust and/or vegan cheese.

If you are interested in taking on this job, please contact us indicating your interest, availability/timeline, include your relevant experience and billing terms. We are interested in this work being completed as soon as possible.

Posted on

Wanted: Custom PHP / WordPress / Woocommerce Modification

We are in need of a specific customization for the WooCommerce e-commerce platform for WordPress. The task would require strong working knowledge of PHP and SQL, as well as experience with both WordPress and WooCommerce.

We have experienced overwhelming community interest in the pizza nights we have offered at our farm. We have been pre-selling pizzas for pickup. The clients select the type of pizza and choose a time slot when they would like to pick up their pizza and then proceed with checkout and payment. We need to be able to limit the amount of pizzas available for any given time slot we are offering.

Here is a screenshot of current functionality:

(Click on the image above to see actual working page)

We need a way to keep track of inventory per time slot. For example, there would be a maximum of 5 total pizzas available per time slot so that the drop-down would say: “Thursday 5:00, 5 Pizzas left | Thursday 5:15, 2 Pizzas left | Thursday 5:30, SOLD OUT, etc”. These time slots are currently set as values for a product attribute which is used to determine a product variation, all using core WooCommerce functionality. We have not been able to find a plugin to do this specific tast.

We are only currently able to set a total inventory for the whole two night event each week. Orders come in and often orders are stacked on certain time slots. We then need to contact people individually and see if they are willing to move their time slot so that we can make sure to make everyone’s order in time. The desired customization would automatically create a manageable quantity of orders throughout the two nights.

If you are interested in taking on this job, please contact us indicating your interest, availability/timeline, include your relevant experience and billing terms. We are interested in this work being completed as soon as possible.