| 开发者 | ukto |
|---|---|
| 更新时间 | 2026年11月12日 20:32 |
| PHP版本: | 7.4 及以上 |
| WordPress版本: | 7.1 |
| 版权: | GPLv2 or later |
| 版权网址: | 版权信息 |
No. It is an independent integration built on the public Pennylane API (v2). It is not affiliated with, endorsed by or sponsored by Pennylane.
Yes. The plugin sends invoices to your Pennylane account through the official API. Any Pennylane plan that includes API access works.
No. Invoices are created and numbered by Pennylane through its API. The plugin sends the order data and retrieves the resulting document, so legal numbering stays in your accounting software.
Domestic French sales at any legal rate, intra-EU B2B with a validated VAT number (intra-Community supply exemption, Article 138 of Directive 2006/112/EC), intra-EU B2C (OSS — the customer country's rate as configured in WooCommerce), and exports outside the EU (article 262 I of the French tax code). The matching legal mention is written on the invoice.
Nothing blocks. The order goes through and the VAT number is re-checked at invoicing time; a note is added to the order so you can verify manually. If the B2B exemption option is on and VIES cannot confirm the number at checkout, VAT is charged — and the invoice then follows what was actually collected.
Yes, as an option (off by default): enable "B2B checkout — VAT exemption" in the Invoicing tab. With a validated EU VAT number, the customer pays the net amount and the invoice carries the intra-Community exemption mention (Article 138 of Directive 2006/112/EC). Selling VAT-free intra-Community supplies requires filing the EC Sales List — check with your accountant first.
Yes. Install the plugin on each store with the same Pennylane account, and give each store a short, different "Store identifier" in the Invoicing tab (for example paris and lyon). Invoices from all stores follow the single legal numbering of your Pennylane account, and the order reference shown in Pennylane tells the stores apart (paris-1234, lyon-1234).
Yes. With test mode enabled, no write request reaches Pennylane: the API client blocks them centrally and payloads are only written to the WooCommerce logs so you can review them before going live — with customer names, addresses, phone numbers and e-mail addresses masked.
WooCommerce → Status → Logs, source "pennylane". Every API error is logged with the full
response, and every order keeps its own note trail. Customers' personal data is masked in the
logs; to log it in full while debugging, return true from the isfp_log_personal_data filter.
Automatic invoicing on status change — plus credit notes, reconciliation, customer e-mailing, bulk actions and backfill — is part of the Pro version.
isfp_log_personal_data filter restores full values
for one-off debugging.isfp_siret_client_ip filter lets
stores behind a CDN or reverse proxy rate-limit per visitor. Its messages can now be translated
and the server's explanation is shown to the customer.wp_safe_remote_get, size-capped, and only
served when the file really is a PDF — a hosting error page is no longer sent as "invoice.pdf".e_invoicing object on invoice creation and finalization, telling you what the approved
platform did with the invoice. The plugin ignored it: an invoice refused or rejected by the
platform still showed up as simply "finalized" and nobody was told. The status is now stored,
shown on the order screen, and a refusal, rejection or dispute adds an order note and a log
entry. French e-invoicing has been mandatory since 1 September 2026, so a silent rejection is
not a theoretical problem.factur_x flag instead of being assumed to
be Factur-X, and the result is shown on the order screen.sales_order_reference (e-invoice field BT-14), so the
WooCommerce order number is visible from Pennylane. Until now the link between an invoice and
its order only existed inside WordPress.isfp_, with
a one-time migration so existing settings are preserved.