As part of our ongoing efforts to ensure that our customers stay updated, we will be releasing an article each sprint that discusses the tech team’s progress and how Shoprocket has improved.
In this sprint, we have been working on ‘hardening’ the product. What does hardening mean? Well, it means you add no new features, you simply make the current ones work optimally. This means things that were very low-priority get some love, such as:
As a user, I would like to see a ‘please select’ in the time slot drop down so the user has a prompt of what to do next.
The whole team has been working hard and we shipped the following:
- POS fully debugged
- Images load 4X faster
- Users can set their own placeholder defaults and now and users can set their own defaults
- ‘Create your own’ works without branches
- Added a minimum order check
- Dropdown for countries in dash works now
- API updated to the new currencies code
- Stores can edit their address in their dash now
- UTM generator now encodes the UTM URL so it’s safer
- Auth added to our bulk importer
- We hid the tax field on edit products
- Added AJAX calls for real-time stats to use on our www site
- PayPal memo is serialised to not break when parsed to PayPal
- Partner tracking added
- Fixes to product options manager
- Vouchers now accept decimal amounts
- Update to sales reporting
- New invoice generation engine coded
Alongside this, we are putting the finishing touches on a project we started in late December. That project is V9 of our Javascript engine.
To give you a brief history of how this all came about, we reached out to developers late November and encouraged them to trial the Shoprocket platform.
That outreach told us two things:
- We need zero dependencies
- We have to be way more configurable in our front end design.
With the two points above we set out to completely recode V9 from the ground up. The first real challenge we had was that we relied heavily on jQuery for the bulk of our javascript and this was causing most of the issues, so after a lot of research on whether we should use a framework, a micro-framework or just code it all in plain javascript we decided to code it in pure javascript.
For reference this website YouMightNotNeedjQuery.com was the tipping point, it is a great site with clear side by side examples of jQuery versus plain javascript.
With that done, we turned our attention to our cart and our CSS. Currently, we use a modified version of Bootstrap CSS for our CSS requirements. When we actually dove into this it turns out most of what we required could be wrapped up into 100 lines of code or so, so we set about redoing our CSS to be plain CSS as well.
As Shoprocket is designed to work on any website or blog, we can never know what other plugins, frameworks and programming languages we’re being used alongside, so the only way to be certain of avoiding conflicts, is to have zero dependencies. This means our code is self-contained and will work on any website, without conflicting with other plugins.
The last major area of focus was our cart and this is where we think we have made huge improvements. We think our cart is very good. In fact, we have the data to show the abandonment rates are extremely low, but there are a few occasions where our cart is not optimal and it was almost impossible to change. So with v9, we abstracted the entire cart into a standalone piece of HTML that you can include, modify, extend and generally do whatever you want to with it.
We are putting the finishing touches to this now and plan to launch it officially as soon as we deem it stable, however if you would like to get a sneak peak send us an email [email protected] and we will put you on the beta list.