WooCommerce PDF Invoices & Packing Slips Professional - WordPress Plugin
This plugin is a powerful extension that enhances the functionality of the WooCommerce PDF Invoices & Packing Slips plugin. It provides a professional solution for generating customizable and comprehensive PDF invoices and packing slips for WooCommerce stores. With this plugin, users can easily create and customize their invoices and packing slips to meet their specific business requirements.

Plugin Features
This plugin for WordPress offers a wide range of features that make it a valuable tool for any WooCommerce store owner. It allows users to generate PDF invoices and packing slips not only for regular orders but also for refunds, cancellations, and partial shipments. This ensures that all aspects of the stores financial transactions are properly documented and managed.
One of the key features of this plugin is its flexibility in customization. Users have the ability to fully customize the layout, format, and appearance of their invoices and packing slips. They can add their own logo, choose different fonts and colors, and even include additional information such as terms and conditions, return policies, or promotional messages. This level of customization helps to create a professional and consistent brand image for the store.
Additionally, this plugin supports multiple languages, allowing users to generate invoices and packing slips in the language that best suits their customers. It also supports multiple currencies, ensuring that the invoices and packing slips accurately reflect the currency used in each transaction.
Another useful feature of this plugin is its ability to automatically attach the generated PDF invoices and packing slips to the order confirmation emails sent to customers. This eliminates the need for manual emailing and ensures that customers receive complete and properly formatted documentation for their purchases.
In terms of ease of use, this plugin offers a user-friendly interface that makes it simple to configure and manage invoices and packing slips. Users can easily customize templates, enable or disable features, and specify the information to be included in each document. It also provides a preview feature that allows users to view the generated PDFs before sending them to customers.
Overall, this plugin for WordPress, which extends the functionality of the WooCommerce PDF Invoices & Packing Slips plugin, provides a comprehensive and professional solution for generating customizable invoices and packing slips. Its flexibility in customization, multi-language and multi-currency support, and automated attachment feature make it a valuable tool for any WooCommerce store owner looking to streamline their invoicing process and enhance their customer experience.
Specifications:
| Release date: | 11-10-2020 | |
| Last updated: | 26-01-2026 | |
| Type: | Paid | |
| License: | GPL | |
| Subject: | Directory & Documentation for WooCommerce | |
| Compatibility: | W5.x W6.x | |
| Includes: | Plugin | |
| Language packs: |
|
|
| Developer: | WP Overnight | |
| Rating: | ||
Share with your friends!
WooCommerce PDF Invoices & Packing Slips Professional Setup Guide for Store Documents
WooCommerce PDF Invoices & Packing Slips Professional is not just about adding a polished PDF to an email. Its role goes deeper: it helps separate store documents by purpose, automate document creation at the right order statuses, preserve clear numbering, and give the store team a controlled workflow for invoices, packing slips, proformas, receipts, and credit notes. This guide covers practical post-installation setup, numbering logic, additional document types, bulk export, cloud storage, multilingual support, and troubleshooting common failures.
This article is intended for WooCommerce store owners or administrators who already use the base PDF Invoices & Packing Slips for WooCommerce plugin and want to understand exactly what the Professional extension adds. We will not repeat the usual product-page description. Instead, we will walk through the full process from environment checks and initial activation to a real-world workflow: an order is created, the document is generated at the right moment, the customer receives the correct PDF, the warehouse sees the packing slip, and accounting receives a document package for the selected period.
Special attention is given to the settings you should not configure blindly. PDF documents have consequences: a number may become permanently assigned to an order, a credit note may require an existing refund, an email service may reject an attachment, and a document link may be restricted by access permissions. That is why every important section includes not just the action itself, but also a way to verify the result.
What the Professional Extension Actually Solves
The base WP Overnight plugin creates PDF invoices and packing slips for WooCommerce, attaches documents to selected emails, and lets you download or print them from the order screen in the admin panel. The Professional extension adds a management layer that becomes especially valuable in stores dealing with returns, B2B customers, warehouse operations, multiple languages, or regular document handoffs to accounting.
The key idea is simple: Professional does not replace WooCommerce or turn your store into a full accounting system. It expands the document workflow around the order. The order remains the source of data, WooCommerce remains the sales system, and the plugin decides which PDF to generate, when to generate it, which number to assign, where to send the file, and where to find it later.
When the Extension Is Truly Useful
The plugin is worth considering if your store runs into at least one of these situations:
- The customer needs not only a final invoice, but also a preliminary document before payment or before the order is completed.
- When processing a return, you need to issue a credit note instead of rewriting an invoice that has already been created.
- The warehouse, supplier, manager, or accountant needs to receive different documents at different order statuses.
- You need to export documents in batches by period, status, customer, or document type.
- Documents need to be stored in a server archive or sent to Dropbox, Google Drive, or an FTP/SFTP directory.
- The store operates in multiple languages and you need to control the language of PDF documents rather than relying only on the site language.
- You need to display additional order fields in addresses, such as a VAT number, without building a full custom template.
If your store processes only a few orders per month, rarely handles returns, and accounting receives documents manually, Professional may be more than you need. In that case, the base version may be enough if it is configured carefully: template, logo, emails, and invoice number. But once documents become part of the daily operation, manual control starts to break down quickly: someone sends the wrong file, someone creates the invoice too early, someone exports the wrong period.
Who This Product May Not Be Right For
WooCommerce PDF Invoices & Packing Slips Professional should not be treated as a universal replacement for local accounting requirements. It helps generate and store WooCommerce documents, but it does not validate your country's tax rules, rules for correcting already issued invoices, mandatory legal fields, or the legal status of specific document formats. If your store operates in a tightly regulated niche, the final template and numbering workflow should be reviewed with your accountant.
The plugin may also be excessive if what you really need is a visual drag-and-drop builder for every document block. WP Overnight offers separate template and customization options, but Professional is primarily about documents, numbering, address formats, bulk operations, notifications, and storage. If your only goal is to move PDF blocks around with a mouse, compare it with dedicated template/customizer products.
A practical check before choosing: list the three documents your store needs after an order is placed. If you can define the creation point, recipient, number series, and storage location for each one, Professional is likely a good fit. If you cannot, describe the internal process first and only then turn on automation.
What to Check Before Installation and Initial Activation
Before installation, it is not enough to confirm that WordPress can accept a ZIP plugin upload. For PDF documents, PHP extensions, WooCommerce email delivery, file access, permalinks, and your testing process all matter. Problems at this stage usually do not look like a clean system warning. More often, they show up as an empty preview, a missing attachment, a disappeared logo, or a document that opens for the administrator but not for the customer.
The Basic Plugin Stack
Professional is an add-on for PDF Invoices & Packing Slips for WooCommerce by WP Overnight. That means the base plugin must be installed and active first. In the WordPress admin panel, check the following:
- WooCommerce is working, orders can be created, and WooCommerce emails send successfully at least for a test order.
- The base PDF Invoices & Packing Slips for WooCommerce plugin is active and shows the
WooCommerce > PDF Invoicessection. - The Professional extension is activated as a separate plugin, and its features appear in document settings, bulk export, cloud storage, or the relocated Professional settings.
- PDF Invoice or Packing Slip actions appear in WooCommerce orders if those document types are enabled.
If the base plugin is not working, Professional should not be your first troubleshooting target. First, get a simple invoice generating correctly without extra modes enabled. That lets you separate an environment problem from a Professional-specific configuration issue.
Server Requirements and PDF Images
PDF generation depends on your server configuration. WP Overnight documentation points to the WooCommerce > PDF Invoices > Advanced > Status > System Configuration screen, where you can review requirements and warnings. The most important items include your PHP version, DOMDocument, MBString, GD, WebP support, Zlib, opcache, Imagick or GMagick, WordPress memory, and fileinfo. This is not just a decorative checklist: if GD is missing, logos or images may fail to render; if Zlib is configured in a conflicting way, the PDF may break during output or compression.
For initial setup, it is best to use a JPG or PNG logo. SVG may work in simple cases, but complex SVG files can sometimes produce stray lines, a blank logo, or rendering errors. WebP depends on server support. If the store uses a CDN or an image optimization plugin, test the PDF with optimization disabled for a sample logo. There is no need to change the entire site stack immediately. A temporary plain PNG is enough for comparison.
Permalinks and Document Access
If pretty document links are enabled, the WordPress permalink structure must not be set to Plain. With a plain structure, WordPress does not use rewrite rules for endpoints like wcpdf/invoice/..., so the PDF link may lead to a 404 page or the wrong location. This becomes especially frustrating when the document is attached to an email or shown to the customer outside the admin panel.
You should also review the document link access mode. By default, documents are available to users with the manage_woocommerce capability and to logged-in customers through My Account. The Document link access type setting includes a Logged in option and a Full option. For most stores, it is safer to keep access limited to logged-in users. Full link-based access should only be considered when the document does not expose sensitive data or when the business process explicitly requires it.
Do not start testing with a real customer order. Create a test product, a test order, and a separate email inbox for verification. That gives you room to check statuses, attachments, numbering, return documents, and access permissions without risk.
Installation and Initial Check in the Admin Panel
Installing the Professional extension is technically similar to installing a regular WordPress plugin through Plugins > Add New > Upload Plugin. But after activation, what matters is not just seeing the plugin in the list. You need to confirm that new working areas appear inside the WP Overnight settings. In the latest documentation, some former Pro settings have been moved to other sections, so the old path WooCommerce > PDF Invoices > Pro should not be your only reference point.
Where to Find the Relocated Professional Settings
WP Overnight documentation explicitly notes that the Pro tab is being phased out and that settings are now distributed across functional areas. That structure makes sense: address formats belong next to general address settings, the REST API belongs in advanced settings, language options belong in the multilingual section, and static files belong in the static files block. After installation, check these locations:
-
WooCommerce > PDF Invoices > General > Customer Address Customization- address formatting and additional fields. -
WooCommerce > PDF Invoices > Advanced > Settings- REST API and document link access. -
WooCommerce > PDF Invoices > General > Multilingual- PDF document language. -
WooCommerce > PDF Invoices > General > Static Files- additional files attached to selected emails. -
WooCommerce > PDF Invoices > Documents- separate settings for invoices, packing slips, proforma invoices, receipts, and credit notes. -
WooCommerce > PDF Invoices > Bulk export- bulk document export. -
WooCommerce > PDF Invoices > Cloud storage- sending documents to FTP/SFTP, Dropbox, or Google Drive, if you need that workflow.
If you are used to older instructions that refer to the Pro tab, do not assume a feature is gone. Check the new location first. This is especially important when updating an existing store: the team may keep looking for a setting in the old place when it has already been moved to a more logical section.
The First Test Order
For the initial verification, create a simple low-cost product, place a test order, and move it to the status where you plan to issue the first document. In that order, verify three things: whether the document button appears, whether the PDF preview opens, and whether the document is attached to the correct email. Do not enable every document type and every email at once. Start with invoice and packing slip, then add proforma, receipt, and credit note.
A good sequence for the first test looks like this:
- Enable the invoice and choose only one safe email trigger, such as the completed order email, if your accounting workflow does not require the invoice earlier.
- Generate the PDF manually from the order and check the logo, store address, customer details, products, taxes, shipping, and totals.
- Send the WooCommerce email manually from the order and check the attachment in your mail log or test inbox.
- After the invoice passes, enable the packing slip and verify that it does not contain unnecessary payment details if the document is intended for warehouse use.
- Only then move on to Professional documents: proforma invoice, receipt, and credit note.
Expected result of the initial check: the document opens in the admin panel, the number appears in the order, the email contains the correct attachment, and reopening the same document does not create a new number unnecessarily.
Professional Documents: Proforma, Receipt, and Credit Note
One of the main reasons to use WooCommerce PDF Invoices & Packing Slips Professional is the additional document types. They support different legal and operational use cases, so they should not be enabled on a "might as well" basis. Each document should have a clear purpose, a defined creation point, numbering logic, and a verification method.
Proforma Invoice as a Preliminary Document
A proforma invoice is useful when the customer or manager needs a document before the final invoice is issued. For example, a B2B customer places an order, but payment or approval has not been completed yet. Issuing the final invoice too early may be risky because the number becomes assigned to the document while the order itself may still be canceled. A proforma gives the customer a clear preliminary document while reserving the final invoice for the point when the order is actually ready for accounting.
In the document settings, verify the following:
- Whether the document itself is enabled in
Documents. - Which emails receive the proforma invoice.
- Whether the document is created automatically at selected statuses or only manually.
- Whether the proforma uses its own numbering sequence or another selected numbering scheme.
- Whether the title and filename clearly differ from the regular invoice so customers do not confuse the two.
For a typical store, it makes sense to start with manual proforma creation or a limited status that the team interprets consistently. Do not attach the proforma to every early email if customers might mistake it for a final invoice.
Receipt as Confirmation After the Invoice
The receipt is added by the Professional extension as a separate document. You can enable it under Documents, select Receipt, turn on Enable, and save the changes. WP Overnight documentation notes that the receipt has its own numbering sequence, can display the order number instead of the receipt number or both values, and can also support an annual reset and a configurable next number.
The key nuance with receipts is their relationship to the invoice. The Require Invoice setting can prevent a receipt from being created until the corresponding PDF Invoice exists for the order. This is useful when the receipt is supposed to confirm a finalized document rather than appear on its own. If this rule is enabled but the invoice has not been created yet, the receipt may disappear from the PDF preview. That is expected behavior, not an error.
Receipt check: create a test order without an invoice and confirm that the receipt is unavailable when
Require Invoiceis enabled. Then create the invoice and open the preview again. The expected state is that the receipt appears only after the condition has been met.
Credit Note for Returns
A credit note is not meant to retroactively edit an invoice. It creates a separate negative document for a refund. WP Overnight documentation emphasizes that issued invoice numbers should not be changed and that Professional provides a credit note mechanism for returns. To generate a credit note, the order typically needs to include a refund and an already created invoice. If those conditions are missing, the PDF preview may indicate that the document is unavailable.
When configuring a credit note, verify the following:
- The document is enabled in
Documentsand has a clear title. - The credit note number series is chosen deliberately: a separate sequence, the main invoice sequence, or another supported option.
- Emails and statuses do not create a credit note when there is no actual refund.
- A test refund in WooCommerce creates the credit note without altering the existing invoice.
In a live store, it is best to test credit notes with both a partial refund and a full refund on a dedicated test order. That shows how the document reflects amounts, items, taxes, and its relationship to the original invoice. If your accounting jurisdiction has special rules for credit notes, review the template with your accountant before using it at scale.
Document Numbers: When They Are Created and How to Avoid Breaking the Sequence
Numbering is the most important part of PDF document configuration. In WooCommerce, the order number itself is not always suitable for invoices because orders, products, pages, images, and other WordPress records may all share the same ID system. On top of that, not every order should become an invoice: payment may fail, an order may be for testing, or the customer may cancel before completion. That is why WP Overnight uses a separate invoice number sequence, and Professional extends that approach to additional document types.
When a Number Becomes Assigned to an Order
The invoice number is assigned at the moment the PDF invoice is created. This can happen manually when an administrator clicks the document button, through a bulk action, or automatically when the document is attached to an email. If the order already has an invoice number, reopening the document uses the existing number. If it does not, the plugin takes the next number from the settings, assigns it to the order, and increments the stored next number in the database.
That leads to one practical rule: do not attach the final invoice to emails that fire too early if the order may still be canceled or remain unpaid. For example, automatically creating an invoice on the very first admin email may assign a number to an order that never becomes a final sale. For many stores, a safer option is to attach the final invoice to the completed order email or another status that, in your operational workflow, means the document is truly ready.
Prefix, Suffix, and Padding
The plugin lets you define the number format through prefix, suffix, and padding. Padding adds leading zeros up to a specified length, so a value like 123 can appear as 000123. The prefix and suffix can use placeholders tied to the order date or document date, such as [order_year] or [invoice_date="Ymd"]. For Professional documents, the goal is not only to make the number look clean, but also to avoid mixing different document workflows.
A good structure for a store with multiple document types usually looks like this:
| Document Type | Why a Separate Series Matters | What to Check |
|---|---|---|
| Invoice | The final document for a completed sale. | The number appears only at the intended status and does not jump because of test emails. |
| Proforma invoice | A preliminary document before the final invoice. | The customer can clearly distinguish it by title, filename, and number. |
| Receipt | Confirmation after the invoice or a separate payment document. | When Require Invoice is enabled, the receipt is not created before the invoice. |
| Credit note | A document for a refund or correction through a separate negative document. | The credit note is created only when a refund and the original invoice exist. |
Filename Formats
Professional lets you change the PDF filename in the settings of each document without using the wpo_wcpdf_filename filter, which is required in the free version for deeper customization. For a more manageable archive, it is best to include the document type, document number, and a readable order or customer reference in the filename. For example, the settings may use placeholders such as {{document_number}}, {{order_number}}, {{order_date}}, and {{billing_last_name}}. Choose the exact format so that an accountant or manager can identify the document without opening every PDF.
Do not make filenames too long. In practice, a short stable format works better than a detailed name packed with address data, product names, and multiple fields. If documents are exported into a ZIP file or uploaded to cloud storage, long filenames create disorder much faster, especially when files move between different systems.
Detailed Post-Installation Setup
Once the initial checks are complete, you can move on to the settings that shape the store's day-to-day workflow. The goal at this stage is not to turn on as many checkboxes as possible. It is to build a stable process: which documents are created, who receives them, how they look, what language they use, where they are stored, and what should happen in edge cases.
Documents and Email Triggers
For each document, review the settings related to enablement, automatic creation, and email attachment. In Professional, there may be an option to create documents based on order status even without selecting a WooCommerce email under Attach to. That is useful for internal documents, but it requires caution: the document may still receive a number and become part of the archive.
A practical working approach:
- Create the invoice at the status that represents a final sale or a finalized accounting document in your store.
- Attach the packing slip at the point when the warehouse actually begins fulfillment, not at an early status where nothing is ready to process.
- Use the proforma for preliminary B2B workflows, waiting-for-payment scenarios, or order confirmation.
- Enable the receipt only where it is needed separately from the invoice, and verify the
Require Invoicerule. - Test the credit note using a real WooCommerce refund, not just by enabling the document in the settings.
After every change, create a new test order. Do not reuse the same order for all checks if you are testing numbering behavior. That order may already have a number assigned, and you will no longer see when the plugin actually creates a new one.
Addresses and Additional Fields
Professional adds the Customer Address Customization setting, where you can override the standard WooCommerce address format using placeholders. This is especially useful for B2B stores that need to show a VAT number, company field, delivery date, or another order field inside or next to the address. Instead of building a separate PDF template, you can assemble the address block directly in the settings.
Example format showing company, name, address, and a custom field:
{{billing_company}}
{{billing_first_name}} {{billing_last_name}}
{{billing_address_1}}
{{billing_address_2}}
{{billing_postcode}} {{billing_city}}
VAT: {{vat_number}}
This approach is safer than a full PHP customization because it uses the documented placeholder system. But it still needs to be tested against different customer types. If a B2C customer does not have a company or VAT number, make sure the PDF does not end up with blank lines, dangling colons, or awkward spacing. If you use a checkout field plugin, confirm the field's actual meta key: administrators often see a friendly label, while the placeholder must match the technical key without the leading underscore.
Static Files and Internal Notifications
Professional can attach multiple static files to selected WooCommerce emails. Such a file might be a return instruction sheet, warranty document, service terms, or B2B information. The main thing is not to turn static files into a dumping ground for everything. The more attachments you add to an email, the higher the risk of hitting your email provider's limits on file count or message size.
For static files, a good rule is one document, one clear reason. For example, a terms document should attach only to the completed order email, not to every notification. After enabling it, test the email in both the mail log and a real inbox. If your transactional email provider limits attachment size or quantity, a static file may cause the email to be sent without the attachment or rejected altogether.
Document Language in a Multilingual Store
Professional expands your control over PDF language. Without a multilingual plugin, you can choose the document language from options such as active user language, order/customer language, site default language, or the installed WordPress language. When using WPML, Polylang, TranslatePress, Weglot, or GTranslate, WP Overnight documentation describes different support levels and recommended values. For WPML, Polylang, and TranslatePress, the recommended setup is usually based on the order or customer language.
Do not verify language only in the admin preview. The administrator may see the document in their own profile language, while the customer receives the PDF in the order language. Create a test order in each store language, send the email, and open the PDF from the customer account. If some strings remain in a different language, check the plugin string translations, template, custom fields, and user language settings.
Keeping Documents on the Server
The Keep PDF on server setting for a document saves the generated PDF in the archive folder. The documentation points to a path like wp-content/uploads/wpo_wcpdf_xxx/archive. The purpose of this mode is that, once created, the document is loaded from the archive instead of being rebuilt every time from the current order data. This helps preserve document immutability when you do not want a later change to the address, logo, or template to alter an already issued PDF.
It is best to enable this mode only after the template and numbering have already been verified. If you turn on archiving while still fine-tuning the setup, you may end up storing PDFs with the wrong logo or address. For testing, create a new order, generate the document, change a non-critical template element, and open the document again. If the file is being loaded from the archive, it should not unexpectedly refresh based on the new settings. If your team expects documents to reflect the latest configuration, this mode may not match that expectation.
Bulk Export and Cloud Storage Without Document Chaos
Bulk export is one of Professional's most practical features for stores that need to deliver documents to accounting, the warehouse, or an outside contractor. But this is also where it is easy to create extra documents and assign numbers in situations where you intended only to export existing files. That is why bulk export should be treated as a working tool with filters, not as a "download everything" button.
Bulk Export Filters
In WooCommerce > PDF Invoices > Bulk export, you can choose the document type, period, date type, users, order statuses, the only existing document mode, and skip free orders. The date type is especially important. For a credit note, the order date and the document date may differ: the refund may have been created in one period while the credit note was generated in another. If you choose the wrong date type, some documents will predictably be left out of the export.
The Only existing document setting deserves special attention. When it is enabled, the export includes only documents that have already been created. If you disable it, bulk export may generate documents for matching orders for the first time. That is useful when you intentionally need to create documents for a period in bulk, but risky if you did not want new numbers assigned. Before disabling this option, test the status filter, document type, and date range on a small set of test orders.
Mini Scenario for Accounting
Suppose your accountant requests invoices and credit notes for a period. There is no reason to export every document from every status right away. First, run the invoice export with Only existing document enabled, then run a separate credit note export using the correct date type. If some credit notes are missing from the report, check whether the related order contains a refund and whether the original invoice was created. Only after that should you decide whether missing documents need to be generated.
Cloud Storage: FTP/SFTP, Dropbox, and Google Drive
Cloud storage in Professional lets you send documents to FTP/SFTP, Dropbox, or Google Drive. The documentation shows that you enable it under WooCommerce > PDF Invoices > Cloud storage > Enable, then select the cloud service and save the settings. General options include uploading all email attachments, organizing files into year/month folders, debug logging, and upload by order status.
For large stores, this is convenient, but storing documents outside WordPress also adds responsibility. Do not pass FTP/SFTP secrets into Codex, third-party text tools, or public notes. Configure the connection only in the site's admin panel. Enable debug logging only while diagnosing a problem, because detailed communication logs are usually unnecessary in normal operation.
Dropbox Without Unnecessary Reauthorization Loops
For Dropbox, the process starts by enabling cloud storage, choosing Dropbox, and saving the settings. After that, a notice appears asking for an access code, then the user goes through authorization and returns to the settings screen, where the connected account details and upload folder are shown. If there is a refresh token issue, the documentation recommends unlinking with refresh token removal and reauthorizing. That should be done only to fix a specific problem, not as a routine procedure.
Cloud storage result check: create one test document, make sure it appears in the selected service, and verify both the folder structure and the filename. Then disable test mode or debug logging if it was enabled only for verification. Do not begin a bulk upload until one document has completed the full path successfully.
Practical Example: B2B Order, Warehouse, and Accounting
Let us look at a workflow that clearly shows the value of the Professional extension. The store sells to business customers. The customer places an order, the manager needs to send a preliminary document, the warehouse needs a packing slip after confirmation, the final invoice should be created only after payment or shipment readiness, and if there is a return, accounting needs a credit note. On top of that, documents must be exported by period and stored in the cloud.
Goal of the Scenario
The goal is to build a controlled document flow:
- The proforma invoice appears before the final invoice and does not consume an invoice number.
- The packing slip is created for the warehouse when the order enters processing.
- The invoice is created only at the final working status.
- The credit note is created when a refund is issued and does not overwrite the original invoice.
- Documents can be exported in batches by period without accidentally generating extra numbers.
Preparation
Before configuring anything, create a test product, a test B2B customer, and a separate email address for verification. Add the required field, such as a VAT number, to the profile or the order if your store uses it. Confirm that the base invoice already opens in PDF preview. If the preview does not work, fix the environment, logo, template, or server requirements first.
Setup Steps
- Under
Documents, enableProforma Invoice, set a clear document title, and define a separate filename format. - Configure the proforma for an early status or manual creation, depending on your sales workflow. For the first test, manual creation is the safer choice.
- Enable
Packing Slipand attach it to the status where the order is actually handed off for fulfillment. - For the
Invoice, choose the moment that represents final document readiness. Do not use the earliest email if the order can still fall through. - Enable
Credit Noteand verify that it requires both a refund and the original invoice. - In
Customer Address Customization, add the VAT placeholder and test a B2B order both with and without a value. - In
Bulk export, prepare a period-based invoice filter withOnly existing documentenabled. - If you need cloud storage, enable the service for a single document first and verify the upload before using it at scale.
Result Check
After setup, create a new test order and move it through the relevant statuses. At the early stage, create the proforma and confirm that an invoice number has not yet been assigned if the final invoice should come later. At the fulfillment stage, check the packing slip. At the final status, verify the invoice and the customer email. Then create a test refund and verify the credit note.
The order should clearly show the created documents, dates, and numbers. Emails should contain only the attachments that match the selected email triggers. In bulk export with Only existing document enabled, the output should include already created documents rather than new PDFs for unprepared orders. If cloud storage is enabled, the expected folder and file should appear in the remote service.
The Nuance Most People Miss
You cannot keep using the same order indefinitely as a clean test case. Once a document has already received a number, reopening it will only show the assigned number and will not test the original creation moment. To verify triggers properly, create separate test orders: one for the invoice, one for the proforma, and one for the refund and credit note. It may seem slower, but it saves time during troubleshooting.
How to Verify the Setup After Configuration
The final verification should simulate a normal store day, not just a single click in preview. You need to confirm that the plugin works in four places: the order, the PDF, the email, and the archive. If you check only one layer, you may miss the problem. For example, the PDF may open in the admin panel while the email service strips the attachment. Or the document may work manually, but the automatic status does not trigger the right action. Or the customer may see the link but not have access because of the permission mode.
Checklist for the Test Launch
- A new order has been created that has never received PDF documents before.
- The document appears only at the status selected in the settings.
- The document number is assigned once and does not change when the document is reopened.
- The filename matches the selected filename format and does not include unnecessary system noise.
- The PDF shows the logo, addresses, products, taxes, shipping, totals, and extra fields without blank artifacts.
- The email contains the expected attachments, not the entire set of all available documents.
- The customer can download the document only under the access mode allowed by the store.
- Bulk export with the correct filters exports the right period and the correct document type.
- Cloud storage, if enabled, saves the file to the expected folder and does not duplicate it uncontrollably.
How to Roll Back a Questionable Setting Safely
If you start seeing extra document numbers after enabling automatic document creation, do not delete documents or change existing numbers without understanding the consequences. First, stop the automatic trigger: remove the document from the early Attach to email, disable automatic creation for the questionable status, or turn on Only existing document for bulk export. Then create a new test order and confirm that the number is no longer assigned at the unwanted moment.
If the issue appears to be template-related, switch to one of the default templates for testing. WP Overnight documentation explicitly recommends this when PDF preview breaks: a custom PDF template may contain an error that hides the document or breaks generation. Once confirmed, switch back to your own template and fix that specific template rather than blaming the entire plugin.
How to Maintain the Document Workflow After Launch
After a successful setup, the most common mistake is assuming the document workflow no longer needs attention. In practice, PDF documents are affected by changes in WooCommerce, your email service, payment methods, templates, multilingual configuration, server extensions, and the way your team works. As the store grows, you may add new statuses, new products, a different warehouse process, a new shipping country, or a new checkout field. All of that can affect what data appears in the invoice, packing slip, proforma, receipt, and credit note.
A small internal policy is worth having. It does not need to be complex. It is enough to define who changes document settings, who verifies numbering, who tests emails after updates, who is responsible for cloud storage, and who decides when new automatic statuses should be enabled. This is especially important if the admin panel is used by several roles: store owner, content manager, warehouse staff, accountant, and technical specialist.
What to Check After Updates
After updating WooCommerce, the base WP Overnight plugin, the Professional extension, your email service, or a checkout plugin, run a short smoke test. Create a new test order, open the invoice preview, send one email with an attachment, generate a packing slip, test one additional Professional document, and review the logs if anything looks different. You do not need to run every store workflow every time, but one clean order gives you a fast signal that the document system is still healthy.
If the store uses multilingual settings, check not only the admin preview language after updates, but also the customer's document. If you use a custom address format, test one order with the custom field filled in and another without it. If Keep PDF on server is enabled, make sure the team understands the difference between an archived document and a regenerated preview: an older document may remain unchanged even after the template is updated, and that is not always an error.
Who Should Change Numbering Settings
Settings such as next number, prefix, suffix, padding, and document number format are best left to one responsible person. This is not just a matter of interface aesthetics. Changing the next number can affect the document sequence, and moving the invoice to a different email trigger may cause numbers to be assigned earlier than accounting expects. If accounting asks for a format change, document the current format first, create a test order, and only then apply the change on the live site.
A good practice is to keep a short note next to the settings: which document type is used for what, which status creates it, who receives it, and which numbering series it uses. That way, months later, you do not have to investigate why the proforma follows one scheme, the receipt another, and the credit note appears only after a refund.
How Not to Break the Workflow with Customization
WP Overnight provides documented hooks, templates, custom styles, and placeholders, but that does not mean every change is safe. If the task can be solved through a Professional setting, start there. Address placeholders are safer than a PHP filter. The filename format in Professional settings is safer than a custom filename filter. A default template is safer for diagnostics than a complex custom template until you have confirmed the issue is not template-related.
Before adding code or a complex template, ask three questions: is there an official example, can the result be tested on a test order, and can the change be rolled back quickly? If the answer to any one of those is no, it is usually better to keep the change in the backlog and solve the issue with the built-in settings first. With PDF documents, even a small template mistake may show up as an unavailable preview, a blank document, or a failed attachment, so avoid changing everything at once.
How to Track Verification History
For a store with regular orders, it is useful to keep a simple verification table: date of change, what was changed, test order ID, which documents were opened, which email was sent, and where the archive or cloud copy is stored. We do not include specific dates inside the guide itself, but in day-to-day store operations this kind of history makes it much easier to identify when a problem started. If the logo disappears from the PDF today and a new image optimizer was enabled yesterday, troubleshooting takes minutes instead of hours.
This kind of log is especially useful in disputed bulk export cases. If someone disabled Only existing document and generated documents for a period, the verification history will show why that was done and which orders were included. Without that record, the team may try to "clean up" the numbers, which is often worse than the original mistake.
Security, Performance, and Support Tips
PDF documents often contain addresses, totals, email addresses, products, and tax data. That is why setup should focus not only on template appearance, but also on access, logs, attachments, and storage. Most problems do not require code. Usually it is enough to choose the correct access mode, keep email attachments under control, avoid leaving debug logging enabled permanently, and make sure your cloud folder is not public.
Access to PDF Links
The Logged in mode is usually safer because the document is visible only to an administrator with WooCommerce permissions or to the customer inside their account. The Full mode grants access to anyone who has the link. It should be used only when the risk is fully understood. For standard invoices, packing slips, and credit notes that contain personal data, public link access is often unnecessary.
Email Services and Attachment Size
WP Overnight documentation notes that MailPoet, SendGrid, and similar services may limit attachments by blocking them entirely, limiting the number of files, or capping file size. If an email arrives without the PDF, do not start by reinstalling the plugin. Check which WooCommerce email the document is attached to, enable a mail log during testing, and see whether the file appears in the attachments column or whether an error is logged.
Cache and Image Optimization
Cache is rarely needed for PDF generation, but caching plugins, CDNs, and image optimizers can affect logos and external files. If the logo is not rendering correctly, check the file format, temporarily disable CDN processing for the test, review the server requirements, and inspect the WooCommerce logs. If a WebP logo does not display, verify GD/WebP support or temporarily replace it with a PNG or JPG.
A Safe Address Snippet Without PHP
If you need to add a custom field to the address, start with document placeholders in the Professional setting instead of using a PHP filter. The VAT field example can be placed directly into the address customization field:
{{billing_company}}
{{billing_first_name}} {{billing_last_name}}
{{billing_address_1}}
{{billing_postcode}} {{billing_city}}
VAT: {{vat_number}}
The check is simple: an order with a VAT value shows the VAT line, and an order without it should not look broken. If an external checkout plugin stores the field under a different meta key, find the actual field in the order data or in that checkout plugin's documentation. Rolling back is also simple: save the old address format in your notes and restore it in the setting if the new block looks wrong.
Common Problems and Troubleshooting
Below are the issues most specific to WooCommerce PDF documents and WP Overnight Professional features: attachments, preview, numbering, logos, access permissions, credit notes, and bulk export. The best way to troubleshoot is by symptom, not by guessing that "the plugin is broken."
PDF Is Not Attached to the Email
Symptom: the document opens in the admin panel, but the customer receives the email without an attachment.
Possible causes: the document is attached to the wrong WooCommerce email, the wrong document type is selected, the email service limits attachments, or the email becomes too large because of static files.
What to check: open WooCommerce > PDF Invoices > Documents, select the relevant document, and review Attach to. Then send the email from the order and inspect the mail log. If you use MailPoet, SendGrid, or another service, verify its attachment limits.
How to fix it: choose the correct email trigger, temporarily disable unnecessary static files, reduce the logo size, or test with a different email delivery method. If the mail log shows the email being sent without attachments, the problem happens before delivery. If the attachment is present in the log but never reaches the customer, the issue is with the delivery service limits.
PDF Preview Is Unavailable
Symptom: the preview shows a message saying the document is not available for the order.
Possible causes: the document is disabled through Disable for, the document type is not enabled, the receipt requires an invoice, the credit note has no refund or original invoice, the custom template contains an error, or a code snippet is affecting output.
What to check: for the relevant document, open Documents and review Enable, Disable for, the order status, payment method, and country. For receipts, check Require Invoice. For credit notes, confirm that a refund exists and that the invoice has already been created.
How to fix it: enable the document, correct the Disable for restriction, create the missing invoice, issue a proper refund, or temporarily switch to the default template. If the preview works after switching to the default template, the problem is in the custom template.
Invoice Numbers Appear Too Early
Symptom: the order receives an invoice number before payment, completion, or actual document readiness.
Possible cause: the invoice is attached to an early email or created automatically at a status that fires too soon. The number may also have been created manually through the document button or a bulk action.
What to check: review the Attach to settings, automatic creation by status, and the order action history. Also check whether bulk export was run with Only existing document disabled.
How to fix it: move the invoice to a later status, use a proforma for the preliminary document, and do not create invoices for test or incomplete orders. Do not change numbers that have already been assigned without accounting review.
Credit Note Is Not Being Created
Symptom: the credit note document is enabled, but it does not appear in the order or in preview.
Possible causes: the order has no refund, the original invoice has not been created yet, the document is disabled for the current status, or the template conflicts with the current order data.
What to check: create a test refund in WooCommerce, make sure the invoice already exists, and then open the credit note preview again. Also verify that the document is not disabled through Disable for.
How to fix it: create the invoice first, then the refund, then the credit note. If the issue remains, switch to the default template and check the logs with the wpo-wcpdf or fatal-errors prefix.
Logo or Images Do Not Appear in the PDF
Symptom: the PDF is generated, but the logo is blank, distorted, or disappears only in certain formats.
Possible causes: an unsupported image format, a CDN rewriting the URL, an optimizer converting the file, missing GD/WebP/Imagick/GMagick support on the server, or an SVG that is too complex to render cleanly.
What to check: replace the logo with a simple JPG or PNG, review the server requirements, temporarily disable CDN processing for the test, and open the WooCommerce logs.
How to fix it: use a simpler image format, enable the missing server extension through your hosting provider, disable the conflicting conversion, or replace a complex SVG with a raster image. Move to a PHP snippet for remote SVG only if you understand the tradeoffs and have already ruled out the basic causes.
Bulk Export Created Documents You Did Not Intend to Generate
Symptom: after a bulk export, orders now have new document numbers.
Possible cause: the Only existing document option was unchecked during export, so the plugin created documents for matching orders for the first time.
What to check: the bulk export filters: document type, date type, period, statuses, and whether Only existing document was enabled. Review which orders were included in the selection.
How to fix it: keep Only existing document enabled for routine reporting exports. Disable it only when you intentionally want to generate documents for a period. Do not delete already assigned numbers without accounting approval.
The PDF Link Goes to a 404 Page or the Wrong Location
Symptom: the document may open in the admin panel, but the link from the email or customer account leads somewhere else.
Possible causes: pretty document links are enabled while WordPress permalinks are set to Plain; access permissions block viewing; a cache or redirect plugin interferes with the endpoint.
What to check: review Settings > Permalinks, the Pretty document links setting, and Document link access type. Try opening the link as an administrator, as a customer, and in a private browser window.
How to fix it: change the permalink structure from Plain to a standard human-readable structure, save permalinks again, and test logged-in access. Do not switch documents to public mode just to work around a 404 if the real issue is the rewrite rules.
FAQ for WooCommerce PDF Invoices & Packing Slips Professional
Do I need to install the base WP Overnight plugin before Professional?
Yes. Professional is an extension for PDF Invoices & Packing Slips for WooCommerce. The base plugin must be working first: invoices open correctly, packing slips generate, and the WooCommerce > PDF Invoices section is available. If base PDF generation is broken, Professional will not fix a server or email issue by itself.
When is the best time to create the invoice number?
In most stores, it is better to assign the invoice number not on the earliest email, but at the status that means the final document is ready. If the customer needs a preliminary PDF before the order is completed, use a proforma invoice. That way, you do not consume your final invoice sequence on orders that may later be canceled or never paid.
Why does the receipt not appear in preview?
The receipt has a Require Invoice setting. If it is enabled, the receipt will not be available until the corresponding invoice has been created for the order. Also confirm that the document type itself is enabled and that the order is not being excluded by Disable for.
Can I change the address format without editing PHP?
Yes. Professional provides Customer Address Customization with placeholders. Through that interface, you can add company details, billing fields, shipping fields, and custom order fields such as a VAT number. A PHP filter is only necessary for broader country-based WooCommerce address formatting changes, and that route is best left to experienced users.
What should I do if my email service blocks PDF attachments?
First, verify whether the attachment is being created before the email is sent. To do that, temporarily enable a mail log and check whether the file appears in the attachments list. If the attachment exists but the email arrives without it, review the delivery service limits: attachment count, file size, and attachment policy. Reduce static files, shrink the logo, and limit the number of documents attached to a single email.
Should I enable Keep PDF on server right away?
No, not if you are still refining the template. First verify the logo, addresses, numbering, emails, and languages. After that, enable archiving for the documents that should remain unchanged after issuance. Otherwise, you may end up archiving a draft PDF and then wonder why it does not reflect newer settings.
Can I make the PDF available to anyone who has the link?
Technically, the Full mode gives access to anyone with the link, but that is often risky for order documents. Invoices and credit notes contain personal and financial data. For most stores, the Logged in mode is safer because the document is visible only to the administrator or to a signed-in customer in their account.
Why did new document numbers appear after bulk export?
The most likely cause is that Only existing document was disabled. In that mode, bulk export can create documents for matching orders for the first time and assign numbers in the process. For reporting exports of documents that already exist, keep that option enabled.
When WooCommerce PDF Invoices & Packing Slips Professional Is the Right Choice
WooCommerce PDF Invoices & Packing Slips Professional is a strong fit when PDF documents in your store have already become part of the process rather than just a one-off button inside an order. Its strengths show up in additional document types, separate numbering logic, proforma before the final invoice, credit notes for returns, receipts that depend on invoices, address customization, bulk export, cloud storage, and multilingual PDFs. It is not the simplest route for a store with no document requirements, but it is a good option for a team that needs order and consistency.
Before going live, verify the environment, emails, permalinks, access permissions, one test order, one refund, and one bulk export. Do not enable automation more broadly than your team actually understands. Set up the core document workflow first, then add cloud storage, static files, and more complex language scenarios.
If the product fits your workflow after testing, you can move to the download block and download WooCommerce PDF Invoices & Packing Slips Professional for testing on a site copy or staging environment. The best results do not come from installation alone, but from careful configuration: the right invoice creation point, clear numbering, verified emails, and predictable document storage.


