[WordPress] 外掛分享: HAfiscal for WooCommerce

首頁 › 外掛目錄 › HAfiscal for WooCommerce
WordPress 外掛 HAfiscal for WooCommerce 的封面圖片
全新外掛
安裝啟用
—
尚無評分
剛更新
最後更新
—
問題解決
WordPress 5.8+ PHP 7.4+ v1.10.0 上架:2026-10-15

內容簡介

HAfiscal for WooCommerce 外掛可將訂單的財務收據自動發送至 HAfiscal Cloud API,並透過塞爾維亞稅務系統生成收據,提供給顧客及商店管理員,簡化了財務處理流程。

【主要功能】
• 自動發送訂單收據至 HAfiscal Cloud API
• 支援顧客類型欄位(個人或公司)
• 每種付款方式明確對應財務付款類型
• 自動重試功能,避免重複收據
• 訂單退款時自動處理存根
• 自動確認銀行轉帳及 IPS QR 付款

外掛標籤

開發者團隊

⬇ 下載最新版 (v1.10.0) 或搜尋安裝

① 下載 ZIP → 後台「外掛 › 安裝外掛 › 上傳外掛」
② 後台搜尋「HAfiscal for WooCommerce」→ 直接安裝(推薦)
📦 歷史版本下載

原文外掛簡介

When an order becomes “Processing” or “Completed”, the plugin sends it to the HAfiscal Cloud API, which issues a fiscal receipt through the Serbian Tax Administration fiscal system (PFR). The receipt (number, QR code, journal, verification link) is stored on the order and shown:

to the customer on the “Thank you” page and in “My account > Orders”;
in customer emails (the receipt is issued before the email is sent);
on a public printable page;
to the shop admin in an order meta box and an orders list column.

Other features:

Customer type field: private person or company, with company name, tax ID (PIB) and company registration number (MB), validated by check digit. Company buyers get their details on the receipt. Compatible with “Serbian Addons for WooCommerce” (same field keys, no duplicate fields).
Explicit mapping of every payment method to the fiscal payment type (bank transfer, card, instant payment, cash).
Automatic retries via WP-Cron without duplicate receipts.
Automatic storno when an order is refunded.
Serbian e-invoices (eFaktura, SEF) for company buyers, sent through HAfiscal – see below.
Bank transfer / IPS QR payment method confirmed automatically by HAfiscal – see below.
Products and stock synced with HAfiscal – see below.

Bank transfer / IPS QR payment
A payment method “Uplata na račun / IPS QR” (bank transfer / IPS QR), available for RSD.

At checkout the plugin opens a payment request in HAfiscal (one per order, idempotent). If HAfiscal cannot open it (no connection, company bank account missing), the customer sees a clear error and can choose another payment method.
The order is set to “On hold” and the customer gets the NBS IPS QR code and the payment slip data (payee, account, amount, model 97 and reference number, purpose, payment code) on the “Thank you” page, in “My account > Orders” and in the “On hold” / invoice email (the QR image in emails is a signed link, because many email clients block embedded images).
When HAfiscal matches the payment from the bank statement, it notifies the shop (webhook, HMAC-SHA256 signature checked with the webhook secret). A fully paid order is marked paid and the existing flow issues the fiscal receipt or e-invoice. Partial or over-payments only add an order note and an admin notice.
Fallback: WP-Cron checks waiting orders every 15 minutes for a configurable number of days (default 14).
Cancelling the order cancels the payment request.
On the fiscal receipt this method is always mapped (default “Bank transfer”; can be changed to “Instant payment” in the payment method mapping).

Products and stock
Settings tab “Artikli i zalihe” (products and stock).

Simple products and variations with a SKU are sent to HAfiscal when saved, or all at once with “Send all products” (batches of 100 in the background, progress shown). Products without a SKU are skipped and listed.
Price with VAT (active price, sale price when valid) according to the store tax settings; VAT rate from the product tax class (editable table, default standard 20%, reduced 10%, zero 0%).
Stock is managed in HAfiscal (selected warehouse). A paid order (“Processing”/”Completed”) decreases it once, cancelled or refunded orders (full or per line) increase it. Stock changes in HAfiscal reach the shop through a webhook, the “Reconcile stock now” button and a daily check; these updates are never sent back. Quantities held by orders still waiting for payment are subtracted on the shop.
Products list column and order notes show the sync status.

eFaktura (SEF)
E-invoices are a feature of the HAfiscal service: the plugin sends the invoice data to HAfiscal, and HAfiscal sends the e-invoice to SEF (the Serbian e-invoice system) on the merchant’s behalf, using the SEF settings (SEF API key, environment, company data, bank account) stored in the merchant’s HAfiscal account. The plugin itself never connects to SEF. The invoice also appears in HAfiscal among outgoing invoices, numbered by the company’s HAfiscal numbering. An HAfiscal account with eFaktura enabled and set up is required; if it is not, HAfiscal’s message is shown on the order and the buyer gets a fiscal receipt.

Turned on with “Send e-invoices” (“Šalji eFakture”) on the eFaktura settings tab; “Check connection” (“Proveri vezu”) shows whether eFaktura is ready in HAfiscal.
Only buyers marked as a company with a valid tax ID (PIB) whose company is registered on SEF get an e-invoice (HAfiscal checks the tax ID; the answer is kept for 24 hours). Private persons never get one.
Invoice lines are the same as on the fiscal receipt (exact order total, shipping as a line, RSD only); VAT category and exemption code for 0% lines are configurable.
Sent automatically when the order becomes “Processing” or “Completed” (configurable) or manually from the order screen and the “Send e-invoice” (“Pošalji eFakturu”) bulk action. An already sent order is never sent again automatically; a new e-invoice for the same order requires explicit confirmation.
Temporary errors are retried by WP-Cron with the same invoice reference, so no duplicates are created.
Configurable fiscal receipt rules: company with e-invoice – no fiscal receipt (default), company without e-invoice – fiscal receipt, private person – fiscal receipt. A skipped receipt is recorded on the order with the reason and can still be issued manually.

An HAfiscal account with an API key is required (https://hafiskal.rs).
External services
This plugin connects to one external service, the HAfiscal Cloud API. Nothing is sent when the plugin is activated: no data leaves the site until the shop admin connects the shop to HAfiscal (“Connect to HAFiskal”) or enters an HAfiscal API key. Without an API key the plugin makes no requests at all.
HAfiscal Cloud API (HostArena)
What it is: HAfiscal is a Serbian invoicing and fiscalization service provided by HostArena (https://hafiskal.rs). The plugin talks to the HAfiscal Cloud API at the address set in the plugin settings (default https://api.hafiskal.rs) and, only during “Connect to HAFiskal”, sends the admin’s browser to the HAFiskal web app (default https://dash.hafiskal.rs). https://api.ha.co.rs and https://fiscal.ha.co.rs are the former addresses of the same HAfiscal Cloud API and web app; installations that still have them saved are switched to the new addresses automatically on update.
What it is used for and what data is sent, and when:

Fiscal receipts (fiscalization): when an order becomes “Processing” or “Completed” (or the admin clicks “Fiscalize”), and on WP-Cron retries of failed orders, the plugin sends the order ID and number, currency, order items (name, quantity, price with VAT, VAT rate, discounts), shipping and fees, the payment method mapped to the fiscal payment type and the amount. For company buyers only, it also sends the company name, tax ID (PIB), company registration number (MB), billing address, e-mail and phone so that the buyer appears on the receipt. No personal data is sent for private persons. When an order is refunded, the order ID and refunded amounts are sent to issue a refund (storno) receipt.
Tax rates and company check: the plugin reads the company’s VAT rates, business locations and company name/tax ID from HAfiscal (when fiscalizing and when the admin clicks “Test connection”).
E-invoices (eFaktura, only when “Send e-invoices” is turned on, and only for company buyers): before the first e-invoice to a buyer, the buyer’s tax ID (PIB) is sent to check whether the company is registered on SEF (the answer is kept for 24 hours). When an e-invoice is sent (automatically on order status “Processing”/”Completed”, or manually from the order screen or bulk action) the plugin sends the invoice data: buyer company name, tax ID (PIB), company registration number (MB), public sector ID (JBKJS, if entered), billing address, postcode, city and e-mail, order items (name, quantity, price with VAT, VAT rate, discounts), shipping, amounts, issue/delivery/due dates, the order number as the payment reference and the payment method. HAfiscal forwards this data to the Serbian e-invoice system SEF (Ministry of Finance of the Republic of Serbia) on the merchant’s behalf, using the merchant’s SEF settings stored in HAfiscal; the plugin never contacts SEF itself. “Refresh status” and “Check connection” ask HAfiscal for the invoice status and for whether eFaktura is ready.
Payment requests (bank transfer / IPS QR): when a customer chooses the “Uplata na račun / IPS QR” payment method, the plugin sends the order ID, order total, currency, description (“Order #number”), the customer’s name and e-mail and the expiry date to get the payment slip data and the NBS IPS QR code. While the order waits for payment, the plugin asks HAfiscal for the payment status (at most every 15 minutes, for the configured number of days) and cancels the request when the order is cancelled. HAfiscal sends payment notifications to the shop’s webhook URL (/wp-json/hafiscal/v1/webhook); they are accepted only with a valid HMAC-SHA256 signature.
Products and stock (only when enabled in the “Artikli i zalihe” tab): product data (SKU, name, price with VAT, VAT rate, barcode, category, short description, image URL, active flag) is sent when a product is saved or on “Send all products”; stock movements (SKU, quantity change, order or refund ID) are sent when an order is paid, cancelled or refunded; the list of warehouses and stock quantities is read on “Reconcile stock now” and once a day. No customer data is sent for products and stock.

One-click connect (“Connect to HAFiskal”): when the admin clicks the button, the browser is sent to the HAFiskal web app with the shop URL, shop name, return URL and a random one-time state value. After the admin approves, the plugin sends the one-time code and the shop URL to the HAfiscal Cloud API (/v1/connect/exchange) and receives the API key, API address, webhook secret and the company name and tax ID. “Set up notifications automatically” sends the shop’s webhook URL and the list of events.

Service provider: HostArena, https://hafiskal.rs

Terms of Service: https://hafiskal.rs/uslovi-koriscenja/
Privacy Policy: https://hafiskal.rs/politika-privatnosti/

Data forwarded by HAfiscal to SEF (e-invoices only): SEF – Sistem e-faktura, the Serbian e-invoice system operated by the Ministry of Finance of the Republic of Serbia. Terms of use, privacy and legal documents: https://www.efaktura.gov.rs
Links shown to customers
The fiscal receipt contains a verification link and QR code issued by the Tax Administration of the Republic of Serbia (suf.purs.gov.rs). The plugin only shows this link; the customer’s browser opens it only if the customer clicks it or scans the QR code. QR code images in e-mails are served from the shop itself.

延伸相關外掛

文章
Filter
Mastodon