Stay up to date with the latest improvements and updates to YoPrint
Changelog
Stay up to date with the latest improvements and updates to YoPrint
February 2026
Improved
Customer Portal SSL Certificate Issue Resolved
Some customers using YoPrint's free customer portal domains (*.yoprintmerch.com) may have experienced SSL certificate errors when accessing their portals. This was caused by an SSL certificate that expired due to an auto-renewal process that did not trigger as expected.
Impact:
Customers visiting affected portal URLs may have seen browser security warnings (e.g., "Your connection is not private" or similar messages)
Some browsers may have blocked access to the portal entirely
Important Note:
If you encountered a security warning, this was simply the browser's standard response to an expired certificate. Your data remained safe and no action is needed on your end.
Resolution:
The SSL certificate has been renewed and the issue is now fully resolved. All customer portals are accessible again with valid SSL certificates.
Preventive Measures:
We are reviewing our certificate renewal monitoring to prevent similar issues in the future.
Improved
Fixed
Admin Portal: More Reliable Live Updates
Fixed
Purchase Orders: Fee Items Now Group Correctly on PDFs
Fixed
Purchase Orders: Fixed Tax Settings Not Saving When Editing
Fixed
Admin Portal: Fixed Login Callback Loop
Fixed
Purchase Orders: Fixed Completion Blocked by Fee Line Items
Improved
Fixed
Compact Sales Order PDF: Fixed Shipment Subtotals and Added "Items Not Yet Shipped" Section
Fixed
Integrations: Fixed Deleted Contacts Appearing in Customer Webhooks
Fixed
Purchase Orders: Fixed PO Number Duplication When Creating Multiple POs
Improved the reliability of real-time updates in the Admin Portal, reducing cases where changes didn’t appear immediately after you created or updated items.
Fixed an issue where fee line items with different names could be grouped together on purchase order documents. Fee items are now grouped by their name so totals and line breakdowns are clearer.
Fixed an issue where tax settings (tax mode and tax rate) were not being saved when editing a purchase order. The tax settings now correctly persist when you update a PO.
Fixed an issue where the login callback page could enter an infinite loading loop, preventing users from completing sign-in. The authentication flow now completes reliably on the first attempt.
Fixed an issue where a purchase order could not be marked as completed -- either manually or automatically after receiving stock -- if it contained fee line items (e.g., shipping fees). Because fee items are not receivable, they were incorrectly counted as pending, preventing the PO from completing even when all product items had been fully received.
Fixed an issue in the compact sales order PDF where line items split across multiple shipments displayed the full order item cost instead of the proportional cost for each shipment's quantity. Each shipment now correctly shows the subtotal based on its own shipped quantity.
Additionally, the compact PDF now includes:
An "Items Not Yet Shipped" section that lists order items not yet fully allocated to shipments, with remaining quantities
A separate Order Fees row in the totals summary when the order includes fee items
Correct totals display for quotes and non-invoiced orders (previously always showed invoiced totals)
Proper line item rendering for orders that have no shipments yet
Fixed an issue where deleted contacts were still included in customer webhook payloads sent to external integrations (e.g., QuickBooks, Xero). Webhook data now correctly excludes deleted contacts, ensuring third-party systems only receive active contact information.
Fixed an issue where creating multiple purchase orders in quick succession could result in duplicate PO numbers. The system now fetches a fresh PO number at the moment of submission if the user hasn't manually customized it, preventing number conflicts when the create dialog has been open for an extended period.
Real-time pricing and inventory data for Augusta Sportswear Canada products (via Momentec Canada) has been re-enabled. The supplier's API issue that was returning USD prices instead of CAD has been resolved. You can now see live pricing and inventory when browsing Augusta Canada catalog products in quotes and purchase orders.
The "Remove Vendor" button in the vendor detail dialog is now hidden for users who do not have permission to delete vendors. Previously, the button was visible to all users but would fail with an error when clicked by unauthorized users.
Fixed an issue where uploading a new company logo or customer portal background image in Settings would appear to succeed, but the page continued displaying the previous image until a manual refresh. The upload spinner now waits until the new image is fully loaded before dismissing, so you see your updated logo or background immediately.
Fixed pricing recalculation crash when pricing group is missing or order is deleted
Fixed webhook dispatch failing when contact has no primary contact
Fixed geocode lookups crashing on null results
Fixed comment activity notifications with special characters (UTF-8)
Fixed pending approval reminder emails failing to send
Fixed global search crashing on empty search terms
Fixed billing-related emails failing to serialize
Vendor delete/restore actions now properly permission-checked
Report exports now require view_report permission
WebSocket report failure notifications now include report type and status
Fixed non-inventory receipt item transforms
Hardened realtime cache restores
Removed the blocking dialogs that prevented users from proceeding with needs ordering, stock adjustments, and stock transfers when inventory was negative. You can now complete these workflows without being blocked by negative stock levels.
Creating a purchase order from sales orders now follows a guided setup flow. When you create a PO from one or more sales orders, the page walks you through warehouse verification, data loading with per-order progress tracking, and configuration options (mark needs ordering, include customer-supplied items, quantity source) before building the item list. The new flow handles large orders more reliably by processing data in the background and provides clear status for each sales order as it loads, including the ability to retry failed orders or continue without them.
Step-by-step setup panel replaces the previous dialog-based configuration
Per-order loading progress with retry capability for individual failed orders
Background computation for large datasets avoids page freezes
Multi-color product swatches now display as color wheel icons when products have multiple colors
Fixed an issue where real-time inventory data retrieved from cache could cause an error, requiring a fresh fetch from the supplier API. Cached inventory data now loads correctly on subsequent requests.
Fixed an issue where invoice exports and pricing calculations could fail if a job linked to an order item was deleted. The system now handles missing jobs gracefully using fallback values.
Custom PDF templates now handle syntax errors more gracefully. Instead of failing the entire document, the system normalizes common template syntax issues and provides clear error markers in the output so you can identify and fix problems in your templates without losing the rest of the document.
Fixed an issue where exporting PDFs for orders, jobs, or shipments could fail with an error when certain line items had missing or zero values (such as deleted products or empty quantities). Documents now generate successfully even when some data is incomplete.
Search results now better handle apostrophes and special characters in names (e.g., searching "ONeill" now correctly matches "O'Neill"), and results are ranked more consistently — exact matches appear first, followed by prefix matches, then partial matches. Product search now uses a unified relevance model across both your own products and supplier catalog items.
Global search now uses fulltext indexing for faster, more accurate results across orders, invoices, quotes, jobs, shipments, vendors, and purchase orders