# Affiliate marketing: how to start an affiliate program for your store

Affiliate marketing for an online store: commission models, tracking with UTM links and codes, cookie windows, VAT on partner payouts and launch steps.

Source: https://cloudcart.com/en/blog/affiliate-program-online-store · CloudCart · 2026-11-06

Affiliate marketing is advertising where you pay a partner only for a sale they brought in. The partner (a blogger, a price comparison site, an influencer or one of your customers) gets a personal link or code, and you pay a commission, usually a percentage of the order value excluding VAT. For a store, it is a channel where the cost of every order is known in advance.

This guide is for online stores selling in or from Bulgaria and across the EU that want to run their own affiliate program. It is written by the team behind CloudCart, the Bulgarian ecommerce platform, and describes the features as they work in CloudCart. The tax section is a starting point: your accountant confirms exactly how you pay your partners.

## What affiliate marketing is and how it works for an online store

An outside partner recommends your products to their audience and earns a commission on every traceable sale. The affiliate program is the set of rules: how much you pay, for what, when, and how a sale is counted.

There are three parties, sometimes four:

- The store (the advertiser or merchant). Sets the commission, provides links, codes and creatives, and approves sales.

- The partner (the affiliate or publisher). A review site, a blog, a YouTube channel, a Facebook page, an email newsletter, a price comparison site or a loyal customer.

- The shopper. Clicks the link or enters the code and pays no more.

- The affiliate network (optional). A platform that recruits partners, tracks clicks and pays commissions. In Bulgaria and Romania the local network is Profitshare.

With Google Ads and Meta Ads you pay for clicks before you know if a sale will follow. With an affiliate program you pay after an approved order, which suits a store with a clear margin.

## Commission models: percentage, flat fee, per action

The most common model for an online store is a percentage of the order value excluding VAT and shipping, paid once the return period is over.

| Model | What you pay for | Best for | Risk for the store |

| CPS (cost per sale), percentage | % of the order excluding VAT | Most stores, mixed basket sizes | Low: you pay only on a sale |

| CPS, flat fee | € per order, whatever its value | Stores whose products are priced alike | Medium: a small order can lose money |

| CPA (cost per action) | € per action: sign-up, first order | Subscriptions, first purchase | Medium: you need checks for fake actions |

| CPL (cost per lead) | € per contact: email, quote request | B2B and expensive products | High: the lead may never buy |

| Tiers | A higher % above a sales threshold | Programs with many partners | Low, if tiers count net sales |

### How to work out the commission you can afford

Your ceiling is the gross profit on the order minus the costs you carry anyway. An example for a VAT-registered store: average order €60 including VAT (€50 excluding VAT), cost of goods €30, packing and handling €3. That leaves €17 before marketing. A 10% commission on €50 is €5, so €12 stays with you. At 20% only €7 stays, and if the item comes back you lose the shipping too.

Rule of thumb: keep the commission under a third of the gross profit on your average order. That leaves room for the partner's discount and for tracking errors.

> 0% commission The only percentage taken from the order is your partner's CloudCart takes no percentage of your sales, so the calculation above has no second commission for the platform. You pay a fixed monthly plan, and you decide the percentage and give it to the partner who brought the customer. How 0% commission works →

## How to start an affiliate program: step by step

An affiliate program takes 1 to 2 weeks to launch if you settle the rules first and the tools second.

- Work out the commission. Take the average order value and gross margin from your reports and set a % or € per order using the calculation above. Decide whether sale items are excluded.

- Write the program terms. What counts as a sale, the approval period, the cookie window, the minimum payout, banned channels (for example bidding on your brand name in Google Ads) and how the partner discloses the ad.

- Choose how you track. UTM links, a personal discount code, an affiliate network script, or a mix. The comparison is in the next section.

- Prepare the materials. Photos, short descriptions, current promotions and a product feed for comparison sites.

- Invite your first 5 to 10 partners. Start with people who already talk about your products.

- Place a test order. Click a partner link, order, and check that the order shows against that partner in your report or in the network. Cancel it after the check.

- Approve and pay on a schedule. Once a month approve the orders whose return period has passed and pay against an invoice or another document.

- Review results monthly. Sales, average order value, return rate and commission per partner.

## How affiliate sales are tracked

A sale is credited to a partner in one of three ways: by the link the shopper arrived through (UTM parameters or a network script), by the discount code they entered, or both. A code still works when the shopper has refused cookies or buys on another device, which is why most stores give each partner both a link and a code.

| Method | How it works | Pros | Cons |

| UTM link | utm_source, utm_medium and utm_campaign in the URL | No extra software, visible in your reports and in GA4 | Lost if the shopper comes back another way |

| Personal discount code | Each partner has their own code | Works without cookies and on any device | The code can leak to coupon sites |

| Affiliate network | Network script, cookie for N days | Ready pool of partners, reports and payouts | Network fee, cookie consent needed |

### UTM links

UTM parameters are tags at the end of a URL that say where a visit came from. Google recommends always using three of them for every campaign, utm_source, utm_medium and utm_campaign, according to the [Google Analytics help page on URL builders](https://support.google.com/analytics/answer/10917952?hl=en). For a partner the link looks like this: ?utm_source=partner-name&utm_medium=affiliate&utm_campaign=partners-2026. Use lower case and the same spelling for every partner, or reports split into separate rows.

In CloudCart, sales by UTM show in Analytics, in the Sales by Source / Medium box: orders are grouped by utm_source and utm_medium, and a click opens them by utm_campaign. The Sales by traffic source (referral) box also shows the site the shopper came from. One thing to know for affiliates: the built-in analytics credits the order to the first visit of the session. If the shopper comes back in a new session a few days later, the order goes to the source of that new visit. For a window of several days, use a code or a network. [The Google Analytics 4 and Tag Manager guide](https://cloudcart.com/en/blog/ga4-tag-manager-online-store) shows the same setup in GA4.

301 redirects in CloudCart keep UTM parameters and click IDs (gclid, fbclid and zanpid, used by Awin), so old partner links keep their tracking.

### Personal discount codes with Code PRO

For partner codes CloudCart uses the Discount code (PRO) type: one campaign with many codes, each with its own discount, date range, usage limit, per-customer limit, customer groups and region. The path is Marketing → Discounts → Code PRO campaign → manage codes. For example, MARIA10 gives 10% for 60 days and BLOG15 gives 15% for up to 300 uses.

Code PRO is on the CC Pro and CC Master plans. The generator creates up to 5,000 codes at once on CC Pro and up to 10,000 on CC Master (see the [plan comparison](https://cloudcart.com/en/pricing)), and the codes download as a CSV file you can hand to the partner. On Baby Pack and Starter Pack you use regular promo codes: 3 and 5 code discounts respectively. More ideas for codes are in [promo code ideas for an online store](https://cloudcart.com/en/blog/promo-codes-discounts-online-store), and every discount type is on the [CloudCart discounts page](https://cloudcart.com/en/discounts).

### Affiliate network: Profitshare

Profitshare is an affiliate network for Bulgaria and Romania, and in CloudCart the connection is under Apps → XML Feed → ProfitShare. There you switch on the CSV product feed the network reads, enter the advertiser code, the click code, the encryption algorithm and key, and paste the network's script that tracks orders. A wrong key or algorithm stops sales being credited while the feed still generates. The number of products in the feed depends on the plan: 100, 2,000, 7,500 and 10,000 from Baby Pack to CC Master.

> Sales channels A feed for Profitshare and for every partner of your own You can also publish your own XML feed at a public URL for any partner: all products or by category, brand and tag, updated automatically. How feeds and channels work →

## What a cookie window is and how many days to set

The cookie window (also cookie duration) is the period after the click during which a sale counts for the partner. With a 30-day window, if the shopper buys on day 12, the commission goes to the partner. The period is set in your terms or the network's terms. The law does not set it.

Match it to how long your customers think before buying:

- 7 to 14 days for products up to about €30 that people buy on the spot: cosmetics, accessories, food.

- 30 days for clothing, shoes, gifts and products shoppers compare.

- 60 to 90 days for furniture, electronics and expensive purchases where the decision takes weeks.

When the shopper went through two partners, the common rule is last click: the commission goes to the partner clicked last. A code entered in the cart usually takes priority over a link, because it proves intent.

The tracking cookie is stored in the browser only with consent. Under [Art. 4a of the Bulgarian Electronic Commerce Act (in Bulgarian)](https://lex.bg/laws/ldoc/2135530547), in force since 29 December 2011, information is stored on the user's device only after the user is informed and can refuse. So the network script has to wait for your cookie banner, and some sales will have no cookie at all. How to set up the banner is explained in [cookies and GDPR for an online store](https://cloudcart.com/en/blog/gdpr-cookies-legal).

## What the law says about affiliate advertising

A paid recommendation has to be marked as advertising. Under [Art. 68g, item 11 of the Bulgarian Consumer Protection Act (in Bulgarian)](https://lex.bg/laws/ldoc/2135513678), in force since 25 July 2014, editorial content paid for by a trader without saying so in the content is a misleading commercial practice. The European Commission names affiliate marketing among the advertising that must be disclosed in its [Influencer Legal Hub](https://commission.europa.eu/live-work-travel-eu/consumer-rights-and-complaints/influencer-legal-hub_en).

What to put in your program terms:

- Disclosure. The partner states clearly next to the link, or at the start of the video, that they earn a commission, for example "ad" or "affiliate link".

- Links on websites. Google asks for paid links to carry rel="sponsored" (it also accepts rel="nofollow" ), per Google's guidance on qualifying outbound links .

- Product claims. The partner uses only your descriptions and prices, with no health promises and no discounts that don't exist.

- Banned channels. Ads on your brand name, coupon sites, emails sent without consent, fake reviews.

- Consequences. On a breach, the commission for the period is not paid and the partner is removed.

Contracts, disclosure and payment for influencers are covered in detail in [influencer marketing for an online store](https://cloudcart.com/en/blog/influencer-marketing-online-store).

## Taxes and paperwork for partner commissions

A commission is a payment for a service, so the document and the VAT treatment depend on who the partner is and where they are established. The most common cases under the [Bulgarian VAT Act (in Bulgarian)](https://lex.bg/laws/ldoc/2135533201) are in the table (Art. 21(2), Art. 82(2) and Art. 97a, in force since 1 January 2010).

| Partner | Document | VAT |

| Bulgarian company registered for VAT | Invoice | The partner charges 20% VAT, which you deduct as input VAT if you are registered |

| Bulgarian company not registered for VAT | Invoice without VAT | No VAT charged |

| Company in another EU country | Invoice without VAT (reverse charge) | The place of supply is Bulgaria (Art. 21(2)) and you, as the recipient, account for the VAT (Art. 82(2)) |

| Individual without a company | Contract and a record of the amount paid | No VAT, the income is taxed under the Personal Income Tax Act |

The EU company case catches stores out most often. Under Art. 97a of the VAT Act, a store that is not VAT-registered and receives such a service must register for VAT on that ground alone. If you work with partners or a network that invoice from another EU country, talk to your accountant before the first payout.

For an individual without a company, the commission is taxable income under the Personal Income Tax Act. Whether you withhold tax depends on the contract, so prepare it with your accountant first.

### When to pay: the return period

Pay the commission once the period in which the shopper can return the goods has passed. Under Art. 50 of the Consumer Protection Act the shopper has 14 days to withdraw from an online purchase, and under Art. 54 you refund within 14 days. An approval period of 30 days after delivery covers withdrawal, return and refund, and an order returned or cancelled within it earns no commission.

> CloudCart Pay 0% transaction fee through Dec 31, 2026 When a partner brings a customer who pays by card, Apple Pay or Google Pay, no payment fee comes out of the order until the end of 2026. The commission stays the only variable cost besides shipping. How CloudCart Pay works →

## Which partners to invite first

The best partners for a small store have an audience that already buys similar products.

| Partner type | What you give them | Suitable model |

| Review and comparison site | Product feed, links, banners | % of the sale, 30 days |

| Niche blog or YouTube channel | Samples, a personal code, a link | % of the sale, higher for the first 3 months |

| Instagram, TikTok or Facebook profile | A personal code with a discount for the audience | % or € per order on the code |

| Loyal customer | A personal code for friends | Store credit or % of the order |

| Price comparison site or catalog | XML feed | Usually the comparison site's own rules |

Customers who already recommend you are the cheapest place to start: give them a personal code for friends after their second order. How to keep and reward them is covered in [loyalty programs and repeat purchases](https://cloudcart.com/en/blog/customer-loyalty-repeat-purchases).

## Mistakes that make an affiliate program lose money

- Commission on the total with VAT and shipping. You end up paying a percentage of the tax as well.

- Paying before the return period ends. Every return in the first 14 days becomes a straight loss.

- One rate for every product. A product with a 15% margin and a 20% commission loses money on every sale.

- Codes with no limits. An open code reaches coupon sites, and you pay for customers who would have bought anyway.

- Brand bidding. A partner who runs Google ads on your store's name earns commission on customers who were already looking for you.

> New store €1/month for the first 3 months on every plan Discount codes, UTM reports and partner feeds are built into the platform, so your program can start in the first month. The offer is for new stores, on every plan, until Dec 31, 2026. Create a store for €1 →

## Frequently asked questions

**What is affiliate marketing in simple terms?**

Affiliate marketing is advertising where a store pays a partner only when the partner brings a sale. The partner shares a personal link or code, and the store tracks the orders and pays a commission, usually a percentage of the amount excluding VAT.

**What commission rate should I offer affiliates?**

Enough that the order is still profitable after paying it. A good start is a commission under a third of the gross profit on your average order. On a €50 order excluding VAT with €17 profit before marketing, that is up to about €5, or 10%.

**How do I start an affiliate program for my online store?**

Work out the commission, write the terms (window, approval, banned channels), choose UTM links and personal codes or a network, and invite 5 to 10 partners from your niche. Test with one order, then approve commissions monthly after the return period.

**What is a cookie window in affiliate marketing?**

It is the period after the click during which a purchase counts for the partner, for example 30 days. You set it in your program terms: 7 to 14 days for quick purchases and 30 to 90 days for expensive products.

**Do affiliates have to disclose that it is an ad?**

Yes. In Bulgaria a paid recommendation without disclosure is a misleading commercial practice under Art. 68g, item 11 of the Consumer Protection Act. The partner clearly writes "ad" or "affiliate link", and links on websites carry rel="sponsored".

**How do I pay commission to an affiliate in another EU country?**

The partner issues an invoice without VAT, and you as the recipient account for the VAT (Art. 21(2) and Art. 82(2) of the Bulgarian VAT Act). If your store is not VAT-registered, such a service triggers registration under Art. 97a, so talk to your accountant before the first payout.

**Can I run an affiliate program on CloudCart?**

Yes. Personal partner codes are made with Code PRO (on CC Pro and CC Master), UTM sales show in Analytics, and Profitshare has a built-in connection with a product feed and tracking script. A new store costs €1/month for the first 3 months, with 0% commission on sales.

More on [sales channels](https://cloudcart.com/en/sales-channels) and [store analytics](https://cloudcart.com/en/analytics). Questions: [support@cloudcart.com](https://cloudcart.commailto:support@cloudcart.com).
