Changelog
Stay up to date with the latest improvements and updates to YoPrint
February 2026
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.
Purchase Orders: Fee Items Now Group Correctly on PDFs
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.
Admin Portal: Fixed Login Callback Loop
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.
Purchase Orders: Fixed Completion Blocked by Fee Line Items
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.
Compact Sales Order PDF: Fixed Shipment Subtotals and Added "Items Not Yet Shipped" Section
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
Integrations: Fixed Deleted Contacts Appearing in Customer Webhooks
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.
Purchase Orders: Fixed PO Number Duplication When Creating Multiple POs
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.
Augusta/Momentec Canada: Real-Time Pricing Re-Enabled
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.
Vendors: Remove Button Now Respects Permissions
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.
Settings: Fixed Company Logo and Portal Background Showing Old Image After Upload
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.
Production Stability Fixes
- 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_reportpermission - WebSocket report failure notifications now include report type and status
- Fixed non-inventory receipt item transforms
- Hardened realtime cache restores
Purchase Orders: Redesigned Create Page with Step-by-Step Setup Flow
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
Inventory: Removed Negative Stock Prevention Dialogs
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.
Search: Improved Accuracy and Relevance Across All Search Types
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
- Customer search handles apostrophe variations automatically
- Product search relevance tiers are now consistent between custom products and catalog items
- Quotes are now included in global search results
PDF Exports: Fixed Errors When Generating Documents with Missing Data
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.
Catalog Integrations: Fixed Inventory Data Loading from Cache
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.
Reports & Exports: Fixed Errors When Jobs Are Missing from Line Items
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.
PDF Templates: Improved Error Handling for Custom Templates
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.
Purchase Orders: Custom PO Numbers Now Editable
You can now edit the purchase order number (PO #) after a purchase order has been created. Previously, custom PO numbers could only be set during creation.
Augusta/Momentec Canada: Temporarily Disabled Real-Time Pricing
Temporarily disabled real-time pricing for Augusta Sportswear Canada products. The supplier's Canadian API was returning prices in USD instead of CAD, which could lead to incorrect pricing on purchase orders and quotes. Local pricing from catalog imports continues to work correctly. The minimum file size threshold for Augusta Canada catalog imports has also been lowered to accommodate smaller data files.
Stay updated on new features
Join our mailing list to get notified when we release new features and improvements. We only send updates that matter to your print shop.