Online Store Pricing: What's Left After Ads and Taxes
In short: To calculate prices in your online store correctly, first deduct VAT (Umsatzsteuer) from the gross price and then all costs per order: goods, packaging, shipping, payment fees, returns and advertising costs. Only what is left after that is your contribution to fixed costs and profit. In the worked example below, a €49.90 product with a €12 purchase price leaves only about €3 profit per order if you pay €15 in advertising costs per order.
“€10,000 in sales” sounds good, but it says nothing about what’s left. In this article on online store pricing, you’ll learn to calculate your prices so that something really remains after taxes, shipping, returns and advertising. With a complete worked example in euros, a template to recalculate and the pricing rules that apply in Germany. The article is part of the overview Payments, payouts & calculation in Shopify.
Revenue is not profit
Many beginners calculate like this: the product costs €50 from the supplier, I sell it for €70, so I earn €20. That’s not right. Of the €70, about €11.18 goes to the tax office as VAT (at 19% and standard taxation). Then come the payment fee, shipping, possibly returns and, above all, the advertising costs you spent to bring the customer to your store in the first place. Often little is left, sometimes a loss.
The formula to go by:
Profit = net revenue − cost of goods − packaging − shipping − payment fees − return costs − advertising costs − fixed costs
Everything left before advertising costs is called the contribution margin (Deckungsbeitrag). It is the most important number for your pricing decision, because it determines how much you can spend on advertising.
All costs that belong in your online store pricing
| Cost block | What it includes | Typical mistake |
|---|---|---|
| VAT | 19% (7% for some goods) included in the gross price | Calculating with the gross price as if it were yours |
| Cost of goods | Purchase price plus freight, customs duty and import VAT (Einfuhrumsatzsteuer) until it reaches you | Using only the price from the app, forgetting exchange rate and customs |
| Packaging | Box, filler, label, inserts, license fee for the packaging compliance system | “It costs almost nothing” |
| Shipping | Postage to customers, even if you offer “free shipping” | Offering free shipping but not building it into the price |
| Payment fees | Shopify Payments, PayPal, Klarna; with third-party providers, the Shopify transaction fee on top | Only seeing the percentage fee, not the fixed fee per payment |
| Returns | Return label, handling, goods that can no longer be sold, lost outbound postage | Ignoring returns completely |
| Advertising costs (CAC) | Ad spend divided by the number of orders | Treating advertising separately as a “marketing budget” instead of per order |
| Fixed costs | Shopify subscription, apps, theme, accounting, legal texts | Leaving them out because they are “incurred anyway” |
What Shopify itself costs in subscription and fees is covered in detail in What does Shopify really cost?. If your goods come from outside the EU: since July 1, 2026, there is no longer a customs exemption for shipments under €150, and import VAT applies from the first euro. This belongs in the cost of goods.
Worked example: 100 orders at €49.90
To include returns and advertising costs realistically, we don’t calculate with a single order but with 100 orders in one month. All values are assumptions for an example, not averages. Use your own numbers.
The assumptions
- Selling price: €49.90 gross, free shipping. That’s €41.93 net; VAT is €7.97 (19%, standard taxation).
- Cost of goods: €12.00 net per unit, including freight and customs until it reaches you.
- Packaging: €0.80 per parcel.
- Shipping: €5.00 net per parcel. For comparison: a DHL parcel up to 2 kg costs €6.19 online for private customers; business customers pay individual, usually lower rates.
- Payment fees: A mix of 50% card via Shopify Payments (approx. 2.1% + €0.30), 30% PayPal (2.99% + €0.39 according to the PayPal fees page (German)) and 20% Klarna (approx. 2.99% + €0.35). That averages about €1.61 per order. We assume the fee isn’t returned on refunds.
- Return rate: 10%. Per return, €5.00 for the return label and €2.00 for inspection and restocking. 10% of returned goods can no longer be sold.
- Advertising costs: €15 per order (CAC), i.e. €1,500 ad budget for 100 orders.
- Fixed costs: €66 per month (only Shopify Basic at approx. €36 plus €30 for apps; legal texts, domain and accounting are left out here for simplicity and would be added in your own calculation).
The calculation
| Item | Calculation | Amount |
|---|---|---|
| Net revenue | 90 kept orders × €41.93 | €3,773.95 |
| − Cost of goods | 90 × €12.00 + loss of value on 10 returns (10 × €1.20) | −€1,092.00 |
| − Packaging | 100 × €0.80 | −€80.00 |
| − Shipping to customers | 100 × €5.00 (the returns were shipped too) | −€500.00 |
| − Return costs | 10 × (€5.00 + €2.00) | −€70.00 |
| − Payment fees | 100 × approx. €1.61 | −€160.70 |
| = Contribution margin before advertising | €18.71 per order | €1,871.25 |
| − Advertising costs | 100 × €15.00 | −€1,500.00 |
| = Contribution margin after advertising | €371.25 | |
| − Fixed costs | Shopify subscription and apps | −€66.00 |
| = Profit before income tax | about €3.05 per order | €305.25 |
So from €4,990 in gross revenue (100 orders), just over €305 profit remains, and income tax still has to come out of that. The product sells gross for a little over four times its purchase price, and the margin is still thin. The biggest cost block isn’t the goods but the advertising.
How much can a customer cost? Break-even CAC and ROAS
From the contribution margin, you derive the maximum you can spend on advertising per order without making a loss.
- Break-even CAC = (contribution margin before advertising − fixed costs) ÷ orders = (€1,871.25 − €66) ÷ 100 = €18.05. If an order costs you more, you lose money.
- Break-even ROAS = gross price ÷ break-even CAC = €49.90 ÷ €18.05 = 2.76. If your ad account shows a ROAS below 2.76, you’re operating at a loss.
You should know these two numbers before you run your first ad. They’re also your stop criterion when testing a product. How to set up a first campaign with this goal is explained in Meta Ads for Shopify beginners.
What a different price makes
Same product, same costs, same €15 advertising cost per order. Only the selling price changes. Note when comparing with other articles: the €39.90 column uses the assumptions above (€12 purchase price, shipping and packaging extra, 10% returns, fixed costs). The dropshipping and Meta Ads examples at €39.90 assume a €14 purchase price including shipping and a flat return reserve, and therefore arrive at about €16.89 contribution margin before advertising.
| €39.90 | €49.90 | €59.90 | |
|---|---|---|---|
| Net price | €33.53 | €41.93 | €50.34 |
| Contribution margin before advertising per order | €11.40 | €18.71 | €26.02 |
| Break-even CAC | €10.74 | €18.05 | €25.36 |
| Break-even ROAS | 3.71 | 2.76 | 2.36 |
| Profit at 100 orders | −€425.60 | €305.25 | €1,036.11 |
Here, €10 more on the price makes more than triple the profit, and €10 less turns the profit into a loss. In practice, you might sell somewhat less at the higher price, and advertising costs per order go up. Still, the table shows why low prices rarely work with paid advertising: products with €10 to €15 of room before advertising are usually too tight for paid ads. For such products, organic channels are better; see First sales without an ad budget.
How to set your price
- Determine costs per order as above, without advertising.
- Estimate advertising costs realistically. Without your own data, it’s better to estimate too high than too low.
- Set a target profit per order.
- Calculate the minimum price backwards: costs + advertising + target profit = required net price, plus payment fee, times 1.19 for the gross price.
- Compare with the market: What does something comparable cost in Germany, on Amazon, at competitors? If your minimum price is far above that, you need a better offer (bundle, brand, service) or a different product.
The easiest way to compare prices is by hand: Google Shopping, Amazon and the stores advertising the product in the Meta Ad Library. If your product comes from a dropshipping app, the “selling price” suggested there is only a suggestion. You set your price yourself. Whether the model works at all with your numbers, you can check with Is dropshipping still worth it in 2026?.
Prices from DSers, AutoDS or CJ: what to watch out for
Many questions revolve around why the price in the app differs from AliExpress and which price to enter in the store. The answers:
- Calculate with the real purchase price. Differences from the price on the supplier’s page often come from the exchange rate, the chosen shipping method, the variant or a time-limited promotion at the supplier. What counts is what you actually pay when ordering, including shipping to your customers.
- Set pricing rules deliberately. Apps like DSers or AutoDS can calculate the selling price automatically from the purchase price using a pricing rule, for example with a multiplier or a fixed markup. Derive the multiplier from your calculation, not from rules of thumb like “times 3”.
- Keep an eye on price changes. If the supplier raises its price or shipping costs, your margin shrinks without you noticing. Check the purchase prices of your bestsellers regularly. If your supplier has different shipping costs per destination country, calculate with the most expensive country you ship to, or create separate prices per shipping zone.
Free shipping or shipping extra?
Both work. The costs don’t disappear; they just show up in a different place.
- Free shipping: The price looks higher, but there’s no surprise at checkout. Works well for single products and prices where shipping is a small percentage.
- Shipping extra: The product price looks cheaper, and shipping costs are added at checkout. Makes sense for heavy or bulky products and when customers often buy several items.
- Free above an order value: A middle ground that can motivate customers to fill a bigger cart. Set the threshold above your usual single purchase.
How to set up shipping rates and thresholds in Shopify is explained in Setting up shipping in Shopify.
Pricing rules in Germany: total price, unit price, strikethrough price
The German Price Indication Ordinance (Preisangabenverordnung, PAngV) dictates how you show prices to consumers:
- Total price (§ 3 PAngV): The displayed price includes VAT and all other price components.
- Notices in the online store (§ 6 PAngV): You state that prices include VAT and whether shipping costs are added, for example “inkl. MwSt., zzgl. Versand” (incl. VAT, plus shipping) with a link to the shipping costs.
- Unit price (Grundpreis): If you sell by weight, volume, length or area, you must also state the price per unit of quantity, for example per kilogram or liter.
- Strikethrough prices (§ 11 PAngV): If you advertise a price reduction, you must state the lowest price of the last 30 days before the reduction. In July 2026, the Düsseldorf Regional Court (Landgericht Düsseldorf) ruled that even an unclear reference to the recommended retail price can count as your own reduction (case no. 38 O 219/25). So you may not strike through an invented “was” price at which you never sold.
A good overview is the IHK fact sheet on price indications to consumers (German). On the Düsseldorf Regional Court decision: report at Otto Schmidt (German).
Entering and changing prices in Shopify
In Shopify, you set the price per product, or per variant for products with variants. On the product page in the admin, the Pricing section has a compare-at price (for strikethrough prices) next to the selling price, and a field for cost per item. Enter your purchase price there so Shopify can track costs and profits. However, advertising, shipping and returns aren’t included in this value. You do the full calculation yourself, as above.
- Unit price: The Pricing section has its own field for the unit price (“Grundpreis” in the German admin). According to Shopify, all Online Store 2.0 themes display it. If it doesn’t appear, check that you entered it on the right variant.
- Many prices at once: If you change prices for many products, use bulk editing in the product list or CSV export and import.
- Surcharge for options: The easiest way to handle an engraving or personalization with a surcharge is as a separate variant with a higher price. Free-text fields with a surcharge need a personalization app; see Selling personalized products with Shopify.
- Prices for business customers: You set separate wholesale prices with Shopify B2B via catalogs. Only business customers you’ve created as companies and who are logged in see them. What B2B can do in which plan is covered in Setting up Shopify payment methods.
If you want to display prices in Shopify including tax, as is customary for consumers in Germany, check your store’s tax settings. How price, images and text work together on the product page is shown in The perfect Shopify product page.
FAQ
What markup on the purchase price is typical?
There’s no fixed percentage that always fits. The worked example shows: even four times the purchase price leaves only about €3 profit with €15 advertising costs per order. What matters isn’t the markup but what remains after VAT, shipping, fees, returns and advertising. Calculate your break-even CAC and check whether you can win customers at that price.
Do I have to pay tax on the profit?
Yes. In Germany, the profit from your store is subject to income tax and, once your trade income exceeds the allowance, also to trade tax (Gewerbesteuer). In addition, unless you are a small business under the Kleinunternehmerregelung, you pay over the VAT contained in your prices. So VAT is never your money. For income tax, you should set aside part of every profit and talk to a tax advisor.
Is advertising worth it for a product with a €10 to €15 margin?
Usually not, if “margin” means the room before advertising. If your advertising costs per order are in the range of €10 to €20, the advertising eats up the entire contribution margin. Better options: raise the price, offer bundles so the cart gets bigger, or win customers organically via social media, SEO and email, where there are no costs per click.
Why don’t customers just buy directly from AliExpress?
Some do. But most don’t know the product from there at all; they see it in your ad. They pay for faster shipping from the EU, German customer service, easy returns, trustworthy payment methods and a convincing presentation. If your store offers none of that and is only more expensive, you really do have a problem with your offer.
Where can I find return rates for my industry?
Reliable industry figures are rarely up to date. The Returns Management Research Group at the University of Bamberg (German) found for 2021 that almost one in four parcels in German online retail was sent back, with big differences between industries. Fashion is considered particularly return-heavy. It’s best to use your own rate after the first few months.
What percentage of revenue remains as profit?
There’s no reliable average; it depends mainly on advertising costs and returns. In the worked example above, about €305 profit before income tax remains from €4,990 gross revenue, i.e. just over 6%. Videos that only show revenue say nothing about profit. Calculate your own rate from net revenue minus all costs per month, and you’ll know where you stand.
How do I account for the Shopify subscription and apps in the price?
Divide the monthly fixed costs by the expected number of orders per month. With €66 fixed costs and 100 orders, that’s €0.66 per order; with 20 orders, it’s already €3.30. Especially at the beginning with few orders, fixed costs are therefore noticeable. As revenue grows, they hardly matter per order.
Read next
As of: October 2026. All amounts in the worked example are assumptions for illustration. Fees for Shopify Payments and Klarna are approximate values from secondary sources. This article is not legal or tax advice.
Monetais
Rather have your store built?
Monetais, our Shopify agency, builds stores for merchants in Germany, Austria and Switzerland – from theme and product data to legal pages and launch.