Setting Up Taxes
Sunshine Photo Cart includes a built-in tax system that works out the rate from the address where the order changes hands. You can set up location-based tax rates, control how prices are displayed, and mark individual products as taxable or not.
Which Address Sunshine Uses
Which address the rate is matched against depends on how the order reaches the customer:
- Orders you ship use the shipping address
- Orders collected in person use your store address, because the goods never travel
- Downloads use the customer's billing address
There is more detail, including what happens before a customer has entered an address, in which address is used for tax.
How to Set It Up
- Go to Sunshine > Settings > Taxes
- Check Enable Taxes
- Add your tax rates (see below)
- Configure the display and pricing options
- Save your settings
- Make sure each product that should be taxed has the Taxable checkbox checked (in the product editor)
Adding Tax Rates
The tax rate table lets you define rates based on location. Each row has four fields:
- Country — Select a country, or choose "All countries" for a catch-all rate
- State / Province — Optional. Narrow the rate to a specific state
- Zip / Postal Code(s) — Optional. Narrow further to specific zip codes. You can enter multiple codes separated by commas (e.g.,
90210, 90211, 90212). You can also use a*wildcard to match a prefix (902*matches any code starting with 902, including zip+4 and alphanumeric codes likeCB23*), or a...range to match all numeric codes between two values (90210...99000) - Tax Rate — The tax percentage (e.g.,
8.5for 8.5%)
Rate Matching
Rates are matched from top to bottom — the first matching rate wins. Put your most specific rates (with zip codes) at the top and broader rates (country-only or "all countries") at the bottom. You can drag rows to reorder them.
Example setup:
| Country | State | Zip | Rate |
|---|---|---|---|
| US | CA | 90210 | 9.5% |
| US | CA | 7.25% | |
| US | NY | 8.875% | |
| US | 6% |
In this example, an order going to Beverly Hills (90210) is taxed at 9.5%, other California orders at 7.25%, New York orders at 8.875%, and all other US orders at 6%. The address being matched is whichever one applies to that order, as described above.
Default Customer Location
This setting controls what happens when there is no customer address to work from yet, such as while somebody is looking at their cart before checkout:
- No location by default — No tax is shown until the customer enters an address at checkout
- My business location — Uses your business address (from Sunshine > Settings > General) to estimate the tax in the meantime
This setting is only about the estimate shown before an address exists. It is separate from orders collected in person, where your store address is the correct address for the finished order rather than a stand-in.
Price Display Options
Display Prices
Controls whether product prices shown on your site include tax or not:
- Excluding tax — Prices are shown without tax. A separate tax line appears in the cart and checkout totals.
- Including tax — Prices are shown with tax already added in. No separate tax line is displayed.
Prices Entered With Tax
Tells Sunshine whether the prices you enter in your product settings already include tax:
- No, prices do not have tax included — You enter base prices and Sunshine adds tax on top
- Yes, prices do have tax included — You enter final prices and Sunshine extracts the tax portion
Price Display Suffix
An optional text label that appears after prices, such as "(incl. tax)" or "(+ tax)". This helps customers understand what the displayed price includes. Leave blank for no suffix.
Per-Product Tax Control
Each product has a Taxable checkbox in its settings (under the General tab when editing a product). Only products marked as taxable will have tax applied. This lets you exempt specific products — for example, digital downloads may not be taxable in your jurisdiction.
Shipping methods also have their own Taxable checkbox, configured in Sunshine > Settings > Shipping for each shipping method instance.
Still need help?
If you have not yet found your answer in the documentation articles, please contact support