*** Pircel for WooCommerce Changelog ***

2025-02-06 - version 1.0.0
* Initial release

2025-02-20 - version 1.0.1
* Added support for capturing multiple address lines during checkout (now saving both address_1 and address_2)
* Fixed a bug affecting multiline fields in product description, product title, and customer/buyer notes.

2025-03-12 - version 1.0.2
* Fixed hook triggering (checkout update) so shipments are created even when name fields change.
* Ensured guest checkout now persists first and last name.

2025-04-23 - version 1.0.3
* Fixed singular day delivery estimate rendering
* Added loading state to the shipping options section during checkout

2025-06-25 - version 1.1.0
* Fixed Pircel's WC method to properly handle multiple rates and services
* Added a new tool "Product Data Checker" to check if products have dimensions and/or weight set
* Added the ability to map third-party plugin methods to Pircel's delivery methods
* Added Greek translation
* Fixed product title and description sanitization
* Fixed a bug that lead to some orders not having the latest data on our backend

2025-06-26 - version 1.1.1
* Fixed WooCommerce shipping method rate ID generation
* Fixed VAT handling for shipping rates based on WooCommerce tax settings

2025-07-02 - version 1.1.2
* Added a new feature that connects the store's WooCommerce API with our backend system

2025-07-21 - version 1.1.3
* Updated integration with Pircel backend for improved delivery company handling and performance

2025-07-24 - version 1.1.4
* Fixed checkout display for delivery companies to show proper names instead of array values
* Updated terminology in settings and translations for better clarity
* Fixed a bug that would prevent the API url and key from being changed together in some cases
* Fixed a race condition that would result in duplicate shipments in our system

2025-08-11 - version 1.1.5
* Fixed plugin directory path determination to use the correct WordPress methods and constants for better compatibility
* Updated direct file access protection to comply with WordPress plugin directory requirements
* Updated translation loading to use WordPress 4.6+ loading via WordPress.org’s translation platform while maintaining independent distribution compatibility

2025-09-22 - version 1.1.6
* Fixed a bug that would incorrectly request shipping rates without VAT for some stores

2025-09-25 - version 1.1.7
* Fixed a bug that caused Pircel's custom shipping section to not be displayed in some cases

2025-09-30 - version 1.1.8
* Preparation for our tracking service and features
* Minor changes and fixes

2025-10-13 - version 1.1.9
* Fixed a bug that would apply the price multiplier to the COD surcharge

2025-10-16 - version 1.1.10
* Fixed third-party shipping plugin rates to include accurate cost breakdown with VAT and surcharges

2025-10-23 - version 1.1.11
* Updated plugin's API integration to support multi-parcel structure

2025-11-03 - version 1.1.12
* Fixed critical bug that could cause API credentials to be lost when settings were modified
* Improved settings data preservation to prevent loss during partial form submissions
* Enhanced data sanitization for all settings callbacks with proper validation

2025-11-06 - version 1.1.13
* Fixed shipping method being removed from WooCommerce zones when plugin settings were saved
* Improved plugin activation to properly register shipping method with WooCommerce

2025-11-26 - version 1.1.14
* Fixed an issue where the postcode field was mandatory in frontend validation, blocking checkout for countries without postal codes

2026-01-29 - version 1.1.15
* Fixed COD surcharge being incorrectly included in base shipping rate cost calculation
* Improved third-party shipping method integration with accurate price component handling
* Added monitoring for shipping rate display issues to improve debugging

2026-04-14 - version 1.1.16
* Added support for free shipping across both the standard WooCommerce shipping method and Pircel's custom shipping section
* Fixed WooCommerce REST API key permissions and added a one-time key rotation for existing stores
* Integrated store disconnection with Pircel's backend on settings reset via the "Reset Connection" button and plugin uninstall
* Improved cart fees and shipping rate handling to preserve selections across package updates

2026-06-16 - version 1.1.17
* Added support for the eshop's checkout rate settings: shipping options now follow the configured sort order (cheapest, most expensive, or fastest) and pre-select the configured default rate, across both the standard WooCommerce shipping list and Pircel's custom shipping section
* Preserved the shopper's manually selected rate across cart and address updates so it is never overridden by the default

2026-06-19 - version 1.2.0
* Live shipping rates now appear in express checkout (Apple Pay, Google Pay, PayPal) and the WooCommerce Blocks / Store API checkout, calculated from the customer's address as they shop
* Added a safety net that places a paid order on hold for review when it needs shipping but no shipping method was selected, preventing orders that would ship at the store's expense
* The carrier and service the customer selects, including through express wallets, is now reliably recorded on the order at payment
* Expanded payment-method detection so the correct method (cards, wallets, PayPal, Klarna, cash on delivery, and more) is saved on each shipment
* Fixed a checkout error caused by PayPal sending a non-standard region value for some countries
* Improved reliability of shipment creation under concurrent requests and temporary backend issues

2026-06-23 - version 1.3.0
* Added automatic recovery for orders that don't sync to Pircel: an unfinalized shipment is retried automatically, and a shipment missing from Pircel's backend is recreated and re-synced, with a manual "Sync shipment" option on the order screen
* Added monitoring that detects orders left without a finalized shipment
* The selected shipping rate now appears first and is correctly pre-selected in express checkout wallets such as Apple Pay and Google Pay, with the remaining rates ordered consistently across checkout
* Fixed an issue where a canceled order's shipment could be incorrectly linked to a later order
* Orders now record how they were placed (classic, Blocks, or express checkout) to improve delivery insights

2026-06-24 - version 1.3.1
* Fixed a fatal error that could occur after updating to 1.3.0, caused by required plugin files missing from the released package

2026-06-30 - version 1.4.0
* Every order that needs shipping now reliably gets a Pircel shipment, including orders placed through server-side payment gateways and certain express-wallet setups that could previously be missed
* Added support for shipping with carriers Pircel can't match to a known service and for store pickup: these now book correctly under the shipping method's own name instead of being left unbooked
* The automatic recovery system now also finds orders that need shipping but never created a shipment and creates them automatically, alongside retrying unfinalized shipments and recreating ones missing from Pircel's backend
* Added a "Pircel diagnostics" panel on the order screen with one-click copy, and included the same details in stuck-shipment alert emails, so issues can be investigated without extra back-and-forth
* The shipping rate a customer selects now stays in sync on the shipment through to booking, including for store pickup and carriers Pircel can't match to a known service
* Improved the reliability of shipment finalization and its automatic retries, with clearer status messages and correct handling of legacy local pickup

2026-07-06 - version 1.4.1
* Fixed an issue where finalizing an order could record outdated products on the booked shipment or create a duplicate shipment on Pircel's backend; the shipment is now built directly from the order's own items
* Orders whose shipment was already finalized on Pircel's backend under a different reference are now detected and reconciled automatically, instead of being repeatedly reported as stuck
* Orders placed before the store was connected to Pircel are no longer reported as stuck
* Reduced duplicate stuck-shipment reports from the hourly check for orders left without a finalized shipment
* Fixed a rare fatal error in some error-logging paths

2026-07-16 - version 1.5.0
* Carrier tracking numbers and voucher codes are now saved on the order automatically, with an order note, once the shipping label is created in Pircel
* Shipping rates no longer disappear at checkout after a failed payment attempt. Retrying the payment keeps the customer's rates and selection
* Changing the delivery country during checkout now always quotes the new destination fresh, instead of reusing rates priced for the previous country
* If the selected rate is no longer purchasable at booking time, another service from the same carrier is selected automatically at the price the customer was charged; shipping methods mapped to a carrier and priced by the store now book reliably at their charged price
* A shipment wrongly linked to a different order is now detected at booking and replaced automatically, instead of failing repeatedly or booking the wrong content
* A booking interrupted at the wrong moment is no longer booked twice, the completed shipment is detected and adopted on the retry
* If an order's delivery address no longer matches the destination its shipment was quoted for, booking now creates a fresh shipment for the order's own address
* Paid orders that book with 0-cost shipping on a real carrier rate, without free shipping applying, are now flagged for review with an order note and an alert
* The order diagnostics panel now also detects product and totals mismatches between the order and its shipment
* The hourly recovery check now heals orders that never created a shipment even when no other order needs attention
* Shipping options from the same carrier now show their service name (for example "UPS - Express"), so rates that previously looked identical are easy to tell apart

2026-08-19 - version 1.6.0
* Digital, downloadable and other non-shippable products are no longer quoted, boxed or charged for delivery; an order mixing them with physical items is now priced on the physical items alone
* Product categories are now sent to Pircel, so carrier rules that exclude particular categories apply to WooCommerce stores for the first time
* Customs codes (HS/tariff numbers) recorded by common shipping plugins are now declared to FedEx and UPS on international shipments, instead of the shipment going out unclassified
* A product's country of origin, where a shipping plugin records one, is now declared to the carrier on international shipments
* Connecting a store that is not served over HTTPS is now refused with an explanation, instead of appearing to succeed and then silently failing every request afterwards
* Stores running WordPress in a language other than English now state the delivery country as its ISO code, so an address changed to another country is recognised as such
* The order diagnostics panel now lists the carriers that could not price a destination, and the reason each gave
* Orders are now re-sent to Pircel on the tax basis they were placed under, so changing the store's tax settings no longer restates the amounts of orders priced under the old ones
* Stores that never saved their Pircel size settings are now quoted from each product's own dimensions, instead of a box the merchant never configured

2026-08-26 - version 1.6.1
* Fixed a fault that removed the Place Order section from checkout on stores using Pircel's own shipping options, leaving customers unable to complete their purchase
* A cart holding only digital or other non-shippable products no longer shows a Shipping Options section
* Orders for digital, virtual and other non-shippable products can be placed again on stores using Pircel's own shipping options, instead of failing with "Security verification failed"
* Deleting the plugin now disconnects the store from Pircel and revokes its WooCommerce API key, instead of stopping before either happened
* A store connection Pircel cannot complete now explains what to fix — an unreachable REST API, a rejected key, missing permissions — instead of showing an error code
* A failed connection attempt no longer leaves the WooCommerce API key it created behind on the store

2026-08-31 - version 1.6.2
* Shipping rates for international destinations are charged at the price quoted again, instead of showing 0,00 and billing the customer nothing for delivery
* A shipping option Pircel cannot price is no longer offered at checkout, so an order can never complete with delivery charged as free
* Shipping prices shown beside a rate now match what the order is charged, on destinations whose tax differs from the customer's last known address, and on stores whose tax rules are set per region rather than per country
* Pircel's own shipping options no longer overwrite the price of other shipping methods, including free local pickup, in the block-based checkout
* Express checkout (Apple Pay, Google Pay, PayPal) now charges for delivery — it was offering a 0,00 shipping option on every destination, including domestic ones, and those orders completed with no delivery charge at all
* Express checkout is no longer told that an order needs no delivery address, so it asks the customer for one and can price the shipment
* Order emails, invoices and the admin order screen now show the delivery price on the shipping line, instead of a carrier name beside a second line also called "Shipping"
* Orders placed with free shipping now record the delivery method on the order, instead of leaving the shipping line off it entirely
* Reports Pircel sends itself about a carrier it cannot price no longer carry any information about the customer who was at checkout when it happened
* Orders that completed without charging for delivery are now flagged on the order and in the diagnostics panel, whichever shipping mode the store uses
* Stores are now warned in the WordPress admin when Pircel cannot price a carrier's rates, naming the carrier and the destinations affected, so options are never hidden from customers without the store knowing
* Checkout no longer reports a display fault to Pircel when a shipping option was deliberately not offered
