Achieve Maximum Performance with Laziness 
Shopify Development news and articles
 
Liquid Weekly

Karl Says


Sometimes being lazy is good - at least for improving theme performance.

News & Articles

Optimize Speed by Lazyloading Apps
I've been doing Shopify performance optimization for many years and each time I've hit a brick wall—applications. Everything else is fully optimizable on Shopify. You can lazy load images, optimize the theme JavaScript assets load, have total control over your code. Everything is great until you want to optimize apps that are injecting code via the ScriptTag API.
Building a Data Table Component in React
The first component I worked on with the Polaris team was the data table component, and it helped me realize what makes React such a powerful library. React’s component approach made it easy to create a stateful data table component and a stateless functional cell subcomponent. Its built-in lifecycle methods also provided more control over when to re-render the data table's cell heights. Here are the basic steps we took to build the Polaris data table component in React.
Shopify’s Evolution
Back in 2004 a lot of the pieces that were necessary to run an e-commerce site existed, albeit in rudimentary and hard-to-use forms. One could, with a bit of trouble, open a merchant account and accept credit cards; 3PL warehouses could hold inventory; UPS and Fedex could deliver your goods. And, of course, you could run really cheap ads on Google. What was missing was software to tie all of those pieces together, which is exactly what Lütke built for Snowdevil, his snowboard shop, and in 2006 opened up to other merchants; the software’s name was called Shopify:
Scroll To Top Button - Shopify Coding Tutorial
Watch as Seán shows how to develop a scroll back to top button for our Shopify themes.
Using the Shopify GraphQL Admin API with Rails
I realized I had not yet used the GraphQL Admin API in my Rails app. So this tutorial will be building off of the Staged Uploads tutorial and explaining the Rails side of the equation.
Gadget: Build and scale ecommerce apps in hours, not weeks.

Build Shopify apps 10x faster with Gadget, the serverless stack built by ex-Shopify leaders. Reliable, one-click data syncs to any store, no rate limits, and a complete JavaScript backend for you to code in.

Get early access, and free cloud resources for a limited time

Code & Tools

What's New in HyperUI? Biggest Update Yet!
HyperUI is a collection of free Tailwind CSS components that are open source. The new version of HyperUI loads faster, is friendlier for developers that want to contribute and now has a great base to build from in 2022.
Build a referral program for your client and earn $100
Conjured Referrals is an app built by devs, for devs. That's why we want to reward devs for recommending us to their clients. Install the app free on any development store, and check out the top 3 ways using Conjured Referrals will make you look good in the eyes of your clients.
Theme Check ✅ - A linter for Themes
Think RuboCop, or eslint, but for Shopify themes. Theme Check is a command line tool that helps you follow Shopify Themes & Liquid best practices by analyzing the Liquid & JSON inside your theme.

Changelog

API

New fields on App and AccessScope
As of GraphQL Admin API version 2022-04, new fields on the App resource are available. These include previouslyInstalled, webhookApiVersion, developerType, requestedAccessScopes, availableAccessScopes, and publicCategory. publicCategory introduces a new enum AppPublicCategory which represents the distribution pattern the app uses.

Shopify App Store

App store listings now have additional Partner details
As of March 14, 2022, app listing pages will include additional details about Partners, such as how many apps they have on the store, the average app rating (for all apps combined), and how long they’ve developed for Shopify. Some of this information is already displayed on the app developer pages, but we’re adding it to the app listing page so that merchants have the decision-making details they need in a single place.

Events

March 29th - More organic traffic without fighting for rankings
Let's bring more qualified buyers to your Shopify store using the free search enhancement systems Google, Bing, Pinterest, and other search engines. After this presentation, you’ll understand: - What search enhancements are - How your store can qualify for them - Warning signs that something could be wrong (and what to ignore) - How to solve common search enhancement problems
April 13 - Introduction to Working With Shopify Themes
Following this practical workshop you’ll be able to set up a local development environment and edit theme code to customize an example storefront. We’ll also explore Shopify’s Liquid templating language and learn how it can be leveraged to display dynamic store content.

Jobs

Shopify - Lead/Staff Production Engineer (Remote, Americas and Europe)
If the idea of working on one of the most impactful component of infrastructure that has a reach to every single application (hundreds of them) across our infrastructure, serving millions of requests per minute excites you, join us!
Content Marketing Manager, FT, Remote
The ideal candidate loves writing and topic research but also understands how to structure the article from the SEO point of view. We expect someone who will be autonomous and data-driven. Knowledge of the Shopify environment is a big plus, but general e-commerce understanding is fine, too.
Technical Lead, FT, Remote
Invisible Themes is looking for a full-time Technical Lead with deep Javascript knowledge to join our growing team! You will be building features, writing exemplary code for the development team to follow and defining the development roadmap.

Tip of the Week

Draft Order + Invoice Gotcha

You probably know that you can use Shopify's API to create draft orders and to send invoices via email.

But, have you ever encountered the mysterious "Not payable via customer checkout" error when attempting to send the invoice?

If you have, Jakim Beaufort has found the solution!

It turns out that while you can send invoices for draft orders from the Shop admin area wily-nily, doing so from the API works ONLY before the draft order is 'completed'

Now we know! Thanks Jakim!