
Export your WooCommerce orders to PostNL (www.postnl.nl) and print labels directly from the WooCommerce admin
| Author: | PostNL (profile at wordpress.org) |
| WordPress version required: | 6.7 |
| WordPress version tested: | 7.1 |
| Plugin version: | 5.9.11 |
| Added to WordPress repository: | 23-01-2018 |
| Last updated: | 17-02-2026 |
| Rating, %: | 52 |
| Rated by: | 41 |
| Plugin URI: | https://github.com/Progressus-io/postnl-for-w... |
| Total downloads: | 163 644 |
| Active installs: | 3 000+ |
![]() Click to start download |
|
With this extension, you can register shipments with PostNL and print the shipping labels with one push of a button. Moreover, your customers choose how they want to receive the order.
Online Manual (in Dutch): https://postnl.github.io/woocommerce/new-manual
Main features
- Submit shipments easily with PostNL, single orders or in a batch.
- Easily print shipping labels.
- Your customers can choose whether they want to receive the parcel at home or collect it from a PostNL point nearby.
- Use PostNL’s various shipping methods (mailbox parcel, insured shipping, etc.).
- Easily send your parcels to Belgium, Europe and the rest of the world.
- Follow orders via Track & Trace.
- Create multiple shipments for the same order.
- Modify the PostNL shipping options per order before exporting
- NEW! Free address validation for addresses in the Netherlands.
- NEW! Easily share the return label with your customers.
- NEW! Merchants based in Belgium can make use of this plug-in as well.
A PostNL API account is required for this plugin! Check out your API key in the Mijn PostNL business portal or contact your account manager.
Screenshots

Export or print PostNL label per order

Bulk export or print PostNL labels

Change the shipment options for an order

PostNL actions on the order overview page
Online Manual (in Dutch): [https://postnl.github.io/woocommerce/new-manual] (https://postnl.github.io/woocommerce/new-manual)
Follow these instructions (https://www.postnl.nl/Images/aanvragen-api-key-stappenkaart_tcm10-200445.pdf?version=2) to request an API key or to look it up.
5.9.11 (2026-08-31)
- Tweak: WordPress 7.1 and WooCommerce 11.1 compatibility.
5.9.10 (2026-07-23)
- Fix: Letterboxparcel 48-hour orders reverted to Standard Shipment when the label was generated with the bulk action on the classic orders list.
5.9.9 (2026-07-20)
- Fix: Order edit page showed “Standard Shipment” as the delivery type for Letterboxparcel orders instead of the selected 24-hour or 48-hour variant.
5.9.8 (2026-07-07)
- Add: Letterboxparcel 48 hours as a selectable option in the domestic default shipping option, the bulk Change Shipping Options action, and the Label & Tracking menu.
5.9.7 (2026-06-30)
- Remove: Removed the Shipment & Return return option, as PostNL is discontinuing it on 1 July 2026.
5.9.6 (2026-06-24)
- Add: Letterbox Parcel now offers 24-hour and 48-hour delivery variants at checkout, selectable by the customer or assigned automatically.
- Add: New “Default automatic letterboxparcel product” setting to choose the default letterbox variant (24 or 48 hours) for automatic assignment.
- Add: New “Letterbox fee” setting that overrides the shipping cost when all items are eligible for letterbox delivery, plus an extra fee field for the 24-hour variant.
- Tweak: Checkout tab labels now show the full shipping cost (carrier + delivery-day/pickup fee) instead of only the additional fee.
- Tweak: Improve tax handling so tab prices accurately reflect tax-inclusive and tax-exclusive display settings.
- Tweak: Note in the Standard return option that the Shipment & Return label will be discontinued on July 1.
- Fix: Hide delivery-day, morning and evening surcharges when free shipping applies, including PostNL’s minimum-order-amount threshold.
- Fix: Prevent duplicate PostNL delivery options container from appearing during blocks checkout fragment updates.
- Fix: House number disappearing from blocks checkout when “Use PostNL address-field” and “Validate Dutch addresses” are both disabled.
- Fix: “Invullen met PostNL” now correctly sets the country to Belgium instead of Netherlands for Belgian PostNL accounts.
- Fix: “Invullen met PostNL” no longer fills the checkout with a previously used PostNL account’s address after switching accounts or an incomplete login.
- Fix: Update Dutch translations.
5.9.5 (2026-04-21)
- Add: Ability to set the default checkout tab (Delivery or Pickup) from the PostNL checkout settings.
- Fix: Update translations.
- Fix: ZPL file format setting ignored for domestic letterbox.
- Fix: Error when trying to create multicollo insured shipments.
5.9.4 (2026-02-06)
- Fix: Missing styles from the cart page.
- Tweak: WooCommerce 10.5 compatibility.
5.9.3 (2026-02-05)
- Fix: House number stripped from address when “Use PostNL address-field” is disabled in blocks checkout.
- Fix: Changed barcode type for international registered packets from RI to LA.
- Fix: Ensure ID Check products always trigger correctly when Signature on Delivery is selected.
- Add: Ability to select Id check with insured shipping for pickup options.
- Tweak: Change “Global Pack” name to “Parcels non-EU”.
5.9.2 (2026-02-03)
- Fix: Load plugin assets only on cart and checkout pages where they’re needed to improve performance.
- Fix: Delivery options menu not loading after switching between countries with different delivery support.
- Fix: Delivery Days/Pickup Point fees persisting when changing to a destination that does not support them.
5.9.1 (2025-12-18)
- Fix: Delivery options display prices including/excluding tax based on WooCommerce tax settings.
- Fix: Removed default empty merchant customs code fields to prevent validation errors when saving settings without adding codes.
- Fix: Load the PostNl shipping method fields data correctly.
5.9.0 (2025-12-09)
- Add: Ability for marking products as 18+ and automatically apply ID Check to orders containing them.
- Add: Validation and TrustedShipperID support for merchant customs codes in the non-EU shipping settings.
- Add: “Delivery code at door” shipping option.
- Fix: PostNL delivery options block duplicated in the mobile checkout order summary.
- Fix: delivery-day date format to follow the WordPress General Settings configuration.
- Fix: the HS Tariff Code field not saving for product variations.
- Fix: letterbox logic for variable products.
- Tweak: WordPress 6.9 and WooCommerce 10.4 compatibility.
5.8.1 (2025-09-16)
- Add: New email settings field for shipping confirmation.
- Fix: Allow admin to dismiss the survey/reward notice.
- Fix: Style conflict with other frameworks.
5.8.0 (2025-09-08)
- Add: Fill In With / Invullen met PostNL.
- Add: ContactType 02 for digital proof of shipping.
- Add: Allow different fees for home / pick-up delivery.
- Fix: Label & Tracking menu fixed for NL>BE shipments.
- Fix: Delivery menu loading while addresschecker is disabled.
- Fix: WC Rest API issue.
- Fix: PHP waring
Function _load_textdomain_just_in_time was called incorrectly. - Tweak: WooCommerce 10.2 compatibility.
5.7.3 (2025-05-06)
- Tweak: Use
plugins_loadedhook to add the shipping method for Flexible shipping and Polylang plugins compatibility.
5.7.2 (2025-04-29)
- Fix: Single label now printed according to the selected start position.
- Fix: Checkout not working properly with PostNL Address Fields disabled.
- Fix: Cut Off time default value to prevent “Wrong format for cut off time!” checkout error for new installations.
5.7.1 (2025-03-19)
- Fix: Fatal error when editing pages with certain themes.
- Fix: Required house number for non-NL destinations in blocks checkout.
5.7.0 (2025-03-17)
- Add: Cart/Checkout blocks compatibility.
- Fix: Improved error messages for Shipping & Return label activation.
- Fix: Postcode and city fields were incorrectly applied to both Freepost and home addresses in Smart Return shipments.
- Fix: Adjusted shipping classification for the Canary Islands to use the correct product code and country code.
- Fix: Ensure home delivery option is always visible at checkout, even if Delivery Days are disabled.
- Fix: Labels now always include a delivery date, even for “as soon as possible” orders.
- Fix: Merging EU Parcel product labels into a single A4 sheet with four A6 labels per page.
- Add: postnl_shipment_addresses filter to allow third parties to modify shipping addresses and improve compatibility.
- Tweak: WooCommerce 9.7 compatibility.
5.6.4 (2025-02-04)
- Fix: Add Standard Shipping to Default Shipping Pickup options.
5.6.3 (2025-01-06)
- Tweak: WordPress 6.7 and WooCommerce 9.5 compatibility.
- Add: ID check as a shipping option for pick-up point deliveries.
- Add: “ID Check + Insured Shipping” option for domestic orders.
- Fix: Enabled performing the same bulk action for generating combined PDF labels multiple times.
- Fix: Removed 6-character limit for Shipping Postcode to support longer postcodes like in Portugal and Brazil.
- Fix: Corrected order item values on commercial invoices to show the actual paid amount excluding tax.
5.6.2 (2024-09-24)
- Fix: Ensured that when the return option is set to “None,” no return labels are generated for orders.
5.6.1 (2024-09-18)
- Fix: Preventing bulk label downloads when label format is set to A6.
5.6.0 (2024-09-17)
- Add: Shipment & Return labels feature, allowing customers to use a single label for both shipping and returning parcels.
- Add: New “Printer Types” setting with support for PDF, GIF, JPG, and ZPL.
- Add: “Return to Home Address” option to the Return Settings.
- Add: Smart Return feature allowing merchants to generate and email return barcodes for printer-less returns at PostNL locations.
- Fix: Ability to merge Portrait and Landscape A6 labels into A4 PDF file.
- Add: Display the selected Pickup-Point in the confirmation email to clarify the chosen delivery option.
- Fix: PHP warnings.
5.5.0 (2024-08-27)
- Add: Compatibility with the new WooCommerce Product Editor.
- Fix: HPOS declaration path.
- Fix: Item Value is fed by price after discount.
- Fix: Chosen delivery options jumps back to Evening Delivery.
- Fix: Update PostNL corporate identity.
- Fix: Automatic letterbox doesn’t work in combination with digital product.
- Fix: Multiple return labels are printed when try to print the label for an order with existed label using bulk actions.
5.4.2 (2024-07-03)
- Fix: Error “Invalid nonce” when trying to delete labels.
- Fix: Orders list fatal error if order have deleted product.
5.4.1 (2024-06-11)
- Fix: Display shipping options within the order list for legacy orders storage.
5.4.0 (2024-06-10)
- Add: Assign Letterbox Parcels automatically based on purchased products.
- Add: Ability to assign default shipping product options for every shipping zone, per settings and bulk actions.
- Fix: Checkout delivery options display on the Checkout page for Belgium merchants.
- Added and fixed Dutch translations.
5.3.6 (2024-04-24)
- Fix: Correct CustomerCode in non-EU calls, in Shipping call.
5.3.5 (2024-04-22)
- Fix: Correct CustomerCode in non-EU calls.
5.3.4 (2024-01-30)
- Added: Logic to apply default shipping options when not explicitly set in post data.
5.3.3 (2024-01-30)
- Updated: Function to check insurance amount limits for EU and non-EU shipments.
- Updated: Currency utility to include all WooCommerce currencies.
5.3.2 (2023-12-20)
- Fix: Bulk action does not work in HPOS.
5.3.1 (2023-11-21)
- Fix: Change store address error text.
- Add: Made the delivery date sortable by date.
- Added Dutch translations in the PostNL settings screen in WooCommerce shipping settings.
5.3.0 (2023-10-03)
- Add: New product codes for shipping from Belgium to Netherlands.
- Add: Decide start position when printing label is set to A4.
- Add: Automatically change status to Completed once an order has been pre-alerted and printed.
- Fix: Check Insurance amount limit.
- Fix: Update Netherlands translation.
5.2.5 (2023-07-31)
- Fix multi-collo barcodes call.
5.2.4 (2023-07-25)
- Fix bug in Bulk actions menu.
- Add weight limit for Mailbox.
5.2.3 (2023-07-03)
- Create column for Delivery Date on the order overview page.
- Add Company name instead of the shop name on shipping label.
- Translate street name field placeholder.
- Fix: Delete barcode and tracking number of order when the label is deleted.
- Fix: Choosing insurance + signature on delivery results in uninsured parcel.
- Fix: PHP warnings.
5.2.2 (2023-05-30)
- Add new shipping product for international shipments.
5.2.1 (2023-05-23)
- Fix: PostNL supported shipping methods in checkout.
- Fix: Ampersands in shop name not copied over to label correctly.
- Fix: Undefined array key warning.
5.2.0 (2023-05-02)
- Feature: Add capability to associate shipping methods with PostNL method
- Feature: Add Label printing icons from the order overview
- Feature: Add shipping options by default to all orders
- Fix: Fatal error when trying to create label for order with deleted Product
- Fix: Checkout shipping address validation
- Fix: House number not copied over to invoice address
- Fix: Missing T&T info on order details page when email settings is disabled
- Fix: Delivery Date & Transit Time
5.1.4 (2023-03-21)
- Fix merged labels on bulk operation
5.1.3 (2023-03-16)
- Fix : Pick-up points not being shown in checkout page
5.1.2 (2023-02-20)
- Allow all GlobalPack barcode types usage
5.1.1 (2023-02-13)
- Fix shipping cost calculation for shipping classes
5.1.0 (2023-02-06)
- Support shipping from BE
- Add morning delivery option
- Add ID check shipping option
- Fix : Make dropoff points optional
- Fix WooCommerce HPOS compatibility
- Fix track and trace URL
- Print company name on the label
5.0.0 (2023-02-06)
- MAJOR RELEASE
- Reconfigure the plug-in.
See changelog for all versions.
