Changelog

Stay up to date with the latest improvements and updates to YoPrint

March 2026

Analytics: Invoice and Tax Exports Now Match Your Visible Columns

Improved
Fixed

Invoice and tax exports now use the same visible columns you have set in the grid, so you can export exactly what you’re looking at without extra fields.

Purchase Orders: Note Editing Now Respects Permissions

Improved
Fixed

Purchase order notes can no longer be edited by users without purchase-order edit access. The note editor and Save action are now hidden/disabled to prevent accidental changes.

Addresses: Improved Address Selection for Shipping and Billing

Improved

Address selection fields (including shipping and billing) were updated to be easier to use and less error-prone when choosing or entering addresses. You can now search for the address from the dropdown using the new auto complete feature. You can also edit the address from the selection field

Orders: More Reliable Bulk Edit Pricing Inputs

Improved
Fixed

Fixed an issue where the Bulk Edit Pricing dialog could behave unpredictably while entering margin/markup and totals (for example, values clearing unexpectedly or recalculations happening at the wrong time). This makes it easier to enter pricing adjustments confidently across multiple line items.

Orders: Duplicating Products and Changing Now Re-fetches pricing

Fixed

Fixed an issue where changing a product line to a different product could unintentionally set the cost 0. We now re-fetch the pricing aggressively when changing duplicated line items.

Orders & Jobs: Status Changes Now Show Up Reliably in Activity History

Fixed

Fixed an issue where order and job status changes weren’t consistently recorded in the Activity history. Status updates should now generate the expected history entries so teams can track progress with more confidence.

Purchase Orders: More Reliable Inventory Incoming After Deleting a PO

Fixed

Fixed an issue where deleting a purchase order could leave incorrect "incoming" inventory counts when the PO had no receipts. Incoming counts now recalculate correctly so inventory stays accurate.

February 2026

Customer Portal SSL Certificate Issue Resolved

Improved

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.

Admin Portal: More Reliable Live Updates

Improved
Fixed

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.

Purchase Orders: Fee Items Now Group Correctly on PDFs

Fixed

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.

Purchase Orders: Fixed Tax Settings Not Saving When Editing

Fixed

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.

Admin Portal: Fixed Login Callback Loop

Fixed

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

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

Improved
Fixed

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

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

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

Improved

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.

Production Stability Fixes

Fixed
  • 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

Vendors: Remove Button Now Respects Permissions

Improved

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

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.

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.

We respect your privacy. Unsubscribe at any time.