BulCommerce

الوصف

  • Invoices, credit notes, proforma invoices, non-fiscal sales documents and order confirmations.
  • Gap-free sequential 10-digit numbering, safe under concurrent orders.
  • VAT breakdown by rate (20%, 9%, 0%), for both VAT-inclusive pricing and WooCommerce’s own tax engine. Document totals always equal what the customer was charged; if they cannot, the document is not issued and you are alerted.
  • Automatic credit notes for refunds and cancellations. When a refund cannot be attributed to a single VAT rate, no document is guessed: you get an alert and choose the rate yourself.
  • Company details at checkout (classic and block checkout): company name, EIK with check-digit validation, VAT number verified with EU VIES, MOL and registered address.
  • Couriers: Econt, Speedy, Pigeon Express and BOX NOW. Delivery to office, parcel locker or address on the classic and the block checkout: locality search, office list and map, address in parts with the courier’s streets, price table or the courier’s live price with automatic fallback (capped at a maximum the buyer pays, if you set one), cash on delivery, waybills (create, change, print, cancel), tracking and optional completion on delivery.
  • Checkout: compact layout without the address fields for a courier delivery, delivery options as cards, tiles, rows with courier logos or one row per courier, side cart, minimum order with a progress bar, cash on delivery hidden per courier, selling to other countries.
  • A checkout form of your own: reorder, rename, show or hide each field – for billing and for delivery – and choose which must be filled in, on the classic and the block checkout.
  • Pickup from your own shop, or deliver it yourself with no courier – one location free, several with BulCommerce Pro.
  • The expected delivery date, shown on the order-received page, in the account, in the order e-mails or on the admin order screen, per courier (where the courier’s own API gives one).
  • A shipment-tracking page and a right-of-withdrawal page of your own ([bulcommerce_tracking] and [bulcommerce_withdrawal]) – a buyer finds their order by its number and e-mail, no account needed, for either one.
  • An admin warning as your EU cross-border sales approach the €10,000 OSS VAT threshold; companies from other EU countries with a VAT number confirmed in VIES get services without Bulgarian VAT (reverse charge) or goods as an intra-Community supply at 0%, each with its own legal basis on the invoice.
  • Fiscal receipts on a fiscal device through ErpNet.FP, the NRA audit file (Ordinance N-18), Microinvest export, a document archive and the accountant’s monthly e-mail.
  • Cash on delivery: payout report, the month’s deliveries at the shop’s expense and an optional risk check (НепоСтоп) – or BulCommerce Guard (free, beta), which checks against a shared risk network instead of your own key.
  • A restorable settings backup, free on the BulCommerce network: the plugin settings, every courier’s credentials and options, and the delivery methods in your shipping zones.
  • Card payments through Stripe (optional): the Payment Element with cards, Apple Pay, Google Pay and local methods, 3-D Secure, saved cards, refunds from the order screen and a signed webhook. Works on the classic and the block checkout.

Fonts

PDF documents use the Inter typeface by The Inter Project Authors (https://github.com/rsms/inter), licensed under the SIL Open Font License 1.1. A Latin, Cyrillic and Greek subset is bundled in assets/fonts/ together with the licence (OFL.txt); tools/build-font.php rebuilds it.

External services

The plugin works without any external service until you switch one on. What follows is every service it can contact, what it sends and when.

Econt Express (courier)

Used when you enable Econt: to load its localities and offices, to ask for a delivery price at the checkout, to create, cancel and track a waybill and to download the label. Requests go to https://ee.econt.com/services (or https://demo.econt.com/ee/services with the demo account) with the credentials you enter.

Sent when you use those features: your sender details, the recipient’s name, phone and e-mail, the chosen office or address, the parcel’s weight, count and description, the cash-on-delivery amount and the order number. Nothing is sent for orders delivered by another method.

Service by “Econt Express” OOD: https://www.econt.com/ – terms: https://www.econt.com/za-nas/obshti-uslovia – privacy: https://www.econt.com/politika-za-poveritelnost

Speedy (courier)

Used when you enable Speedy, for the same purposes and with the same kind of data as above. Requests go to https://api.speedy.bg/v1 with the credentials you enter.

Service by “Speedy” AD: https://www.speedy.bg/ – terms: https://www.speedy.bg/bg/terms-and-conditions – privacy: https://www.speedy.bg/bg/gdpr

Pigeon Express (courier)

Used when you enable Pigeon Express, for the same purposes and with the same kind of data as above. Requests go to the API address of the account you enter (its sandbox or its production address).

Service by “Pigeon Express”: https://pigeonexpress.com/ – terms: https://pigeonexpress.com/terms – privacy: https://pigeonexpress.com/privacy

VIES (VAT number check, European Commission)

Used when a buyer asks for a company invoice and VAT checking is on (it can be switched off in the settings, and then only the format is checked). The VAT number and its country code are sent to https://ec.europa.eu/taxation_customs/vies/rest-api/check-vat-number, which answers whether the number is registered and, when the country publishes them, the company name and address.

Service by the European Commission: https://ec.europa.eu/taxation_customs/vies/ – legal notice: https://ec.europa.eu/info/legal-notice_en – privacy: https://commission.europa.eu/privacy-policy-websites-managed-european-commission_en

European Central Bank (exchange rates)

Used when “Invoices for orders in another currency” is on: the euro reference rates are downloaded from https://www.ecb.europa.eu/stats/eurofxref/eurofxref-hist-90d.xml (and the full file when an older rate is needed) to convert an order into euro. No data about your shop, your orders or your buyers is sent.

Service by the European Central Bank: https://www.ecb.europa.eu/stats/policy_and_exchange_rates/euro_reference_exchange_rates/html/index.en.html – disclaimer and copyright: https://www.ecb.europa.eu/services/disclaimer/html/index.en.html – data protection: https://www.ecb.europa.eu/services/data-protection/html/index.en.html

НепоСтоп (cash-on-delivery risk check, optional add-on)

Off by default. It works only after you switch the add-on on and enter your own API key. Before a cash-on-delivery order the buyer’s phone number is sent to https://nepostop.com/api/v1 to ask how many of that phone’s parcels were not collected. If you also switch on reporting, the phone number and the waybill number of your cash-on-delivery shipments are sent after they are created, so their outcome adds to the shared history. Tell your buyers about this check in your privacy policy.

Service by НепоСтоп: https://nepostop.com/ – terms: https://nepostop.com/terms – privacy: https://nepostop.com/gdpr

BulCommerce Guard (shared cash-on-delivery risk network, optional add-on, beta)

Off by default. It works only after you switch the “BulCommerce Guard” add-on on. Before a cash-on-delivery order the buyer’s phone number is sent to https://wpsupporting.com/api/wp to ask how many of that phone’s parcels were not collected; the phone is hashed on the server. If auto-reporting is on, the phone, the waybill number and the outcome (delivered / returned) of your cash-on-delivery shipments are sent after they are final, so the shared history stays useful, together with your licence key and your site’s domain to identify the shop. The order screen can also report a customer or erase them from the network on request. Tell your buyers about this check in your privacy policy.

Service by wpsupporting (the makers of BulCommerce): https://wpsupporting.com/

euShipments, BOX NOW and Sameday

Three more couriers, used in the same way and with the same kind of data as the couriers above, each only after you switch it on and enter your account: euShipments (https://eushipments.com/ – https://api1.inout.bg/api/v1, tests https://test-api.inout.bg/api/v1), BOX NOW (https://boxnow.bg/ – the public locker list at https://locationapi-production.boxnow.bg (tests https://locationapi-stage.boxnow.bg) and the Partner API at https://api-production.boxnow.bg, tests https://api-stage.boxnow.bg) and Sameday (https://sameday.bg/ – https://api.sameday.bg, tests https://sameday-api-bg.demo.zitec.com).

This package contains no licence check and no update server of its own.

Stripe (card payments, optional)

Off by default. It works only after you enable the Stripe payment method and enter your own Stripe API keys. When a buyer pays by card, their browser loads Stripe.js from https://js.stripe.com and the payment is created and confirmed through https://api.stripe.com with your secret key. Sent to Stripe for a payment: the amount and currency, the order number and key, the buyer’s e-mail (for the receipt) and the card details the buyer enters (the card data goes from the browser straight to Stripe – it never reaches your site). Stripe notifies your site of the payment’s outcome through a signed webhook. Card and payment processing is subject to Stripe’s terms.

Service by Stripe: https://stripe.com/ – terms: https://stripe.com/legal – privacy: https://stripe.com/privacy

OpenStreetMap (map tiles, optional)

Off by default. When you choose to show a courier’s offices on a map, the buyer’s browser loads the map images from https://tile.openstreetmap.org when the map is shown, which sends the buyer’s IP address and browser details to OpenStreetMap. Nothing about the order or the buyer is sent.

Service by the OpenStreetMap Foundation: https://www.openstreetmap.org/ – tile usage policy: https://operations.osmfoundation.org/policies/tiles/ – privacy: https://osmfoundation.org/wiki/Privacy_Policy

Fiscal printer through ErpNet.FP (optional, local)

Off by default. When it is on, the plugin talks to the ErpNet.FP service at the address you enter, which is normally a computer in your own shop (for example http://localhost:8001). The sale’s items, amounts and payment type are sent so the device can print the receipt. This is your own local network, not a service of ours. ErpNet.FP is free software: https://github.com/erpnet/ErpNet.FP

The plugin makes no other external requests, and it collects no telemetry and no usage data.

لقطات الشاشة

الأسئلة المتكررّة

Where do I get help?

BulCommerce is made by wpsupporting. Product page: https://wpsupporting.com/store/bulcommerce – support: https://wpsupporting.com/contact or info@wpsupporting.com (support policy: https://wpsupporting.com/support-policy). Attach the diagnostic report from BulCommerce Help.

Is the “sales document” a fiscal receipt?

No. A fiscal receipt must come from a registered fiscal device. The sales document is informational.

What happens to documents when I uninstall?

Deleting the plugin keeps your setup by default (company details, courier credentials, add-on settings and the delivery methods with their prices), so an accidental delete costs you nothing; caches and scheduled jobs are cleared. Issued invoices, credit notes and their numbering always stay – they are accounting records you must keep. If you want a completely clean removal, switch on “Also delete all settings when the plugin is deleted” in Settings first.

My site is behind Cloudflare or another CDN and the plugin’s logos/styles are blocked as “mixed content”.

This happens when the CDN terminates HTTPS and WordPress does not detect it, so it builds asset URLs as http:// on an https:// site. The plugin’s own assets follow the site address you set in Settings General, so they are served over https as soon as that address is https. For everything else on the site (uploaded images, other plugins), tell WordPress it is behind an https proxy by adding this near the top of wp-config.php:

if ( isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && 'https' === $_SERVER['HTTP_X_FORWARDED_PROTO'] ) { $_SERVER['HTTPS'] = 'on'; }

المراجعات

22 سبتمبر، 2026
Този плъгин за доставка с български куриери е може би най-добрият. Тествах всички плъгини включително Shipbg, единият ми магазин работи около 2 години с плъгина на Мрежа, но нещо го развалиха последно със седмичните ъпдейти и фиксове. Bulcommerce лесно и бързо се настройва без да се изискват специални умения, перфектно се синхронизира с woocommerce. Подобен е на Bulgarization for woocommerce (също добър плъгин), но от Септември разработчика прекрати поддържането му в wordpress. Поздравления!
20 سبتمبر، 2026
Плъгина е супер добре направен. Функционалността му е много добра, притежава много по-добър интерфейс от другите безплатни алтернативи в България. Човека е учтив и отговаря бързо. Успех
7 سبتمبر، 2026
Това е форкнато ( копирано ) копие на плъгина bulgarisation-for-woocommerce. Може да се провери по файловете които използва като помощни класове, темплейти на документи и т.н.Взел е и платената версия от клиент и е мигрирал всичко през AI. Сами си преценете с какъв човек работите и при проблем дали ще може да ви помогне.
إقرأ جميع المراجعات 4

المساهمون والمطوّرون

“BulCommerce” هو برنامج مفتوح المصدر. وقد ساهم هؤلاء الأشخاص بالأسفل في هذه الإضافة.

المساهمون

ترجمة ”BulCommerce“ إلى لغتك.

مُهتم بالتطوير؟

تصفّح الشفرة، تحقق من مستودع SVN، أو الاشتراك في سجل التطوير بواسطة RSS.

سجل التغييرات

1.5.10

  • Faster admin and checkout: the plugin loads its admin, courier and document code only on the requests that need it, and reads its settings once per request instead of rebuilding them each time.
  • Company orders with an invoice are now addressed to the company on Econt and Speedy waybills, with the person as the contact, so the delivery can be booked as a company expense. Until now they went out under the person’s name.
  • Econt and Speedy can return the signed documents to you, and send a two-way shipment where a second parcel comes back.
  • BOX NOW: cash on delivery to a locker (paid by card on pickup), and a correct expected-delivery date at the checkout.
  • Speedy parcel machines are offered only when the order fits one compartment; larger orders fall back to an office or an address.
  • Pigeon waybills now list the real items in the parcel.
  • Fixes: the numbering pause now also covers the first order placed after an update, so numbers cannot clash; no waybill is created for a cancelled or refunded order; and the cash-on-delivery report and the EU distance-sales threshold account for refunds.

1.5.9

  • Fix: an order whose delivery is paid directly to the courier (a 0.00 shipping line) issues its invoice again, without needing a “legal basis for 0%” set. An empty delivery line was never a real zero-rated supply.
  • Fix: setting up “Pickup from the shop” no longer re-enables a WooCommerce “Local pickup” you had paused in another zone.
  • Fix (paid edition): on the custom checkout the payment method you chose no longer reverts to the first option (often cash on delivery) when the totals refresh.

1.5.8

  • A town you search for at checkout now shows for a pickup method only when it has that kind of point (an office, a locker, or either). Delivery to an address still reaches every town.
  • New: office and locker lists refresh on their own, on a schedule per courier (paid edition) or with a “Refresh now” button (free).
  • New (paid edition): a “By courier” checkout template; “Exact price at the checkout”, which quotes with the real parcel size; and “Split large orders into several parcels” for Speedy, Econt, Pigeon and BOX NOW.
  • New: a compact delivery summary at the checkout, and a “BulCommerce Pro” screen comparing the editions.
  • Pickup from the shop now has its own screen instead of sitting twice among the couriers.
  • Fix: a courier timeout or server error is treated as a passing failure to retry, not a rejected address; Econt and Speedy error messages read more reliably.
  • Fix: the withdrawal period starts at the status you count as delivered, so shops that stop at “processing” get a working window.
  • Fix: the EU distance-sales (OSS) warning works without an object cache, and the setup wizard no longer skips a courier.
  • Fix (Stripe beta): a partial capture holds the order for review, a zero-total order releases its authorisation, and a saved card is not duplicated on a double submit.
  • Performance: the orders list reads its documents in one query, and the monthly accountant archive stops loading orders it does not need.

1.5.7

  • New: a “Shipment tracking” page ([bulcommerce_tracking]) where buyers see where their parcel is, from the tracking link or by order number and e-mail. Lookups are rate-limited and refuse binned orders; the order e-mails and account page link to it.
  • New: a “right of withdrawal” page ([bulcommerce_withdrawal]) where a buyer withdraws within the legal period; the request is recorded on the order and e-mailed to both sides. The period and the “delivered” statuses are set in Add-ons.
  • New: a “by courier” delivery template for the checkout, and an admin warning as EU cross-border sales approach the €10,000 OSS threshold.
  • Add-ons: three Pro features (custom checkout, external invoicing, advanced document access) now appear with a description and a link.
  • Courier settings: packagings are edited as a table, with a stepped setup wizard and a plain “who pays the delivery” helper.
  • Checkout: a delivery option can show its own line (a single pickup point shows its address and hours) with a “View on the map” link.
  • BOX NOW: compartment terminology throughout, expected delivery time shown, a daily locker refresh, the booked compartment follows the parcel size, and lockers that cannot take parcels are hidden.
  • Fix: Speedy’s locality list could break on the Cyrillic “х” (towns such as “Елхово”); it now parses correctly.
  • Fix: several checkout-delivery bugs around “Pickup from the shop” and the shop’s own delivery.
  • Admin: “Issue documents” is one switch for the whole invoicing feature.

1.5.6

  • New: cap a courier’s live price at a maximum the buyer pays; the shop covers the difference and the courier is still paid in full on the waybill.
  • New: price tables edited as a table; an Econt cash-on-delivery agreement can require a real postal money transfer (ППП); a “minimum order” progress bar; and “Expected delivery date” as its own add-on with per-place control.
  • The beta Sameday integration is removed and euShipments (cross-border) moves to the paid edition; BOX NOW, Econt, Speedy and Pigeon stay free.
  • Fix: a proforma is no longer issued just by opening a link (a crawler or mail prefetcher could trigger one); it now needs a signed POST action.
  • Fix: the locality lookup no longer caches an empty result, so a network hiccup cannot lock a town out for an hour.
  • Fix: behind a reverse proxy or CDN, the plugin’s CSS, JS and logos are built from the site’s own scheme instead of being blocked as mixed content.
  • Deleting the plugin keeps your setup by default, with an explicit opt-in to wipe everything.
  • Fix: a courier that refuses its credentials shows a clear “Not connected” status, and the courier fee paid on delivery shows on one summary line.
  • Admin: Import/Export moved to Help, and the EU VAT regime option moved to “Invoices and documents”.

1.5.4

  • New (beta): card payments through Stripe. The Stripe Payment Element (cards, Apple Pay, Google Pay and local methods) with 3-D Secure, on the classic and block checkout. Saved cards are kept at Stripe, refunds come from the order screen, and a signed webhook confirms each payment. Test with Stripe test keys first.
  • Paid edition: a custom two-column checkout via the [bulcommerce_checkout] shortcode – WooCommerce’s own checkout in a modern layout with a sticky order summary.
  • The customer’s status now shows inside the orders list “Delivery” column instead of a separate column.
  • Fix: on the classic checkout the courier logo and the office/address picker no longer disappear after the totals refresh.
  • Fix: the EIK company lookup (VAT register / VIES) no longer returns 403 for logged-out buyers; it is a public, rate-limited read.
  • Fix (Stripe): saved cards survive a totals refresh; a larger total after authorisation holds the order instead of capturing less; and a second submit releases the earlier hold without duplicating the customer record.
  • Fix: several silent failures now report – the monthly archive warns when a PDF cannot be written, toggling a shipping method reports failure, and an invalid VAT rate is logged.

1.5.3

  • The “≈” before a courier fee is shown only when the fee is an estimate from the price table; a price the courier gives itself is exact and shown plainly.
  • Courier delivery with live pricing and an empty price table is now offered on a compact checkout too, showing “calculated later” until the destination is known.
  • BulCommerce Guard: a “Test the key” button checks the licence key against the network and shows the result.
  • Settings: the company-invoice rules and the VIES check moved from Checkout to “Invoices and documents”. Behaviour is unchanged.

1.5.2

  • Compact checkout: the address fields are hidden before the page draws, so there is no flicker.
  • Courier delivery methods now lead with the courier’s own live price; the price table is optional, as a fallback or for fixed prices.
  • New tool “Import / Export” (Add-ons): move the whole configuration to another site as a JSON file (credentials only when you ask).
  • New add-on “BulCommerce Guard” (beta): flags risky cash-on-delivery customers against a shared network, and can hide cash on delivery for a flagged one. Off by default.
  • New: a per-courier “Setup wizard” in the header, and delivery time edited in one place (Checkout design Texts).
  • Econt: a third “Courier fee paid by” option, where the receiver pays your fixed price and the courier bills you the difference, so the price the buyer sees never changes.
  • Order screen: the shown “Courier fee” follows the shipping total you set.

1.5.1

  • Translations: the plugin ships a Bulgarian .po, a .pot template and a compiled .mo, so wording can be changed with Loco Translate and WordPress before 6.5 still shows the Bulgarian.
  • Add-on “Checkout form”: order, rename, show, hide or require the checkout fields for billing and delivery; switched off, WooCommerce’s own fields return untouched.
  • Add-on “Side cart”: the cart opens in a panel with a promo-code field and a product on offer; its look and the offered products are set in Add-ons.
  • Setup wizard opens on the first activation and stays in the menu.
  • Add-ons “Microinvest export” and “NRA audit file (Н-18)” each have their own on/off switch.
  • Admin: cleaner icons, a “Questions” link to the community group, and the “≈” mark can be switched off.
  • Support e-mail: info@wpsupporting.com.