Liquid Weekly #31 - Using Shopify CLI for continuous integration

Did you know that Shopify now has built in support for CI workflows? 
Shopify Development news and articles
 
Liquid Weekly

Karl Says


I'm currently enjoying "second winter" here in central Ohio. An early Merry Christmas to you all!

News & Articles

Shopify Store 2.0 Storefront Filters Explained
Filters on the Collection and Search page of the Shopify theme are very important. In this video I will explain how they work in simple terms.
Recording & Links for Post-purchase strategies to boost your AOV
A post-purchase offer is just as it sounds. After your customer completes the purchase online, you can show them additional products. Think of it like candy at the checkout counter. They may have completed their purchase, but since they are here, why not add something else to their order before they leave.
Dawn product page link/popup for only certain products
Dawn has a product information section block called "Pop-up" that we could extend to provide the same base functionality. It already lets you provide text that is used as a link which triggers a pop-up and the contents of that pop-up can come from a page record or metafield. The main thing missing is the ability to conditionally show this for only certain products.
Turbo Rails Tutorial
Learn how to leverage the power of the turbo-rails library now included by default in Rails 7 to write reactive single-page applications without having to write a single line of custom JavaScript.
Spent weeks on auth, again? Building yet another full text search?

WELL DON'T. Let Gadget's instant APIs and built-in state machines do the busywork, so that you can focus your time on writing the code that matters. Build and scale apps in a fraction of the time it takes today by skipping the boilerplate.

Try it for free, today

Code & Tools

The Code Review Pyramid
When it comes to code reviews, it’s a common phenomenon that there is much focus and long-winded discussions around mundane aspects like code formatting and style, whereas important aspects (does the code change do what it is supposed to do, is it performant, is it backwards-compatible for existing clients, and many others) tend to get less attention.
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.
Customizable Announcement Bar - Part 1
Today we will be coding a customizable announcement bar for our Shopify store. Whether you want to create this for yourself or for a client, learning how to navigate Shopify's backend is a valuable skill to have!
Using Shopify CLI for continuous integration
In this tutorial, you'll learn how to set up your CI/CD pipeline to push your scripts and app extensions programmatically. To do so, you'll gather the information necessary to run the CLI commands programmatically, and then add a step to your CI/CD pipeline that installs the Shopify CLI and pushes your app extension or script to Shopify.
Cut your Rails boot times on Heroku in half with a single command
The bootsnap gem has been a default Rails gem since version 5.2 which was released back in 2018 and has been improving boot times in most environments ever since. But what about on Heroku?

Changelog

API

Changes to metafield definition error codes
As of GraphQL Admin API version 2022-04, an error returns when a metafield definition is created with invalid characters in either the key or the namespace fields. The key and namespace fields can contain only alphanumeric characters, hyphens, and underscores.

Themes

New theme editor setting types: product list and collection list
Two new input setting types have been added to the theme editor: product_list and collection_list. They allow merchants to quickly create curated, ordered and paginatable lists of products and collections. Learn more about product_list and collection_list on shopify.dev.

Tools

CI/CD support for scripts, extensions
Developers can now programmatically push their scripts and extensions to Shopify from their CI/CD pipelines with CLI authentication tokens. For more information on how to set up CI/CD for your scripts and extensions, visit our developer documentation.

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

Dynamic Variable Assignment

Hopefully you know that you can assign and use variables in liquid (if not, we need to talk..)

But what about situations where you need to dynamically create the variable name?

For example, what if you have five metafields to represent carousel slide data and want to loop through them?

It's possible - with the clever use of the append tag


Example

﹛% for i in (1..5) %﹜

﹛% assign objectName = ‘image_carousel_slide_’ | append:i %﹜

﹛% if collection.metafields.my_fields[objectName] != blank %﹜

image carousel slide has content

﹛% endif %﹜

﹛% endfor %﹜


Thanks to Mathews Joseph for the excellent tip!

 

Older messages

Liquid Weekly #30 - Achieve Maximum Performance with Laziness

Tuesday, March 22, 2022

Achieve Maximum Performance with Laziness Shopify Development news and articles Issue #30 - 3/22/2022 Read Online Liquid Weekly Karl Says Sometimes being lazy is good - at least for improving theme

Liquid Weekly #29 - Don't Lose Your App Store Listing, Ditch EASDK!

Tuesday, March 15, 2022

Don't Lose your Apps Store Listing - Switch From EASDK To App Bridge! Shopify Development news and articles Issue #29 - 3/15/2022 Read Online Liquid Weekly Karl Says Lots of great content this week

Liquid Weekly #28 - Dawn Theme Transparent Header

Tuesday, March 8, 2022

Learn How to Add a Transparent Header to Dawn Shopify Development news and articles Issue #28 - 3/8/2022 Read Online Liquid Weekly Karl Says Got any plans for Spring Break 2022? What's one new

Liquid Weekly #27 - How Shopify Writes React Native Apps

Tuesday, March 1, 2022

Learn how Shopify Writes React Native Apps Shopify Development news and articles Issue #27 - 3/1/2022 Read Online Liquid Weekly Karl Says Spring is right around the corner. How can you help your

Liquid Weekly #26 - Accessibility on Shopify

Tuesday, February 22, 2022

How to Get Started with Accessibility on Shopify Shopify Development news and articles Issue #26 - 2/22/2022 Read Online Liquid Weekly Karl Says Each winter after Christmas I make it a mental goal to

You Might Also Like

WP Weekly 226 - Launches - New Elementor Theme, WP 6.8 in April 2025, Automattic Scale Back

Monday, January 13, 2025

Read on Website WP Weekly 226 / Launches 2025 has just started, and there is a slew of new launches like Hello Biz Theme, Meta Box Lite, FooConvert, Affililink, and more. Also, the next WordPress 6.8

SRE Weekly Issue #459

Monday, January 13, 2025

View on sreweekly.com A message from our sponsor, incident.io: Effective incident management demands coordination and collaboration to minimize disruptions. This guide by incident.io covers the full

Saving One Screen At A Time 🖥️

Monday, January 13, 2025

Why the screen saver stopped being so in-your-face. Here's a version for your browser. Hunting for the end of the long tail • January 12, 2025 Today in Tedium: Having seen a lot of pipes, wavy

Software Testing Weekly - Issue 253

Monday, January 13, 2025

Software Testing Weekly turns 5! 🥳 View on the Web Archives ISSUE 253 January 13th 2025 COMMENT Welcome to the 253rd issue! Oh my, time flies! It's hard to believe this week marks 5 years since I

CES 2025 - Sync #501

Sunday, January 12, 2025

Plus: Sam Altman reflects on the last two years; Anthropic reportedly in talks to raise $2B at $60B valuation; e-tattoo decodes brainwaves; anthrobots; top 25 biotech companies for 2025; and more! ͏ ͏

PD#608 Mistakes engineers make in large established codebases

Sunday, January 12, 2025

You can't practice it beforehand ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌

C#539 A detailed look at EF Core’s JSON Columns feature

Sunday, January 12, 2025

Comparing it with the traditional tables with indexes ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌

RD#488 How to avoid issues with custom Hooks

Sunday, January 12, 2025

Using them carelessly can lead to many problems ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌

Daily Coding Problem: Problem #1666 [Easy]

Sunday, January 12, 2025

Daily Coding Problem Good morning! Here's your coding interview problem for today. This problem was asked by Amazon. Given n numbers, find the greatest common denominator between them. For example,

🛜 Here's What Happens to Old Websites — Features the Pixel Should Copy From Samsung's One UI 7

Sunday, January 12, 2025

Also: What Instagram Needs to Compete With TikTok, and More! How-To Geek Logo January 12, 2025 Did You Know Mount Wingen, located near Wingen, New South Wales in Australia, is better known as Burning