Do you know how much money you lose on returned parcels?

Most of those parcelscan be prevented.

Shipping paid twice

You paid to send it and to get it back, and sold nothing.

Stock sits idle

A week or more out of stock, instead of with a buyer who pays.

No warning

The same person refused a parcel at another shop last month. You cannot know that.

One refused parcel is not a problem.The problem is the person who does it every time.

No card needed. The plugin is free and works with WooCommerce 8 and newer.

Region

Cash on delivery is the norm here.
Nobody measures what it costs.

Every figure in the table has a source underneath it. Where no published figure exists there is a dash — the same grey circle the plugin shows when a buyer has no history.

Country COD share Shipping up to 2 kg COD fee One refused parcel
Serbia ! 69%1 RSD 600–715 €5.1–6.1 from RSD 180 1.5% of the amount RSD 1,200–1,430 €10–12
Croatia ! 50–70%2 €7.1–7.5 VAT included €1.00–1.25 €14–15
Montenegro ? no data3 €3.0–4.8 1–5 kg band5 €0.73 €6–10
Bosnia and Herzegovina ? no data3 BAM 10–13 €5.1–6.6 · up to 5 kg band5 BAM 3 €1.53 BAM 20–26 €10–13
North Macedonia ? no data3 MKD 130–180 €2.1–2.9 · 1–3 kg band5 1%, min MKD 30 €0.49 MKD 260–360 €4–6

1 Serbia, COD share 69.2% — ECDB, June 2025.  ·  2 Croatia, “50 to 70 percent of purchases end with payment on delivery” — eCommerce Hrvatska, guide to eCommerce delivery, reported by member merchants. The share is falling: the E-commerce Report 2024 (Valicon and Jeftinije.hr) finds 66% of purchases paid by card.  ·  3 For Montenegro, Bosnia and Herzegovina and North Macedonia no association, regulator or central bank publishes a COD share. We do not put a guess in that cell.  ·  4 Shipping prices come from published courier tariffs: D Express 13.03.2026, AKS 01.07.2026, City Express 01.05.2026; Hrvatska pošta Paket24 01.08.2026, Overseas Express 01.01.2026; Pošta Crne Gore commercial tariff; Brza pošta Mostar 01.07.2026, Pošte RS 01.05.2026; Brza Pratka, North Macedonia. All VAT included, domestic service.  ·  5 Montenegro, Bosnia and North Macedonia publish no “up to 2 kg” band, so the nearest one is used. The real price for 2 kg is probably lower than shown.  ·  6 The one refused parcel column is arithmetic, not a statistic: twice the published tariff, because the parcel goes out and comes back. No COD fee, because no money was collected. Packaging, your own time and the stock held in reserve are not in it. Check your contract — some couriers bill the return at the full price of a new shipment.

Nobody in the region publishes a refusal rate

We asked everyone who would have one. RATEL, the Serbian postal regulator, measures delivery times, lost and damaged items — not refused ones. The National Bank of Serbia has stated publicly that returns on cash on delivery are “drastically higher” than on card and instant payments, but attached no number to it. The associations in Croatia, Montenegro, Bosnia and North Macedonia publish nothing either.

The nearest hard measurements come from elsewhere: Greece 7.55% of parcels returned across more than 3 million orders (AfterSalesPro and GRECA, 2025), India 21–39% of COD orders returned across 410 million shipments (Unicommerce, 2026), UAE 19.6% across some 30,000 orders (Shorages, 2024). Figures like “20–30% in Serbia” that circulate online trace back to a single commercial table with no source.

That is why we are building this. Seller Protector measures that rate on real orders inside the network, and will publish it on this page once there are enough records for the number to mean something.

Calculate

What refused parcels cost you

Put in your own numbers. Nothing is sent anywhere — it is calculated in your browser.

orders
105,000

Only the ones you ship cash on delivery, not total turnover.

%
0%20%

Check how many parcels came back last month. If you do not know, leave it at 8%.

RSD
RSD 100RSD 3,000

Shipping out and back together. Published tariffs put it at RSD 1,200–1,430; a contract rate is lower.

%
0%100%

Your assumption, not our promise. The network shows you a score, the decision is yours.

Refused per month
— parcels
Monthly loss
RSD —
about €—
Yearly loss
RSD —
about €—
If you stop 33%
RSD — / month
RSD — per year

The maths: orders × refusal rate × cost of a returned parcel. The last row is your own assumption about how many risky orders you would stop, multiplied by the loss — we promise no reduction percentage, because we have not measured one yet. Packaging, your own time and stock held in reserve are not in it, so the real loss is higher than shown.

What you get

A score from 0 to 5

Collected parcels count as much as refused ones, so a single miss never sinks anyone. You set the warning threshold yourself.

A circle in the orders list

Green, amber, red, or grey for a new buyer. Hover shows the orders, shops and outcomes behind the score.

Comments from sellers

A short note with a required tag, up to 200 characters. You see what was reported, never which shop reported it.

A "Not collected" status

Added to WooCommerce. One click sends the outcome to the network. If the server is down, it waits in a queue and goes later.

The score repairs itself

A delivery stops counting towards the score 24 months after the outcome. A buyer who changes habits leaves the red zone by themselves. The record stays in the network as history, so an exclamation mark next to the circle still says it once went wrong.

Nothing readable leaves your shop

Name, phone, email and address are hashed on your own site. The server stores only hashes, protected further by a secret key.

Network status

The database is worth as many as we are

A Serbian buyer's history is worth nothing to a shop in Poland. That is why this is a network per market, and why it stays free until it gives back more than it asks for.

—
buyers in the database
—
shops in the network
—
delivery records

The figures are read from the service when the page opens.

The score sits next to the order, before you pack

Seller Protector adds one column to the orders list. A green circle means the buyer collects parcels reliably, red means the risk is high. Hover to see the numbers behind the score.

The score does not come from your shop, it comes from the network. When one seller records a refused parcel, every other seller sees it on that buyer's next order.

WooCommerce › Orders
OrderScoreCustomerTotal
#1284 4.6 Milan P.€18.20
#1283 3.1 1 Jelena I.€49.10
#1282 1.8 3 Nenad M.€29.60
#1281 ? Ana Đ.€11.00

1.8 / 5 · in 24 months: 7 orders, 5 shops, 1 collected, 6 not collected

From install to the first score

Four steps, usually done in ten minutes.

1

Install the plugin

Upload the ZIP to WordPress and activate it, like any other plugin.

2

Connect the shop

Name, domain and company number. You get a network label such as Seller #B11.

3

The score appears

On every new order the circle sits next to the order number.

4

Report the outcome

"Completed" means collected. A refusal takes one click.

What it costs you

A failed delivery is paid for twice

The first two figures come from published sources, the third is a rule inside the plugin itself. Your own numbers show up in the report after the first month.

69%
of Serbian orders are paid cash on delivery ECDB, 2025
€10
shipping out and back on one refused parcel published courier tariff
24 months
how long a record counts towards the score before it drops out
Why I am building this

This is not a startup idea.
This is my own cost.

I have shipped cash on delivery from day one. Seeds, honey, small parcels — low-value goods, where one return eats the profit from three sales.

For years I booked a returned parcel as a cost of doing business and that was the end of it. Then I started writing them down. The same names. The same phone numbers. The same people who order, never answer the courier, and come back two months later as if nothing happened.

I only see it after the second parcel. The shop next to me never sees it at all, because for them that person is a first-time buyer.

That is why I am building Seller Protector. Not so anyone gets punished — so that I know what I am packing before I stick the label on.

D
Darko starasemena.com · medmedli.com

Merchant stories

This is where stories from shops in the network will go. It is empty because the network is only starting. The first one goes up with the shop's name and its own figures — not with invented initials and invented percentages.

What you get now

The whole plugin, no limits and no card. The first 100 shops stay on the free plan permanently, even once billing starts.

What I ask in return

Report the outcome. Collected happens on its own, not collected is one click. The network is worth exactly as much as we honestly feed it.

Price

The plugin is free and stays free. What gets charged is network access, and only once the network is genuinely worth it.

Now
€0 / no limits
  • Every feature, no card
  • Unlimited checks
  • The first 100 shops keep a free plan for good
Join the network
Later
notice 60 days ahead
  • Introduced once one in three checks returns history
  • A free plan remains, with a monthly check allowance
  • Not paying drops you to the free plan, with no data lost
Sign up now
Sign up

Join the network

Leave your details and you get the plugin with setup instructions. The first 100 shops keep a free plan for good.

We send the plugin and the connection key there.
So the network only holds real companies.
Roughly. It helps us see how fast the network grows.

Frequently asked questions

Do buyers see their own score?

No. The service is for sellers only. Buyers have no account, get no notification and see no score. A seller sees the score only once that buyer orders from them.

How is a buyer recognised after changing phone number?

Four keys are used: full name, phone, email and address. Profiles merge when any two of them match. If only one matches, no score is assigned, but the seller is warned that the detail exists in the network.

What if someone files a false report?

Only a shop that actually had an order from that buyer can report an outcome, and only one record per order. Mistakes can be withdrawn within 30 days. A shop that reports falsely loses access.

What exactly leaves my site?

Hashes of the name, phone, email and address, the order number and the outcome date. No readable data, no order contents, no amounts. On the server the hashes are processed again with a secret key, so they cannot be reversed.

Is this compliant with data protection law?

Processing relies on the legitimate interest of preventing losses. Every shop names Seller Protector as a recipient in its own privacy policy; ready-made wording ships with the plugin. A delivery outcome stops counting towards the score after 24 months, while the record itself stays in the network as a hash, so it is still visible that a customer was once in the red zone. Comments, lookup logs and keys not seen for 24 months are deleted automatically. No readable data exists at any point.

Does it do anything while the database is empty?

A new buyer gets a grey circle, which is honest information rather than a score. Value grows with the number of shops in the network, which is why everything is free at this stage.

Do I have to mark every delivery by hand?

Not for collected ones. The "Completed" status counts as collected automatically, with a 14 day wait so that parcels returned later are caught. Only refusals are marked by hand, with one click.

What if your server is down?

Your shop keeps taking orders as usual. The score is skipped, the outcome waits in a local queue and goes out when the connection returns. The plugin never blocks a sale.