Free Downloads WooCommerce is a very simple App that will create Download Buttons on free items so that people don’t have to log in, and it also will keep track of how many times a file has been downloaded, so you know which are the most popular freebies and can act based on that.
So that fixed my main problem. One of the main problems I then had, however, was that I wanted to have a shop page and a freebies page and I did not want my Freebies to show up in the Shop because I do have a lot of freebies and I just felt like they would overpower the shop – and well, that Shop finances my whole blog and Instagram where I review all of the art supplies, so I needed the Shop Items to get enough attention.
So I decided to rewrite the Shop Loop. If you are not a programmer, you might want to google for a plugin before changing code, and if you are brave enough to do code changes when inexperienced, always make a backup and never change actual theme files but use a child theme.
I gave all of my freebies the Freebies Category. Then added the following Code to my functions.php file
We’re basically just hooking into the post collector function before the shop loop is generated and removing the freebies Category from it. So before the loop is populated, all of the posts are collected. We are preventing the category posts from being added to that collection. Super simple.
Because I wanted to offer my customers to offer the option of paying either in USD or EUR in addition to my home currency CHF, I looked into many different options for currency switchers. I only needed two additional currencies so I knew that a free plugin would do. However I really wanted a plugin that allowed for automatic currency conversion based on an online source. I didn’t want to add it manually.
So after a lot of searching I ended up going with Currency Switcher for WooCommerce The Plugin Page also documents the Settings very well. One of the biggest issues I had faced when trying to find good plugins for free was finding some that were well enough documented that I was able to set it up so that it worked how I wanted it to.
The same Developer also offers the Booster for WooCommerce Plugin which has a TON of additional features, stuff like Bookings, Open Pricing, etc. It also comes with a Currency Switcher but the free Version of Booster has more limited settings than their free Currency Switcher, so I ended up using the Separate Currency Switcher and using Booster for the Reporting. The non-WooCommerce Currency Switcher messes up the default reports. So WooCommerce by itself will just count the sales made in your default currency.
The Booster Reports Module will fix that issue. It is also the only Module I have currently active in this Toolbox (it comes with 100+ modules) I haven’t looked at them all but this will most definitely fulfill a lot of needs. I only recently discovered this, so I set all of the rest up before I even looked if Booster had another option. But I am happy with my setup, so right now I have no plans of incorporating more tools into it.
I love Sales and having Flash Sales. WooCommerce does offer a Sale Option for every item but having a sitewide Sale on everything is sometimes what we want, and also having it turn on from a time and then turn off.
The Plugin I use for that is Finale – WooCommerce Sales Countdown Timer & Discount Plugin Lite it is a great App that allows you to create “Campaigns” so you can plan out Sales. Stuff like Black Friday or Cyber Week can be planned out. They can be recurring, or one time. They can be Fixed Price Discounts or Percentages.
This App has been perfect for all of those Big Sales that happen once or twice a year. Also it comes with a countdown that I weirdly enjoy.
Okay, so one of the things I did back when I had my Etsy Store was sell my brushes in Sets, where I had a fixed Discount amount in my pricing table, but the problem with that was that this reduced the freedom. I really just wanted people to put the sets together themselves. The easiest way for me to do this was programmatically. I did actually write a whole blogpost on how I created my Mass Discounts, so Read that here if you want to learn more.
Okay, so this literally drove me crazy, which is why I will go over this in quite a bit of detail. The way shipping is handled in WooCommerce looks very simple at first and I was sure that I needed a plugin to make my “complex” scenario work. But after a lot of research and trying to find my inner logical self I managed to figure it all out with the default.
So let me run you through the shipping rules I have and how I made them work. Generally I sell two types of physical items. Number one being Wax Seals, which are shipped by GetMarked from the US directly and Number Two my Stickers, which are shipped by me from Switzerland.
The Shipping Table for the Wax Seals is very much using an Etsy Fashion
Shipping Cost for one order | Shipping cost for each additional order | Destinations | Carrier |
---|---|---|---|
3.5 | 1.5 | US | USPS First Class Mail |
10 | 2 | Canada | Canada Post Expedited Parcel |
13 | 3 | UK | DHL eCommerce |
15 | 4 | Others | DHL eCommerce |
The Table for my Stickers is a lot simpler, Swiss Post basically has just 3 shipping Zones and for simple letters 3 different price ranges.
Destination | Swiss Post Economy Price | Swiss Post Priority Price | Swiss Post Registered |
---|---|---|---|
Switzerland & Liechtenstein | 0.85 | 1 | 5.3 |
Europe | 1.4 | 1.5 | 7.5 |
Rest of The World | 1.7 | 2 | 8 |
So how on earth would I combine all of those.
The first issue was setting up the Shipping Zones.
I needed USA, Europe, Canada, UK, Switzerland, Liechtenstein, Rest of the World each in their own Zone. The biggest Problem was the fact that the Europe Region contains the UK, Switzerland and Liechtenstein so whenever I would set up a Europe Zone the Shipping of that Zone would be used instead of the respective Country Zone. So I took a minute of calming myself down and then created a Zone where I selected every single freaking country in the Europe Region except for UK, Liechtenstein and Switzerland, and that gave me my Zones.
That meant that I would have to repeat some of my shipping options (Switzerland & the EU & Others would all get the DHLeCommerce for the Wax seals) same for UK and EU, and US, Canada and Others for the Swiss Shipping options. But I am fine with that since shipping costs usually don’t change that often and I am okay with having to adjust it in 3 zones if I can save $100 for a premium plugin.
Okay, how would I now prevent the swiss shipping from showing up on checkout during a Seal Sale and how would I get rid of the Seal Shipping Options when people were buying stickers? Shipping Classes. In the Shipping Classes Setting I created two different shipping classes, one for Seals and one for Stickers.
Then on each product in the Product Data Settings under the Shipping Tab I added the respective shipping class.
Then it was pretty easy.
Editing the Shipping Zones, I added Flatrate Shippings for all of my options.
Instead of adding my shipping price in the Cost Field, I only added a number in the respective class. Leaving the fields for the other class empty so it would not show up when items of the other class were in the cart.
Because my items are shipped from two different places I cannot combine shipping, thus it is important, that the Calculation type is set up Per Class, so if Items of both classes are bought, both shipping methods will show up and be charged.
Okay, so that’s easy. But how to handle the formulas from the seals?
Basically WooCommerce allows you to create super minimal logic within the number field. So all we need to do is figure out a simple formula to descripe shipping cost.
Basically we have a base cost and then a cost for additional items.
In the example of the international shipping our price for 1 item is 15, additional items are 4 each. Now WooCommerce allows us to use [qty] within our formula.
And that’s really all there is to it.
If you have any more questions please feel free to contact me.