Slightly technical piece.
One of those days. We noticed some emails failed to send this morning, which happens sometimes. Because the failure rate was high enough to notice this round, we decided to finally move off SMTP¹ to the much more reliable and powerful Microsoft Graph API² (since we use Office 365 Enterprise as an email back-end anyway). This should hopefully now guarantee a 100% delivery rate with much more robust logging and security.
But this random post isn’t about that. As always, we performed unit testing³ to make sure all site components are still functional after the update. Green across the board! However, we decided to do a full scale integration test⁴ this round and literally buy off our own website. Whoops! It turns out the checkout message hasn’t been showing since October, when the site was fully redesigned. Another function was overriding the output. This has been fixed and customers placing new orders should now have much clearer instructions.
While delving into the email code, we also FINALLY made a workaround for the website’s underlying platform and emails will now correctly format order notes. No more weird clumps of text in the email receipt!
Why stop there? We moved onto the Teambuilder, finally isolating and fixing a bug with the Output where the Generate button would stop updating if a customer had tampered (yes, tampered, because one shouldn’t make any edits to the output anyway) with the text in the Output window. As it turns out, developers should update the value
of HTML’s textarea
instead of the innerHTML
attribute.
Finally, something we’ve wanted to do for a long time. The Checkout page has been rearranged to make the flow even clearer and most importantly, validation at Checkout! The Checkout page is now capable of detecting (most) invalid cart and game version combinations (e.g. Gen 6/7 All Past-Gen Legendaries Package but Sword/Shield selected, Home but not for Living Dex), invalid 3DS Friend Codes, and warns when Order Notes are empty when they shouldn’t (e.g. buying Custom Pokemon).
One small fix led to a large number of changes! As many of us get stuck at home during this period, it’s important to have things to do. If you’re interested in learning Computer Science, we’d suggest edX’s free online courses.
tl;dr:
- Email service is now far more reliable
- Emails now correctly format order notes
- Checkout flow now checks for errors
- Successful checkout now correctly provides guidance
- Teambuilder bugs squashed
Hopefully, these system stability improvements enhance your experience! Take care, and stay safe.
¹Simple Mail Transfer Protocol: An Internet protocol to facilitate sending of emails.
²Microsoft Graph Application Programming Interface: An API is a means of having applications (or functions) talk to each other. Microsoft exposes a set of API to use powerful functions on its enterprise cloud.
³Unit Testing: A test to validate that a specific component of software is working as intended.
⁴Integration Testing: A test to validate multiple units of software are working together correctly.