V2 Knowns Bugs, Workaround and Fix Status. Click Here to See!

YoPrint V2 is Now Live!

Jan 5, 2025

Hey there! This is Anbin - the guy who does mass quantities of code at YoPrint with the help of his fellow teammates. I am incredibly happy to announce the launch of V2! I know we've been working on this for more than a year at this point, and thank you for your patience and for giving us the opportunity to work on this. We will be working around the clock for the next few weeks, squashing any bugs that pop up and fixing any usability issues. Please bear with us as we make this transition. It's going to be worth your time!

Motivation for V2

After 6+ years since our initial release, we reached a point where releasing impactful features became increasingly challenging due to some of the design decisions made early on. With V2, we’re addressing those past mistakes and paving the way for a more robust and expandable system.

Our focus with V2 is simple: Flexible and Deterministic. We’re putting you in control, equipping you with the tools you need to make informed decisions. We’ve re-architected YoPrint to deliver more predictable behavior while eliminating clusters of race conditions. However, this means some features you’ve grown accustomed to might look or feel different, and we sincerely apologize for any inconvenience. That said, we promise to wow you with impactful new features in 2025 to make up for it!

Now, without further ado, here’s everything that’s new in V2.

A Minimal Sales Order

In V1, to create a quote or sales order, you will need to key in the customer details, the job information, the line items, and for some inexplicable reason a shipment where you would also key in the tax and discount information. Shipment was so important, that we warned you twice when you tried to publish an order.

With V2, you just need the customer details, the job information and line items only. You can publish the sales order at this time, and continue working on it after.

An Intuitive Shipment

Shipment was mandatory in V1, and every line item must be packed into a shipment, even if the line item is a fee.

With V2, you can choose to have orders without any shipments or only pack a handful of line items into a shipment. If you still want to pack fees into shipments, we are not going to stop you. Going back to our motivation, you will have all the tools you need to make an informed decision. Oh, and yes - you can still have multiple shipments per order.

Separating Invoice from Shipments

In V1, we automatically managed your invoice for you by intelligently creating it based on the information you keyed in - drum roll - the shipment! This is why every item needs to be packed, and this is why we collect tax information in the shipment. Let me list the number of issues this design decision alone caused:

  1. YoPrint creates multiple invoices when you only wanted one because you had multiple shipments
  2. YoPrint only created one invoice when you wanted two, EVEN if you create two shipments. Weird!
  3. YoPrint changed your invoice number because you deleted a shipment and created a new shipment
  4. YoPrint created an invoice for you even though it's a Quote, and your customers are upset as to why you are invoicing them right away.
  5. Some customers went ahead and paid a "Quote" even though you are still in the negotiation process.

Honestly, what a mess!

With V2, you’re now fully in control of your invoices! You can create an invoice whenever you’re ready to receive payment from your customer and generate as many invoices as needed. Best of all, changes to shipments no longer interfere with your invoices—how neat is that? It only took us 6+ years to make it happen!

Additionally, you can now record tax information directly within the invoice, exactly where it belongs. Simple, efficient, and designed with you in mind.

Tax Calculation

Speaking of taxes, in V1, we were ambitious and supported different taxes % per line item. Due to this, we calculated taxes per line item and totaled it up at the end. However, this design decision came with an unintended side effect. The tax calculation will sometimes be off by a couple of dollars at a time. For example, if the tax rate is 6.275% and someone ordered $1000 worth of goods, the correct tax should have been $62.75. However, if there were 10 line items, with each line item being $100, YoPrint would calculate the tax to $6.28 per line item, with the total being $62.80.

With V2, we've drastically simplified tax calculation. You will now specify the tax rate for the entire invoice with the option to mark select items as tax-exempt should you need to. With this change, the final calculated tax should match the expected tax calculations. We hope this change will help keep your books clean!

No More Edit Drafts

In V1, we introduced the concept of Sales Order Edit Drafts. The idea is that, in order to edit a Sales Order, you first create an Edit Draft, make changes to the draft, and publish it when you are ready. This led to a slew of confusing situations.

  1. Why can some changes like Sales Order Status be made without using Sales Order Edit Draft, but others can’t? While the answer is anything that could affect the price of an Order needs a Draft, it's often not very clear.
  2. Why is there already a draft? Sometimes, you start the "Edit" process by creating a Draft but don't finish it up and forget about it. The next time you try to edit it, we will warn you about an existing draft that you have no recollection of.
  3. Editing Stale Draft. Sometimes, you create a draft and make changes to it to test some pricing out but forget to delete the draft. The next time you log in and resume the draft, you either get confused as to why it's not matching up or, worse, accidentally publish changes you didn't mean to.

Drafts were originally introduced to give you a place to safely make changes without those changes going live until it is good to go. However, in practice, it caused more confusion than not.

With V2, we are removing "Drafts" and giving you the option to directly edit the order, knowing that you are always working on the latest copy of the order and not an old draft.

No More Concurrent Edit Locking

Previously in V1, only one person can "Edit" a Sales Order or Quote at a given time. Anytime an Order was in create mode, or you were editing a Draft, we will automatically detect attempts to concurrent edit, warn you, and safely terminate the other person's session. However, this wasn't without problems and the concurrent edit detection mechanism sometimes doesn't work.

Now, we’ve transitioned to a fully real-time system. You can now see who is viewing an order, and any changes made are instantly communicated to everyone viewing it, enabling seamless real-time collaboration. Our ultimate goal is to make the entire app fully real-time by the end of 2025!

Real-Time Job, Shipment and Invoice Edit

In V1, when creating a job, you will have to fill out a long list of form before pressing save. The same was true for shipments as well. All it takes is one mistimed, habitual browser refresh button click to erase all your work. Bummer!

With V2, we are moving to saving your changes as you make them for Job, Shipment and Invoices. Any changes you make to them will be instantly communicated to everyone viewing them allowing for a more collaborative editing environment.

Optional Dates

We were strict about our dates in V1. All dates must be filled ahead of time and no exceptions! That went about as poorly as you would expect. For example, what if you don't promise a In Hands Date, until the deposit has been paid? What if you can only decide the production dates, once a Quote has been converted to a Sales Order? What if you know a task needs to be done but you can't say when until you have more information?

This made us move to an optional date system in V2. Dates, including production start and due dates, ship by date, in hands, task start, and due date, are all optional now. We start off by not setting them, and you can set them when you are ready!

Multi Line Taxes

In V1, you can set the Tax Preset as a single percentage number and hope for the best. This becomes especially tedious when syncing to QuickBooks Online.

We’ve made changes in V2 and introduced the ability to break down tax percentages into their constituent parts, making tax collection more precise and flexible. For example, if you're in Canada, you can now split taxes into GST and PST. If you're in the US, you can break down taxes into various percentages as needed. YoPrint now supports the complexity of your tax requirements seamlessly!

Manual Tax Amount

We used to do the tax calculation for you, and you can't question or correct it. For a software built around our infamous "escape-hatch-built-in" approach, this is not a good look.

With V2, you can now simply say no to our calculation and key in your calculated final value in dollar amounts. We don’t expect you to use this feature, but should you absolutely need to, it’s there for you.

Multiple Discount Line Items

In V1, you specify the discount for any order, you guessed it - in the shipment! Best of all you can choose between either a dollar discount amount or a single percentage based discount.

Now, we are moving the discounts to where it belongs, in the invoice. Not only that, you can add multiple discount line items, complete with a description of the discount.

Line Item Description

In V1, when you add any line item, be it a product or a fee, we expect the name to be descriptive enough.

However, many of you expressed that you would like to specify additional information per line item. With V2, you can now add an optional description to any and all line items. Another long-standing request has been crossed off our list!

Payment Allocation

In V1, payments were automatically allocated to invoices based on our "infinite wisdom." While this worked well for most orders with a single invoice, it fell short when an order had multiple invoices, leaving no option to allocate payments to a specific invoice.

We have introduced a brand-new payment allocation UI. Now, you can easily adjust payment allocations at any time. Want to move a payment from Invoice #1 to Invoice #2 within the same order? Easy.

By default, payments will still be automatically allocated to invoices as long as they exist within the order. However, you now have the freedom to step in and take control as you wish.

A Working Customer Credit System

If anything screamed that YoPrint is a work-in-progress, then it will be our credit system. You can manually deposit credit to a customer and you can manually withdraw credit from a customer. However, there is no way to apply this credit towards an order.

We’re happy to say that our customer credit system is finally functional. You can now, with a click of a button, apply credits to an order directly. When you void an order, we will automatically convert any paid amount into a credit for the customer. If a customer overpaid an order, you can now issue the overpayment as a credit to the customer account to be used later.

Inventory Allocation

In V1, YoPrint performs magic for you. Whenever you create an order, we automatically mark the products in the order as "committed." You can then allocate products from your inventory to the order simply by changing the Job Status from Pending to something else. However, if you change the Job Status from "starting" to "pre-production" type, then we won't allocate the items. If you don't know what a "pre-production" type is, then you are starting to see the problem. Finally, to "deallocate" the inventory, you just change the Job Status back to pending. Just kidding! You can't deallocate it.

With V2, we are separating inventory allocation from Job Status to a standalone button. You can now choose to allocate the inventory to the Job whenever you want to and deallocate whenever you want to.

Restore Deleted Orders

You can now restore deleted orders! We allowed you to duplicate and delete an order in V1, which means all the dates and everything are changed.

Now, with V2, you can simply restore the order as you intended, fuss free.

New Onboarding Experience

We've also completely revamped our onboarding and team creation process. While this doesn't affect existing users, it should help make a good first impression on everyone who wants to try YoPrint. The new onboarding process no longer has the weird glitch that sometimes provisions duplicate teams and team members getting expired links.

A New UI

We also took this opportunity to clean up our UI with a more streamlined look and feel with a heavy focus on user experience. What this means, the UI is no longer assembled by a software engineer but by a seasoned UI/UX Designer.

Behind the scenes, we’ve rewritten our UI framework, transitioning from Angular to React. For the uninitiated, this means the frontend is now built on modern technology that’s easier to develop, maintain, and expand. It’s a fresh coat of paint with smarter, more scalable architecture!

A Fraction of Changes

In all honesty - we were making so many changes to both the frontend and backend, that we don't have an exhaustive list and we don't want to make this already long article longer. Suffice to say, there is more than what meets the eye with V2. However, V2 is the ramp we needed to launch YoPrint into the next generations of features!

Bug Squash Fest!

V2 was a massive undertaking and unfortunately, despite our best efforts, bugs finds find their way through the cracks. My team and I are committed to squash these bugs as quickly as possible.

Need to report a bug? Send an email to support@yoprint.com with the title “V2 Bug Report.” Please describe the issue as detailed as possible. Provide us with the steps that you took to encounter the bug. If you have screenshots, it’s even better! Even if you feel a screenshot might be unnecessary, please send us a screenshot anyway. We can spot great many things with a single screenshot. If you can provide us with a screen recording, that would be even better!

I want to be transparent about this process so we will be recording all reported bugs here, any known workaround they may have, as well as the status of the bug. You should be able to follow us live here!

What's Next?

It's no secret we've been looking into store solutions for our customer. Our very next features we are working on is Shopify Integration. The idea is to pull all your orders from Shopify into YoPrint and manage the production from there. Our engineer is already working on it, and we are expecting to have a working prototype by Impression Expo Long Beach 2025. We will be launching the feature in February the latest, fingers crossed!

Growing the Team

With V2 released, we are finally at a good spot to hire more engineers for YoPrint. We are going to start looking for 2 new engineers in February, and planning to hire more in September. We will be aggressively growing our engineering team so that we can deliver more quality features faster, and better.

Thank You

Once again - thank you so much for believing in us and giving us the opportunity to deliver V2. We will be working extra hard to make sure your transition to V2 is as smooth as possible. We've published a couple of videos and articles outlining the new workflow and we will be publishing more in the upcoming weeks.

Your support drives us to keep improving, and we can’t wait for you to experience all that V2 has to offer. Here’s to the next exciting chapter together!

Cheers to V2, cheers to 2025!🎉

WithYoprint Team