Payments and shipping

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.

The CloudCart team16 min read
A bright warehouse with tidy shelves of cardboard boxes and a packing table with an open box, paper fill and a roll of tape
In this article · 10 sections
  1. What is ecommerce fulfillment and what do fulfillment services include?
  2. Warehouse rental or fulfillment: which is cheaper for an online store?
  3. When should you outsource your warehouse to a fulfillment center?
  4. How much does ecommerce fulfillment cost per order?
  5. What to check in a 3PL contract
  6. How do store orders reach the warehouse?
  7. Packing and unboxing: how the box sells the next order
  8. What does the law say when parcels ship from someone else's warehouse?
  9. How to move to a 3PL without pausing sales
  10. Frequently asked questions

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 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:

  1. Goods in. Your supplier's delivery is counted and each item gets a shelf location by SKU or barcode.
  2. Storage. Stock sits on a shelf or pallet, usually for a monthly fee by space used.
  3. Pick. A warehouse worker collects the items for the order, usually with a barcode scanner.
  4. Pack. The goods go into a box or mailer with the agreed fill and inserts.
  5. 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.
  6. 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.

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:

ModelFixed costsControl over packingPeaks (Black Friday, Christmas)How it connects to the store
Stock at home or in the officealmost nonefullhard, you do everythingorders and waybills from the admin
Rented warehouse with your own staffrent, salaries, equipmentfulltemporary staff and overtimePick & Pack terminals and bulk waybill printing
Fulfillment center (3PL)monthly minimum and storage, if agreedby contract: box, inserts, tapethe 3PL absorbs them, if capacity is agreedthe Frisbo app, or a webhook and API to the 3PL's system
Dropshippingno warehousealmost nonedepends on the supplierXML 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.

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.

FeeHow it is usually chargedWhat to ask
Goods in (receiving)per pallet, carton or itemIs every item counted, and how fast is stock on the shelf
Storageper pallet space, shelf or cubic metre per monthIs it billed on average or peak space used
Order handling (pick & pack)per order, plus a surcharge for each extra itemHow many items the base fee covers
Packaging materialsper box, mailer and fill, or included in handlingCan they use your own branded boxes
Courieron the 3PL's courier contract or on yoursWhich courier, to an address, office or locker, and how cash on delivery is handled
Returnsper returned parcel, with inspection and restockingHow many days the inspection takes and how you are notified
Monthly minimum and integrationa fixed amount if orders fall below a thresholdIs 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.

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 (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.

  1. Cut-off time. Up to what hour an order leaves the same day, including weekends and holidays.
  2. Accuracy and liability for mistakes. Who pays for the second delivery when an item is wrong or missing, and how the mistake is proven.
  3. 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.
  4. 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.
  5. Stock reports. How often you get one, and who pays for shortages found at stocktaking.
  6. Cash on delivery. Whose courier contract the parcels ship on, and how many days the collected cash takes to reach your account.
  7. 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.

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 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:

  1. Install the app. In the admin, open Apps → Frisbo and install it.
  2. 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.
  3. Choose organisation, warehouse and channel. The lists come from Frisbo. One store works with one Frisbo organisation.
  4. 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.
  5. 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 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, 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. The app includes 3 orders a day, and larger daily packs start at €24.99 a month.

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 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.

A warehouse in another EU country has tax consequences. Under Article 7(4) of the Bulgarian VAT Act (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:

  1. 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.
  2. 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.
  3. Week 2: the contract. Go point by point through the contract checklist above and describe the packing: box sizes, fill, inserts.
  4. 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.
  5. Week 3: moving the stock. Send stock in batches, best sellers first, shipping from the old location while they travel.
  6. 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.

Frequently asked questions

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.

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.

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.

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.

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.

Sources

  1. Regulation (EU) 2019/1020eur-lex.europa.eu
  2. Consumer Protection Actlex.bg
  3. 14 days to withdraw from an online purchaseeuropa.eu
  4. Regulation (EU) 2025/40 on packagingeur-lex.europa.eu
  5. VAT Actlex.bg
The CloudCart teamChecked against the platform documentation. Questions: support@cloudcart.com

Build your online store

The first 3 months on every plan are €1/month. Questions: support@cloudcart.com

Create a store for €1