# Ecommerce fulfillment in Bulgaria: own warehouse or a 3PL

Ecommerce fulfillment in Bulgaria: own warehouse or a 3PL, the true cost per order, what the contract needs and how store orders reach the warehouse.

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

In short: ecommerce fulfillment means a third-party logistics company (3PL) receives and stores your stock, picks and packs every order and hands it to a courier. It pays off when packing eats the hours you need for selling, or when seasonal peaks no longer fit your space. Under the law, you stay responsible to the customer.

This guide is for store owners selling in or from Bulgaria, including foreign founders and EU sellers, who are deciding whether to keep packing or hand the warehouse to a 3PL. It is written by the team behind CloudCart, the Bulgarian ecommerce platform; legal points link to EUR-Lex and the official Bulgarian legal database.

## What is ecommerce fulfillment and what do fulfillment services include?

Ecommerce fulfillment is everything that happens to an order between payment and the courier: the item is found on the shelf, picked, packed, labelled and handed over for delivery. A company that does this for a fee is called a 3PL (third-party logistics provider) or a fulfillment center.

EU law has a precise definition. Under Article 3(11) of [Regulation (EU) 2019/1020](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32019R1020) on market surveillance, which applies from 16 July 2021, a "fulfilment service provider" is anyone who offers at least two of four services, warehousing, packaging, addressing and dispatching, without owning the goods.

A full fulfillment service usually runs through six steps:

- Goods in. Your supplier's delivery is counted and each item gets a shelf location by SKU or barcode.

- Storage. Stock sits on a shelf or pallet, usually for a monthly fee by space used.

- Pick. A warehouse worker collects the items for the order, usually with a barcode scanner.

- Pack. The goods go into a box or mailer with the agreed fill and inserts.

- Label and courier handover. The parcel gets a waybill (the courier's shipping label) and leaves the same or the next working day, depending on when the order came in.

- Returns and stock reports. Returns are inspected and restocked or set aside, and stock levels are reported to you.

Delivery from the courier to the customer is the next step. How that works with Econt and Speedy, the two largest Bulgarian couriers, and with BOX NOW parcel lockers is covered in the guide to [waybills from the admin](https://cloudcart.com/en/blog/shipping-couriers).

## Warehouse rental or fulfillment: which is cheaper for an online store?

Renting your own warehouse is cheaper when volume is steady and your goods need careful handling. A 3PL is cheaper when volume swings, when you have strong seasonal peaks and when you have no one to run a warehouse. With your own space you pay for empty shelves and idle hours too; with a 3PL you pay for occupied space and processed orders.

All four models work with a store on CloudCart:

| Model | Fixed costs | Control over packing | Peaks (Black Friday, Christmas) | How it connects to the store |

| Stock at home or in the office | almost none | full | hard, you do everything | orders and waybills from the admin |

| Rented warehouse with your own staff | rent, salaries, equipment | full | temporary staff and overtime | Pick & Pack terminals and bulk waybill printing |

| Fulfillment center (3PL) | monthly minimum and storage, if agreed | by contract: box, inserts, tape | the 3PL absorbs them, if capacity is agreed | the Frisbo app, or a webhook and API to the 3PL's system |

| Dropshipping | no warehouse | almost none | depends on the supplier | XML sync and the Suppliers app |

If you are looking at warehouse space in Sofia or Plovdiv, remember that a warehouse half empty in summer and full in December is paid for all year. If you would rather hold no stock at all, see how [dropshipping works and what is left from each order](https://cloudcart.com/en/blog/what-is-dropshipping).

## When should you outsource your warehouse to a fulfillment center?

Outsourcing is worth it when at least two of the situations below are a daily problem, judging by your data from the last three months.

- Packing takes your day. The owner spends hours packing every day instead of working on ads and products.

- Mistakes come back as costs. Each wrong or missing item means a second delivery.

- Peaks do not fit. In November and December orders pile up and parcels leave days late.

- You are out of space. The next supplier delivery has nowhere to go.

- You want same-day dispatch. A 3PL with an agreed cut-off time ships everything ordered before it on the same day.

- You sell in another country. A warehouse close to your customers shortens delivery, but brings tax obligations, covered below.

Fulfillment is a poor fit for handmade and personalised products, and for low volumes where the 3PL's monthly minimum costs more than your own storage.

## How much does ecommerce fulfillment cost per order?

Fulfillment cost is calculated per order: handling, packaging, the order's share of monthly storage and goods-in fees, and the courier. Compare 3PL quotes on that total, never on the pick and pack fee alone, because a low handling fee can sit next to high storage or goods-in fees.

| Fee | How it is usually charged | What to ask |

| Goods in (receiving) | per pallet, carton or item | Is every item counted, and how fast is stock on the shelf |

| Storage | per pallet space, shelf or cubic metre per month | Is it billed on average or peak space used |

| Order handling (pick & pack) | per order, plus a surcharge for each extra item | How many items the base fee covers |

| Packaging materials | per box, mailer and fill, or included in handling | Can they use your own branded boxes |

| Courier | on the 3PL's courier contract or on yours | Which courier, to an address, office or locker, and how cash on delivery is handled |

| Returns | per returned parcel, with inspection and restocking | How many days the inspection takes and how you are notified |

| Monthly minimum and integration | a fixed amount if orders fall below a threshold | Is there a one-off setup fee, and how long is the contract |

### The comparison formula

For a 3PL: cost per order = handling + extra item surcharges + materials + (monthly storage + monthly goods-in fees) / orders per month + courier. Then add the share of returns: the return fee multiplied by your return rate.

For your own rented warehouse: cost per order = (rent + utilities and security + warehouse salaries and social security + equipment spread over months) / orders per month + materials + courier. Calculate it separately for a quiet month and for December.

Put a price on your own hours in the warehouse too, at the cost of an employee who would take them over.

> 0% transaction fee The platform takes no share of the order When your margin is already split between the warehouse, the courier and advertising, a percentage to the platform is one more line in the sum. In CloudCart you pay a fixed monthly plan and 0% of sales, so the cost per order holds only the warehouse, the courier and your ads. How the 0% transaction fee works →

## What to check in a 3PL contract

A 3PL contract has to cover the deadlines the law gives you towards the customer, because you are the one who answers to the customer. Under Article 103b of the Bulgarian [Consumer Protection Act](https://lex.bg/laws/ldoc/2135513678) (in Bulgarian; the rule applies from 25 July 2014), the trader delivers the goods within 30 days of the contract unless agreed otherwise, and under Article 103c the risk of loss or damage passes to the customer only once they receive the parcel. A parcel broken or lost on the way is your problem, whatever your warehouse contract says.

- Cut-off time. Up to what hour an order leaves the same day, including weekends and holidays.

- Accuracy and liability for mistakes. Who pays for the second delivery when an item is wrong or missing, and how the mistake is proven.

- Loss and damage in the warehouse. Up to what value the 3PL is liable, at cost price or retail price, and whether the stock is insured.

- Returns within the legal deadline. In the EU the customer has 14 days to withdraw from an online purchase , and in Bulgaria you must refund them within 14 days of their notice (Articles 50 and 54 of the Consumer Protection Act). Inspection of the returned parcel has to be faster than that.

- Stock reports. How often you get one, and who pays for shortages found at stocktaking.

- Cash on delivery. Whose courier contract the parcels ship on, and how many days the collected cash takes to reach your account.

- Leaving the contract. The notice period and the cost and speed of moving your stock out.

How to set up your returns page and withdrawal form so they match the warehouse process is covered in the guide to [returns and consumer rights](https://cloudcart.com/en/blog/returns-consumer-rights-online-store).

## How do store orders reach the warehouse?

Orders should reach the warehouse on their own, with no forwarding by email. In CloudCart there are three ways: the Frisbo app for an outsourced warehouse, a webhook and API for another 3PL's system, and Pick & Pack terminals for your own warehouse. All options are on the [warehousing, fulfillment and ERP](https://cloudcart.com/en/inventory) page.

### Outsourced warehouse with the Frisbo app

Frisbo is a Romanian 3PL company connected to CloudCart as an app. You need a contract with Frisbo and a warehouse that Frisbo has assigned to you. Setup takes five steps:

- Install the app. In the admin, open Apps → Frisbo and install it.

- Connect the account. In the Settings tab, enter your Frisbo email and password and click Validate credentials & save . The platform checks them directly with Frisbo.

- Choose organisation, warehouse and channel. The lists come from Frisbo. One store works with one Frisbo organisation.

- Turn on automatic sending. With Automatic order dispatch , orders go to Frisbo on their own, at the status "New order" or "Paid". Without it, you send each order by hand from its screen.

- Check the result. In the Orders tab every order shows Frisbo's response: success, or the error text, in which case you send it again with the button.

Important: if you accept cash on delivery, choose the status "New order". With "Paid", an order goes to Frisbo only once it is paid, and a cash on delivery order becomes paid after delivery.

Frisbo ships the parcels with its own couriers, so you do not create waybills in the admin for these orders. Stock counts from the Frisbo warehouse do not flow back into the store automatically, so you update quantities in CloudCart yourself. Fees and cancelling an order already sent are handled in Frisbo's own portal. After a Frisbo password change, enter the new one in Settings too.

### Another 3PL: webhook and API

If your 3PL has no CloudCart app, its developer or yours builds the connection. In Settings → Webhooks you add the address of the warehouse system and the event, such as a new or updated order. The store sends the order there on every event and makes up to 6 attempts over 20 minutes. If all of them fail, the webhook is switched off and you get an email. In the other direction, the warehouse updates stock through the API with a key from Settings → API keys. The API is available from Starter Pack up; Baby Pack has no API access.  The [ERP and POS integration](https://cloudcart.com/en/offer/erp-pos-integration) page lists the systems that connect from the admin.

### Your own or rented warehouse: Pick & Pack

If you rent space and hire staff, the Pick & Pack app gives the warehouse a terminal on a tablet: the worker sees the order queue, scans the items, counts the packages, flags anything missing and confirms dispatch. One terminal address opens on several tablets and works with any USB or Bluetooth scanner. According to the [pricing page](https://cloudcart.com/en/pricing), Baby Pack, Starter Pack and CC Pro include 1 terminal each, and CC Master includes 2. Waybills and labels for many orders at once are printed with the Bulk print app, in A6 for a thermal printer or in A4, after you filter them in [orders](https://cloudcart.com/en/orders). The app includes 3 orders a day, and larger daily packs start at €24.99 a month.

> Shipping 31 couriers built into the store If you pack yourself, the waybill for Econt, Speedy (DPD Bulgaria), BOX NOW and the others is created from the order, and the status changes on its own when the courier reports delivery. When orders grow, the same store connects to an outsourced warehouse, with no platform switch. How shipping works in CloudCart →

## Packing and unboxing: how the box sells the next order

With a 3PL, write the packing into the contract in detail: the box is the customer's first physical contact with your brand at unboxing, the moment they open the parcel.

- A box that fits the product. A large box with lots of fill makes the courier more expensive. Give the warehouse 3 or 4 standard sizes and a rule for which item goes in which.

- Branding any warehouse can repeat. Branded tape or a sticker plus one insert; complex gift wrapping costs more to handle.

- An insert that is useful. A card with a code for the next order, a QR code to the instructions, or a request for a review. One insert is enough.

Box size is also becoming a legal requirement. [Regulation (EU) 2025/40 on packaging](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32025R0040) applies from 12 August 2026. Under Article 24, businesses that fill grouped, transport or e-commerce packaging must keep the empty space ratio at 50% or less, from 1 January 2030 or 3 years after the calculation method is adopted, whichever is later. If you pick your standard box sizes with this rule in mind now, you will not have to replace them later.

## What does the law say when parcels ship from someone else's warehouse?

When your stock sits with a 3PL, your company is still the seller. Warranty, returns and the promised delivery time are your obligations; the 3PL answers to you only under your contract.

For goods made outside the EU, the fulfillment company can have obligations of its own. Under Article 4 of Regulation (EU) 2019/1020, certain products may be placed on the EU market only if there is an economic operator established in the EU. A fulfilment service provider established in the EU takes on that role for the products it handles when there is no manufacturer, importer or authorised representative in the EU. What else has to appear on the product and in the store is covered in the guide to [GPSR and product safety](https://cloudcart.com/en/blog/gpsr-product-safety-online-sellers).

A warehouse in another EU country has tax consequences. Under Article 7(4) of the Bulgarian [VAT Act](https://lex.bg/laws/ldoc/2135533201) (in Bulgarian), moving your own goods from Bulgaria to another member state where your company is registered for VAT is an intra-Community supply. In practice this usually means a VAT registration in the warehouse's country. The call-off stock arrangement (Article 15a of the VAT Act, in force from 1 January 2020) applies only when you sell to a business known in advance and does not cover sales to consumers. Agree the set-up with your accountant before the stock leaves.

The same applies in reverse to an EU company moving its own stock into a Bulgarian warehouse: check the Bulgarian VAT registration with an accountant first.

## How to move to a 3PL without pausing sales

Moving to a 3PL goes most smoothly over 3 to 4 weeks, with test orders before you move all your stock. This order of steps protects your sales:

- Week 1: numbers and quotes. Calculate your current cost per order with the formula above. Ask 2 or 3 fulfillment companies for quotes against the same fee table.

- Week 1: product data. Check that every product and variant has a SKU or barcode, a weight and dimensions, or the warehouse cannot receive it.

- Week 2: the contract. Go point by point through the contract checklist above and describe the packing: box sizes, fill, inserts.

- Week 2: the connection. Connect Frisbo from the apps, or set up a webhook and an API key for the warehouse system. Run 5 to 10 test orders with different payment methods, including cash on delivery.

- Week 3: moving the stock. Send stock in batches, best sellers first, shipping from the old location while they travel.

- Week 4: reconciliation. Compare stock in the store with the warehouse report and update the delivery time you promise at checkout.

Which free shipping threshold to set once your cost per order changes is worked out in the guide to [the free shipping threshold and choosing a courier](https://cloudcart.com/en/blog/free-shipping-threshold-couriers).

> New store €1/month for the first 3 months Start by packing from your own space with waybills from the admin, and when orders grow, connect an outsourced warehouse in the same store. The price applies automatically to new stores on every plan. Create a store for €1 →

## Frequently asked questions

**What is ecommerce fulfillment?**

Ecommerce fulfillment is the handling of online orders by an outside logistics company: receiving and storing stock, picking, packing and handing parcels to a courier. The company is called a 3PL or fulfillment center. You sell and answer to the customer, and the warehouse prepares the parcels.

**Who is liable to the customer if the warehouse ships the wrong item?**

The store. For the customer your company is the seller, and under Article 103c of the Bulgarian Consumer Protection Act the risk of loss or damage passes to them only once they receive the parcel. You recover the cost of the mistake from the warehouse under your contract.

**How do I connect my online store to a fulfillment center?**

In CloudCart, Frisbo connects from Apps → Frisbo with an email and password, and orders go to the warehouse on their own at the status "New order" or "Paid". With another 3PL, the connection uses a webhook for orders and an API key for stock. For your own warehouse there are Pick & Pack terminals.

**Can I use fulfillment with cash on delivery?**

Yes, if the 3PL ships with a courier that collects cash on delivery. Agree whose courier contract the parcels ship on and how many days the cash takes to reach you. With Frisbo, choose automatic sending at the status "New order", because a cash on delivery order becomes paid only after delivery.

**Do I need a VAT registration if my warehouse is in Romania?**

Usually yes. Moving your own goods from Bulgaria to a warehouse in another EU country is an intra-Community supply under Article 7(4) of the Bulgarian VAT Act and normally requires a VAT registration in the warehouse's country. The call-off stock arrangement covers only sales to businesses, so agree the set-up with an accountant.

Have a question about connecting your store to a warehouse? Write to us at [support@cloudcart.com](https://cloudcart.commailto:support@cloudcart.com).
