{"id":345589,"date":"2026-08-15T10:01:48","date_gmt":"2026-08-15T10:01:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/bg-couriers-for-woocommerce\/"},"modified":"2026-08-24T05:59:55","modified_gmt":"2026-08-24T05:59:55","slug":"bg-couriers","status":"publish","type":"plugin","link":"https:\/\/hu.wordpress.org\/plugins\/bg-couriers\/","author":18750600,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.3.8","stable_tag":"0.3.8","tested":"7.1","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"BG Couriers for WooCommerce","header_author":"\u0414\u0430\u043d \u0413\u043e\u0440\u044f\u0439\u043d\u043e\u0432","header_description":"Shipping with Bulgarian couriers (Speedy, Econt, BOX NOW, Pigeon, Sameday) - office\/address\/locker delivery, live rates, labels and tracking.","assets_banners_color":"67c0aa","last_updated":"2026-08-24 05:59:55","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/revolut.me\/danq6lus","header_plugin_uri":"https:\/\/github.com\/dangoriaynov\/bg-couriers","header_author_uri":"https:\/\/github.com\/dangoriaynov","rating":0,"author_block_rating":0,"active_installs":0,"downloads":272,"num_ratings":0,"support_threads":1,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.2.20":{"tag":"0.2.20","author":"winter2007d","date":"2026-08-15 10:01:31"},"0.2.21":{"tag":"0.2.21","author":"winter2007d","date":"2026-08-15 10:35:59"},"0.2.24":{"tag":"0.2.24","author":"winter2007d","date":"2026-08-16 08:41:30"},"0.2.25":{"tag":"0.2.25","author":"winter2007d","date":"2026-08-16 09:54:37"},"0.2.26":{"tag":"0.2.26","author":"winter2007d","date":"2026-08-16 12:59:26"},"0.3.0":{"tag":"0.3.0","author":"winter2007d","date":"2026-08-16 17:37:02"},"0.3.1":{"tag":"0.3.1","author":"winter2007d","date":"2026-08-16 19:00:27"},"0.3.2":{"tag":"0.3.2","author":"winter2007d","date":"2026-08-17 14:38:11"},"0.3.5":{"tag":"0.3.5","author":"winter2007d","date":"2026-08-17 22:33:35"},"0.3.6":{"tag":"0.3.6","author":"winter2007d","date":"2026-08-18 17:54:58"},"0.3.7":{"tag":"0.3.7","author":"winter2007d","date":"2026-08-18 19:23:25"},"0.3.8":{"tag":"0.3.8","author":"winter2007d","date":"2026-08-24 05:59:55"}},"upgrade_notice":{"0.3.8":"<p>The checkout can now require an e-mail address (off by default). A Pigeon Express parcel sent back by an uncollected delivery moves the order again.<\/p>","0.3.7":"<p>Adds &quot;Request a courier&quot; for Speedy and Econt. BOX NOW is no longer told the value of a prepaid parcel unless you enable it.<\/p>","0.3.6":"<p>Cash on delivery was never priced, so COD orders were undercharged. Deleting the plugin now removes its data.<\/p>","0.3.5":"<p>Delivery was quoted about 20% high before a town was chosen, and the map could disagree with the checkout.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3648392,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3648392,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3648392,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3648392,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.2.20","0.2.21","0.2.24","0.2.25","0.2.26","0.3.0","0.3.1","0.3.2","0.3.5","0.3.6","0.3.7","0.3.8"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3648427,"resolution":"1","location":"assets","locale":"","width":994,"height":1322},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3648427,"resolution":"2","location":"assets","locale":"","width":994,"height":1322},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3651784,"resolution":"3","location":"assets","locale":"","width":1600,"height":870},"screenshot-4.jpg":{"filename":"screenshot-4.jpg","revision":3651784,"resolution":"4","location":"assets","locale":"","width":1600,"height":870},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3648427,"resolution":"5","location":"assets","locale":"","width":1522,"height":920},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3648427,"resolution":"6","location":"assets","locale":"","width":1600,"height":1115},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3648427,"resolution":"7","location":"assets","locale":"","width":1600,"height":296},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3648427,"resolution":"8","location":"assets","locale":"","width":1600,"height":296}},"screenshots":{"1":"Checkout: every courier with its own live price, delivery-type tabs (to office \/ to address \/ to APS locker) and searchable city and office pickers.","2":"Checkout: choosing an office - the list searches as you type, and each entry shows the full address.","3":"The interactive map: every courier's offices and lockers for a town at once, each with its own price - and, once the customer shows where they are, how far each one is and which is closest.","4":"Choosing a point: which courier, how the parcel is collected, the price, the address and how far away it is - with one button to take it.","5":"Cart: what each courier charges, before the customer reaches the checkout.","6":"Order screen: the shipment panel (waybill, print, track, cancel) and the delivery editor - courier, delivery option, town and office, changed in place.","7":"Orders list: the Waybill column - generate a label, or print, track and cancel an existing one, per order.","8":"Orders list: the shipment's current state, and when it was last checked, on hover."}},"plugin_section":[],"plugin_tags":[212815,2986,196632,175252,206280],"plugin_category":[45],"plugin_contributors":[206282],"plugin_business_model":[],"class_list":["post-345589","plugin","type-plugin","status-publish","hentry","plugin_tags-boxnow","plugin_tags-bulgaria","plugin_tags-econt","plugin_tags-sameday","plugin_tags-speedy","plugin_category-ecommerce","plugin_contributors-winter2007d","plugin_committers-winter2007d"],"banners":{"banner":"https:\/\/ps.w.org\/bg-couriers\/assets\/banner-772x250.png?rev=3648392","banner_2x":"https:\/\/ps.w.org\/bg-couriers\/assets\/banner-1544x500.png?rev=3648392","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/bg-couriers\/assets\/icon-128x128.png?rev=3648392","icon_2x":"https:\/\/ps.w.org\/bg-couriers\/assets\/icon-256x256.png?rev=3648392","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/bg-couriers\/assets\/screenshot-1.png?rev=3648427","caption":"Checkout: every courier with its own live price, delivery-type tabs (to office \/ to address \/ to APS locker) and searchable city and office pickers."},{"src":"https:\/\/ps.w.org\/bg-couriers\/assets\/screenshot-2.png?rev=3648427","caption":"Checkout: choosing an office - the list searches as you type, and each entry shows the full address."},{"src":"https:\/\/ps.w.org\/bg-couriers\/assets\/screenshot-3.jpg?rev=3651784","caption":"The interactive map: every courier's offices and lockers for a town at once, each with its own price - and, once the customer shows where they are, how far each one is and which is closest."},{"src":"https:\/\/ps.w.org\/bg-couriers\/assets\/screenshot-4.jpg?rev=3651784","caption":"Choosing a point: which courier, how the parcel is collected, the price, the address and how far away it is - with one button to take it."},{"src":"https:\/\/ps.w.org\/bg-couriers\/assets\/screenshot-5.png?rev=3648427","caption":"Cart: what each courier charges, before the customer reaches the checkout."},{"src":"https:\/\/ps.w.org\/bg-couriers\/assets\/screenshot-6.png?rev=3648427","caption":"Order screen: the shipment panel (waybill, print, track, cancel) and the delivery editor - courier, delivery option, town and office, changed in place."},{"src":"https:\/\/ps.w.org\/bg-couriers\/assets\/screenshot-7.png?rev=3648427","caption":"Orders list: the Waybill column - generate a label, or print, track and cancel an existing one, per order."},{"src":"https:\/\/ps.w.org\/bg-couriers\/assets\/screenshot-8.png?rev=3648427","caption":"Orders list: the shipment's current state, and when it was last checked, on hover."}],"raw_content":"<!--section=description-->\n<p>BG Couriers puts Bulgaria's couriers inside WooCommerce: your customer chooses where the parcel goes and sees what that delivery costs, and you print the label and follow the parcel without leaving WordPress.<\/p>\n\n<p><strong>At the checkout<\/strong> every courier you switch on shows its own price for the basket, live from that courier's API. Your customer picks how the parcel is delivered - to an office, to an address, or to a locker\/APS - and finds the office by typing the town, or by pointing at it on one map that carries every courier's offices and lockers at once, each with its own price. The map can also say which pickup point is closest to them.<\/p>\n\n<p><strong>In the admin<\/strong> one click issues the waybill and the label - one order, or fifty of them into a single PDF (A6 labels or an A4 sheet). The plugin then keeps each shipment's status up to date by itself, and your customer sees the waybill and a tracking link on their order and in the e-mails you already send them.<\/p>\n\n<p><strong>It is free<\/strong>, GPL, and stays that way: every courier, every feature, no paid tier. Deliveries are within Bulgaria.<\/p>\n\n<p><strong>Couriers<\/strong><\/p>\n\n<ul>\n<li><strong>Speedy<\/strong> - office \/ address \/ APS. Live rates, labels, tracking.<\/li>\n<li><strong>Econt<\/strong> - office \/ address \/ Econtomat. Live rates, labels, tracking, and <strong>cash on delivery (\u043d\u0430\u043b\u043e\u0436\u0435\u043d \u043f\u043b\u0430\u0442\u0435\u0436)<\/strong> with an itemised packing list.<\/li>\n<li><strong>Pigeon Express<\/strong> - office \/ address \/ locker. Live rates, labels, tracking.<\/li>\n<li><strong>Sameday<\/strong> - office \/ address \/ easyBox. Live rates, labels, tracking.<\/li>\n<li><strong>BOX NOW<\/strong> - lockers (APM) only, picked on BOX NOW's own map. Flat rate.<\/li>\n<\/ul>\n\n<p><strong>Setting it up<\/strong><\/p>\n\n<p>You need your own account with each courier you want to offer: the prices your customers see and the labels you print are your own contract's, and nothing is resold through this plugin. Once you have the API credentials, a courier takes a couple of minutes:<\/p>\n\n<ol>\n<li>Paste the credentials on that courier's tab and switch the courier on - it checks them with the courier there and then, and says so plainly if they are refused.<\/li>\n<li>Sync its towns and offices - one button.<\/li>\n<li>Add it to your <strong>Bulgaria<\/strong> shipping zone - and to the zone of any other country you deliver to.<\/li>\n<\/ol>\n\n<p>Everything else already has a working default: the prices, the map, the checkout fields and the label size all work as they ship.<\/p>\n\n<p><strong>Also included<\/strong><\/p>\n\n<ul>\n<li><strong>Cash on delivery (\u043d\u0430\u043b\u043e\u0436\u0435\u043d \u043f\u043b\u0430\u0442\u0435\u0436)<\/strong>, with the choice of who pays the delivery - and the amount to collect follows that choice.<\/li>\n<li>Free-shipping thresholds, per courier and per delivery type.<\/li>\n<li>Several parcels in one shipment, and insurance for a value you set (Speedy, Sameday).<\/li>\n<li>A delivery estimate on the cart page, before the customer reaches the checkout.<\/li>\n<li>Works on both the classic and the block checkout.<\/li>\n<li>Fully translated to Bulgarian.<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>The plugin uses the online API of each courier <strong>you enable<\/strong>, to price a delivery, to create a label and to track a parcel. Nothing is sent to a courier you have not configured.<\/p>\n\n<p><strong>What is sent, and when<\/strong><\/p>\n\n<ul>\n<li><strong>Price quote<\/strong> (cart \/ checkout) - the parcel weight, the destination town or office, and the delivery type. When the customer views the shipping options.<\/li>\n<li><strong>Label<\/strong> (admin) - the recipient's name, phone, e-mail, the chosen address or office\/locker, the parcel weight, and, with cash on delivery, the amount to collect and the item list. When you generate the label.<\/li>\n<li><strong>Tracking<\/strong> - the waybill number. When tracking is opened or refreshed.<\/li>\n<\/ul>\n\n<p><strong>Courier APIs<\/strong><\/p>\n\n<ul>\n<li><strong>Speedy<\/strong> - api.speedy.bg. Terms: https:\/\/www.speedy.bg\/en\/terms-and-conditions \u00b7 Privacy: https:\/\/www.speedy.bg\/en\/privacy-policy<\/li>\n<li><strong>Econt<\/strong> - ee.econt.com. Terms: https:\/\/www.econt.com\/en\/terms \u00b7 Privacy: https:\/\/www.econt.com\/en\/privacy-policy<\/li>\n<li><strong>Pigeon Express<\/strong> - api.pigeonexpress.com (api-demo.pigeonexpress.com in test mode). Terms: https:\/\/pigeonexpress.com\/terms \u00b7 Privacy: https:\/\/pigeonexpress.com\/privacy<\/li>\n<li><strong>Sameday<\/strong> - api.sameday.bg (sameday-api-bg.demo.zitec.com in test mode). Terms: https:\/\/sameday.bg\/terms-and-conditions-delivery-courier-services-bg\/ \u00b7 Privacy: https:\/\/sameday.bg\/politika-za-poveritelnost\/<\/li>\n<li><strong>BOX NOW<\/strong> - api-production.boxnow.bg (api-stage.boxnow.bg in test mode), plus its locker-picker widget map.boxnow.bg, loaded in an iframe when the customer opens that picker. Terms: https:\/\/boxnow.bg\/terms-of-use-for-shipping-services \u00b7 Privacy: https:\/\/boxnow.bg\/personal-data-processing-notice<\/li>\n<\/ul>\n\n<p><strong>Maps and address lookup<\/strong><\/p>\n\n<ul>\n<li><strong>OpenStreetMap tiles<\/strong> - tile.openstreetmap.org. Map tiles only, loaded when the customer opens a map. Tile policy: https:\/\/operations.osmfoundation.org\/policies\/tiles\/ \u00b7 Privacy: https:\/\/wiki.osmfoundation.org\/wiki\/Privacy_Policy<\/li>\n<li><strong>OpenStreetMap Nominatim<\/strong> - nominatim.openstreetmap.org. One set of coordinates, turned into an address or a town name. It happens in two cases only: the customer drops a pin on the <strong>address map picker<\/strong> (a setting, <strong>off by default<\/strong>), or presses \"find me\" on the map before naming a town, so the town can be filled in for them. Nominatim policy: https:\/\/operations.osmfoundation.org\/policies\/nominatim\/ \u00b7 Privacy: https:\/\/wiki.osmfoundation.org\/wiki\/Privacy_Policy<\/li>\n<li><strong>Google Maps Geocoding<\/strong> - maps.googleapis.com. Takes over those same lookups, and only if you set a Google Maps API key in the settings (optional; OpenStreetMap is used if the key is empty or Google does not answer). It receives the coordinates and nothing else. Terms: https:\/\/cloud.google.com\/maps-platform\/terms \u00b7 Privacy: https:\/\/policies.google.com\/privacy<\/li>\n<\/ul>\n\n<p>The map's \"closest to you\" (on by default, switchable off) works out the distances in the customer's own browser. Their position is never stored on the site and is forgotten when the page is closed.<\/p>\n\n<p>No data is sent to any service you have not configured, and the plugin sends nothing to its author.<\/p>\n\n<h3>Contributing<\/h3>\n\n<p>The plugin is developed in the open. Bugs, ideas and pull requests are welcome:\nhttps:\/\/github.com\/dangoriaynov\/bg-couriers\/issues<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin to <code>\/wp-content\/plugins\/bg-couriers<\/code> (or install via the Plugins screen) and activate it. WooCommerce must be active.<\/li>\n<li>Go to <strong>WooCommerce \u2192 Settings \u2192 BG Couriers<\/strong>.<\/li>\n<li>Open a courier's tab, enter its API credentials, click <strong>Validate<\/strong>, then <strong>Sync<\/strong> its cities\/offices.<\/li>\n<li>Add the courier's shipping method to your <strong>Bulgaria<\/strong> shipping zone (WooCommerce \u2192 Settings \u2192 Shipping), and to the zone of any other country you deliver to.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"which%20countries%20are%20supported%3F\"><h3>Which countries are supported?<\/h3><\/dt>\n<dd><p>Bulgaria, by five Bulgarian networks: <strong>Speedy<\/strong>, <strong>Econt<\/strong>, <strong>Pigeon Express<\/strong> and <strong>Sameday<\/strong> deliver to an office, to a street address or to a locker, and <strong>BOX NOW<\/strong> delivers to its lockers (APM). Delivery outside Bulgaria is not offered.<\/p><\/dd>\n<dt id=\"how%20can%20i%20support%20the%20development%3F\"><h3>How can I support the development?<\/h3><\/dt>\n<dd><p>The plugin is free, GPL, and stays that way - every courier, every feature, no paid tier. If it has saved you work and you would like to put something behind it: https:\/\/revolut.me\/danq6lus. It is entirely voluntary and changes nothing about the support you get. Reporting a bug in the <a href=\"https:\/\/wordpress.org\/support\/plugin\/bg-couriers\/\">support forum<\/a>, or leaving a review, helps just as much.<\/p><\/dd>\n<dt id=\"do%20i%20need%20an%20account%20with%20the%20couriers%3F\"><h3>Do I need an account with the couriers?<\/h3><\/dt>\n<dd><p>Yes. Each courier requires its own API credentials, obtained from that courier. Enter them on the courier's settings tab.<\/p><\/dd>\n<dt id=\"how%20are%20prices%20calculated%3F\"><h3>How are prices calculated?<\/h3><\/dt>\n<dd><p>Live from each courier's API for the parcel weight and destination. If the API is briefly unreachable, a daily reference price (or your configured default) is used. BOX NOW uses a flat rate you set (it has no rate API).<\/p><\/dd>\n<dt id=\"does%20it%20bundle%20any%20third-party%20libraries%3F\"><h3>Does it bundle any third-party libraries?<\/h3><\/dt>\n<dd><p>Yes, and all are GPL-compatible and shipped with their source: <strong>FPDF<\/strong> (permissive) and <strong>FPDI<\/strong> (MIT) to compose label PDFs, and <strong>Leaflet<\/strong> (BSD-2-Clause) with OpenStreetMap tiles for the map picker. The courier and courier brand names are used only to identify the services the plugin integrates with; this plugin is not affiliated with or endorsed by any of them.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.3.8<\/h4>\n\n<ul>\n<li>New: <strong>the checkout can insist on an e-mail address<\/strong> - a setting, off by default. The plugin makes the field optional (a waybill is built with the phone number), and until now a shop that needed the address had to edit its theme.<\/li>\n<li>Fixed: <strong>a Pigeon Express parcel that came back never moved the order.<\/strong> The journey home travels under a second waybill the order was never told about.<\/li>\n<li>Fixed: \"Request a courier\" now names every ticked order it leaves out, instead of quietly shrinking the list you are about to confirm.<\/li>\n<li>Fixed: an address the shop cannot deliver to now says so, and offers the way back - it used to end in WooCommerce's \"check your address\" about an address with nothing wrong with it.<\/li>\n<li>Changed: the map's town field opens its whole list when you press it; it used to answer only to typing.<\/li>\n<\/ul>\n\n<h4>0.3.7<\/h4>\n\n<ul>\n<li>New: <strong>Request a courier<\/strong> - tick the orders, pick a day, the courier comes for those parcels (Speedy, Econt).<\/li>\n<li>New: Pigeon Express can collect from your address instead of you dropping parcels at its office.<\/li>\n<li>Fixed: cancelling an already-cancelled Sameday shipment reported a failure and left the waybill on the order.<\/li>\n<li>Changed: BOX NOW is no longer told what a prepaid parcel is worth, unless you turn it on.<\/li>\n<\/ul>\n\n<h4>0.3.6<\/h4>\n\n<ul>\n<li>Fixed: <strong>cash on delivery was never priced.<\/strong> The courier's fee for collecting the money was missing from every quote - on 50 EUR: Econt +0.78, Pigeon +0.75, Sameday +0.50, Speedy +0.40.<\/li>\n<li>Fixed: deleting the plugin now removes its settings, tables and label PDFs.<\/li>\n<li>Fixed: a Speedy cancel could report failure when the courier had cancelled.<\/li>\n<li>New: Econt partial delivery (\u0447\u0430\u0441\u0442\u0438\u0447\u043d\u0430 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0430), off by default.<\/li>\n<\/ul>\n\n<h4>0.3.5<\/h4>\n\n<ul>\n<li>Fixed: delivery was quoted about 20% high until a town was chosen - the pre-town price carried its VAT and was then taxed again.<\/li>\n<li>Fixed: the interactive map and the checkout could show different prices for the same office.<\/li>\n<\/ul>\n\n<p>Older entries: https:\/\/github.com\/dangoriaynov\/bg-couriers\/blob\/main\/docs\/CHANGELOG.md<\/p>","raw_excerpt":"Shipping for Bulgarian stores: Speedy, Econt, BOX NOW, Pigeon Express, Sameday - office\/address\/locker delivery, live rates, labels, tracking.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/hu.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/345589","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hu.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/hu.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/hu.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=345589"}],"author":[{"embeddable":true,"href":"https:\/\/hu.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/winter2007d"}],"wp:attachment":[{"href":"https:\/\/hu.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=345589"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/hu.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=345589"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/hu.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=345589"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/hu.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=345589"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/hu.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=345589"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/hu.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=345589"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}