Platform Intelligence
OG PDF Smart Receipts & Invoices operates on a decoupled “Triple-Engine” execution architecture designed to parse WooCommerce order objects into three distinct document formats: continuous Thermal POS receipts, standardized A4 PDF/A-3 corporate invoices, and structured Peppol UBL 2.1 XML e-invoices.
Deployment Requirements
Upload the plugin to your /wp-content/plugins/ directory and activate it. Requires WooCommerce 10.0.0+ and PHP 8.0+ for full High-Performance Order Storage (HPOS) and Dompdf engine compatibility.
Store Identity & Synchronization
Store credentials and tax metadata can be populated automatically from the core WooCommerce configuration using a single-click AJAX synchronization trigger.
Step 1: Open Settings
Navigate to WooCommerce > Settings > Smart Receipts & Invoices in your WordPress admin dashboard.
Step 2: Trigger Sync Protocol
Click the “Sync Store Address from WooCommerce” button located in the Store Tax & Identity tab.
Step 3: Automated Nonce Verification
The synchronization protocol imports your store’s legal Name, Address, Country, and Contact Email using a hardened ogpsr_sync_store_address_nonce security verification.
Document Render Engines
The platform provides three specialized rendering engines tailored to physical point-of-sale hardware, corporate B2B accounting compliance, and logistics fulfillment workflows.
Thermal POS System Engine
Hardware-optimized for 44mm, 58mm, and 80mm continuous thermal paper rolls. Features a dedicated cut-line spacing layer to prevent printer auto-cutters from bisecting legal terms or footer text.
A4 Corporate B2B & PDF/A-3 (Factur-X)
Generates human-readable A4 PDF invoices with embedded machine-readable CII XML (Factur-X / ZUGFeRD 2.5, ISO 19005-3 compliant). Includes purchase order numbers, BACS payment details, and item SKU/GTIN identifiers.
Fulfillment & Packing Slips
Zero-price logistics documents generated automatically when orders enter the Processing state, allowing immediate dispatch to warehouse packing teams.
Thermal Printer Configuration
Thermal receipt generation requires precise physical roll width calculations and non-rendering whitespace layers to ensure clean auto-cutter operation and crisp pixel rendering.
Auto-Cut Line Spacing Logic
A non-rendering 15mm boundary layer is appended after the document footer hook. This signals thermal printer printheads to advance tape by 15mm prior to triggering the internal mechanical cutter blade, preserving document footers.
Global E-Invoicing Standards (8 Supported Profiles)
The e-invoicing engine maps WooCommerce tax rules directly to 8 international UBL 2.1 and CII XML standards, ensuring compliance across global public procurement and tax authority mandates.
| Standard / Profile | Region / Jurisdiction | Technical Specification Details |
|---|---|---|
| PEPPOL BIS Billing 3.0 | Pan-European | UBL 2.1 standard profile for European public sector procurement. |
| PINT EU V1.1.1 | EU Member States | Peppol International Invoice (PINT) specification for EU cross-border trade. |
| Singapore PINT SG V1.4.1 | Singapore (IRAS) | Inland Revenue Authority of Singapore mandate with SR (9%) and ZR tax category bindings. |
| UAE PINT-AE | United Arab Emirates (FTA) | Federal Tax Authority specification with Tax Registration Number (TRN) validation. |
| AUNZ PINT V1.1.3 | Australia & New Zealand | ATO and IRD compliant profile with ABN/NZBN validation and positive credit note amounts. |
| Japan PINT-JP | Japan (Digital Agency) | Japanese Qualified Invoice System profile with JCT Tax Registration Number formatting (^T[0-9]{13}$). |
| German XRechnung 3.0.2 | Germany B2G | KoSIT federal mandate requiring buyer reference Leitweg-ID (BT-10). |
| Factur-X / ZUGFeRD 2.5 | France & Germany | Hybrid PDF/A-3 (ISO 19005-3) format containing embedded Cross Industry Invoice (CII) XML. |
Identity Scheme Lookup Requirements
Transmitting e-invoices requires specifying an Electronic Address Scheme (EAS) ID (such as 0088 for GLN, 0184 for Danish CVR, or 9915 for Singapore UEN). The XML compiler validates these schemes automatically prior to transmission.
Peppol Access Point Gateways & Status Pulse
E-invoice transmission connects stores directly to registered Peppol AS4 Access Points via an extensible gateway factory with real-time status tracking and payload editing safeguards.
StoreCove API v2 Access Point Integration
Automates Legal Entity creation (/legal_entities), live SML/SMP Participant Discovery (/discovery), dry-run preflight payload validation (/invoices/preflight), signed AS4 delivery evidence retrieval (/evidence), and automated webhook delivery updates.
Status Pulse Lifecycle
Displays live transmission states in the Order Edit metabox: Success / Cleared (cleared, delivered, accepted), Pending (submitted, under_query), and Action Required (routing_failed, rejected).
Manual Payload Edit Safety Guard
If an administrator manually edits an XML or JSON payload inside the order accordion, automated background triggers are paused to prevent accidental overwrites. Transmit manually via [ SEND TO STORECOVE ] or reset via [ REGENERATE ].
Multi-Currency & Exchange Rate Automation
For international stores selling in foreign currencies, the engine automatically resolves conversion rates to the jurisdiction’s tax reporting currency and renders dual-currency breakdowns.
Automated Exchange Rate Engine
Queries live exchange rates with a 12-hour transient cache (ogpsr_ex_rates_{currency}) and seamlessly pulls existing rates from WooCommerce Multi-Currency plugins (WOOCS, WMC, WooCommerce Payments).
Dual-Currency Totals on Invoices
Renders both customer transaction currency and statutory reporting currency (e.g. AED for UAE, SGD for Singapore, AUD for Australia, JPY for Japan) in PDF total tables alongside the exact conversion formula.
Transactional Email Attachments & Deduplication
Map generated documents to transactional WooCommerce customer emails with built-in Factur-X deduplication and refund routing.
Email Trigger Delivery Matrix
| WooCommerce Email Event | Attached Document Formats | Default Behavior |
|---|---|---|
| Customer Completed Order | A4 PDF Invoice, Peppol XML (or Factur-X Hybrid PDF) | Auto-Attached |
| Customer Invoice / Details | A4 PDF Invoice, Peppol XML | Auto-Attached |
| Customer Refunded Order | A4 PDF Credit Note, Credit Note XML | Auto-Attached |
| Processing Order / New Order | Warehouse Packaging Slip, Thermal POS Receipt | Configurable |
Factur-X Hybrid Deduplication
When Hybrid PDF mode (Factur-X / PDF/A-3) is enabled, the standalone XML attachment is automatically suppressed because the machine-readable XML is embedded directly inside the PDF container, eliminating duplicate customer attachments.
Refund Credit Note Routing
When a refund is issued in WooCommerce, the system intercepts WC_Order_Refund objects to compile dedicated Credit Note PDFs and UBL Credit Notes with preceding commercial invoice references.
Automatic Metadata & BACS Harvesting
Zero-configuration metadata discovery automatically detects tax numbers, buyer references, commodity codes, and bank accounts from popular third-party WooCommerce extensions.
EU VAT & National Tax IDs
Harvests VAT numbers from _ogpsr_vat_number, vat_number (EU VAT plugin), _billing_vat_number (Germanized / YITH), and _vat_number (German Market) in strict fallback order.
BACS Bank Details (IBAN & BIC)
Automatically extracts IBAN, BIC/SWIFT, and Bank Name from standard WooCommerce Direct Bank Transfer settings (woocommerce_bacs_accounts) to populate invoice payment instructions and XML settlement tags.
Product GTIN & HS Customs Codes
Captures product barcodes and international customs codes from _ogpsr_gtin, gtin, _gtin, _ogpsr_commodity_code, and _ogpsr_country_origin to embed under line item annotations.
POS Tender & Payment Resolution
Auto-resolves custom tender names from Chwazi POS, Oliver POS, FooSales POS, and YITH POS so in-person point-of-sale receipts display clear, accurate payment titles.
German XRechnung & French Chorus Pro (B2G)
Public sector B2G compliance requires rigorous validation of federal buyer references, mandatory legal disclaimers, and interactive preview visualizers.
German XRechnung 3.0.2 & KoSIT Visualizer
Enforces German Federal Leitweg-ID (BT-10) syntax across all 16 federal states (e.g. 01 Schleswig-Holstein, 05 NRW, 09 Bavaria, 11 Berlin, 99 Bund) with an interactive [ 🇩🇪 View Official KoSIT XRechnung Preview ] modal inside the order metabox.
French Chorus Pro & Factur-X / PDF/A-3
Captures Customer SIRET (ISO 6523 Scheme 0002), Service Code (codeService / BT-11), and PO Commitment Number (numEngagement / BT-13) with 100% veraPDF ISO 19005-3 compliant color profiling (sRGB2014.icc).
Filesystem Architecture & WPMS
Generated PDF and XML files are written directly to a hardened local filesystem directory rather than database blob storage, optimizing system performance and preventing unauthorized HTTP access.
Hardened Directories
Rendered files are stored in wp-content/uploads/thermal-receipts/. Access is restricted using custom .htaccess directives and an index shielding file to block directory listing and direct web downloads.
High-Performance Order Storage (HPOS)
Fully compatible with WooCommerce Custom Order Tables (HPOS), eliminating legacy postmeta database queries.
WordPress Multisite (WPMS) Support
Compatible with WordPress Multisite Network installations, supporting network-wide plugin activation and per-site licensing.
System Hooks & Filters
Extend render pipelines and payload compilation using our standardized developer filter loops.
Pipeline Intercepts
Filter document metadata before PDF rendering and XML generation.
Init Callbacks
Execute custom business logic as soon as the core Freemius licensing and PDF engines boot.
Frequently Asked Questions & Troubleshooting
Instant answers and diagnostic procedures for hardware roll printers, transactional email attachments, Peppol gateway errors, and document regeneration.
How do I fix blurry thermal receipt logos?
Thermal roll printers decode visual pixels directly. Upload a high-contrast 200x80px Mono JPG or PNG logo under settings. Avoid uploading 4K images to prevent downscaling interpolation artifacts.
Why are PDF invoices not attaching to customer emails?
Ensure you explicitly enabled document attachment checkboxes in WooCommerce > Settings > Smart Receipts & Invoices > PDF Invoices for specific order status emails (e.g. “Completed Order”).
Why is the XML file not attached separately to emails?
When Hybrid PDF (Factur-X / PDF/A-3) is enabled, the XML is embedded directly inside the PDF container. The plugin automatically deduplicates email attachments to avoid sending redundant standalone files to your customers.
Why did automatic gateway transmission pause on an order?
If an administrator manually edits the XML or JSON payload in the metabox accordion, the Manual Edit Safety Guard activates to protect your custom changes. Simply click [ SEND TO STORECOVE ] to transmit or [ REGENERATE ] to reset.
How are multi-currency exchange rates calculated on invoices?
The engine reads rates directly from active WooCommerce Multi-Currency plugins or syncs live exchange rates via a 12-hour cached API query, printing statutory tax amounts in your local accounting currency (e.g. AED, SGD, AUD, JPY).
How do I show BACS bank details (IBAN/BIC) on invoices?
Bank details are harvested automatically from WooCommerce > Settings > Payments > Direct Bank Transfer (BACS) accounts. No custom code is required; IBAN and BIC populate visual footers and XML settlement nodes directly.
What global e-invoicing standards are supported?
The engine supports 7 international standards: PEPPOL BIS Billing 3.0, PINT EU V1.1.1, Singapore PINT SG V1.4.1 (IRAS 9% SR & ZR), UAE PINT-AE (FTA TRN), Australia & New Zealand PINT V1.1.3 (ABN/NZBN), Japan PINT-JP (JCT), German XRechnung 3.0.2 (Leitweg-ID), and Factur-X 1.09 / ZUGFeRD 2.5 (Hybrid PDF/A-3 ISO 19005-3).
How do I debug StoreCove gateway preflight / transmission failures?
If StoreCove returns a validation error, inspect the Gateway Pulse panel in the Order Edit sidebar. Verify that the customer’s Peppol Endpoint ID, EAS Scheme ID (e.g. 0088, 0184), and Store Tax ID are properly populated.
How do I force-refresh an order address and regenerate documents?
If order address details are altered post-purchase, open the Order Edit page and click the [ Regenerate ] button in the sidebar metabox to purge cached files and rebuild the document from updated database values.
Does this plugin support WordPress Multisite Networks (WPMS)?
Yes, full native support for WordPress Multisite Networks (WPMS) is integrated with network-wide activation and network license quota management.