<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Christopher Dodd]]></title><description><![CDATA[Shopify theme developer and educator. Custom storefront development for agencies and 7–9 figure e-commerce brands.]]></description><link>https://christopherdodd.com/</link><image><url>https://christopherdodd.com/favicon.png</url><title>Christopher Dodd</title><link>https://christopherdodd.com/</link></image><generator>Ghost 3.13</generator><lastBuildDate>Thu, 02 Apr 2026 16:55:27 GMT</lastBuildDate><atom:link href="https://christopherdodd.com/blog/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Creating 'Product Sets' in Shopify]]></title><description><![CDATA[<p>Every now and then with Shopify, a hack solution is required to solve a problem that the platform can not handle natively and 'Product Sets' is one such example.</p><p>What do I mean by 'Product Sets'?</p><p>I'm talking about something in-between variants and collections.</p><p><strong>Variants</strong> allow for the merchant to</p>]]></description><link>https://christopherdodd.com/product-sets-in-shopify/</link><guid isPermaLink="false">61a6e0c4b9ab8f4f5348382e</guid><category><![CDATA[Shopify]]></category><category><![CDATA[Shopify Hacks]]></category><category><![CDATA[Product Organisation]]></category><dc:creator><![CDATA[Christopher Dodd]]></dc:creator><pubDate>Wed, 01 Dec 2021 04:15:23 GMT</pubDate><media:content url="https://christopherdodd.com/content/images/2021/12/Product-Sets-Cover-1.png" medium="image"/><content:encoded><![CDATA[<img src="https://christopherdodd.com/content/images/2021/12/Product-Sets-Cover-1.png" alt="Creating 'Product Sets' in Shopify"><p>Every now and then with Shopify, a hack solution is required to solve a problem that the platform can not handle natively and 'Product Sets' is one such example.</p><p>What do I mean by 'Product Sets'?</p><p>I'm talking about something in-between variants and collections.</p><p><strong>Variants</strong> allow for the merchant to set a different price, image and SKU for variations of a single product.</p><p><strong>Collections</strong> allow for merchants to group together products. These products might be similar in nature or part of a particular sale. </p><p>And,<strong> Product Sets </strong>are different versions of the same product that (for whatever reason) need to be grouped together.</p><p>In my experience, product sets have only become a necessity for clients who wish to showcase multiple product photos for each colour variation of a product.</p><p>You see, a variant in Shopify can only hold a single image which often forces merchants to create a separate product for each colour variant. Something that could otherwise be handled by variants.</p><p>This is something I first learnt about working for a Shopify Plus partner agency back in 2019 but have since implemented with a private client this year.</p><p>In this article, let's discuss how to pull it off.</p><h2 id="anatomy-of-a-product-set">Anatomy of a Product Set</h2><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://christopherdodd.com/content/images/2021/12/Muscle-Nation-Product-Set.png" class="kg-image" alt="Creating 'Product Sets' in Shopify"><figcaption>Example of a product with a 'set'</figcaption></figure><p>Let's take the common example of a piece of clothing available in different colours but with a gallery of images for every colour (as can be seen in the example above).</p><p>Inside the red rectangle in the screenshot above you can see the other colours that the T-Shirt is available in.</p><p>How does Shopify know that these products are associated with the one currently being viewed? </p><p>The answer is that the product set is stored within a collection.</p><p>This is where the 'hacky' part of the solution comes in as there is no other way to bind products together in order to cycle through them in Shopify unless they are all stored in a single collection.</p><p>What this means is that - unfortunately - your 'product sets' will sit in the same place as your regular collections.</p><p>A product set is essentially the same as a collection. The only difference being the convention we use to identify them in the theme code.</p><h2 id="creating-a-product-set-">Creating a 'Product Set'</h2><p>Creating a product set in Shopify is the same thing as creating a collection (as that's what a product set is) but with a naming convention that allows the theme to identify and differentiate the set from a regular collection.</p><p>This should be pretty simple if you've set up your product handles in a systematic way.</p><p>For example, if you currently have a T-Shirt product in your store that is available in multiple colours, it would be ideal to have a handle structure like such:</p><!--kg-card-begin: markdown--><p>tee-shirt-black<br>
tee-shirt-grey<br>
tee-shirt-white<br>
tee-shirt-blue<br>
tee-shirt-red</p>
<!--kg-card-end: markdown--><p>Notice how in the example above, the product handle always starts with 'tee-shirt' and that the rest of the handle only represents the colour.</p><p>With your product handles set up like this, you could create a collection with the handle of <code>set-tee-shirt</code> which of course, is equal to <code>set-</code> followed by the common part of the product handle that all the products in the set share.</p><p>While it's not required for the theme code, I would also recommend following a convention for the collection title by placing the word 'Set' in front. This will make it easier for admins on the backend to filter them out when searching through normal collections.</p><h2 id="utilising-the-product-set">Utilising the product set</h2><p>Once you've created a product set according to your convention and have added your products to it, it's up to you to decide what to do with it.</p><p>One idea is to create a custom collection template and apply it to your product sets, showing those products sets in a different way to how you show your regular collection.</p><p>How I've seen it used most commonly however, is the example in the screenshot above, where the other products in the set are coded to show up on the product page of any product (provided that that product exists within a set).</p><p>Here's another example:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://christopherdodd.com/content/images/2021/12/Ringers-Western-Product-Set.png" class="kg-image" alt="Creating 'Product Sets' in Shopify"><figcaption>Another example of a product with a 'set'</figcaption></figure><p>As you can see in the screenshot, Ringers is displaying the other products in the set alongside the product details.</p><p>In order to achieve this, you'll need to utilise a developer to write some Liquid code to:</p><ol><li>Look for a product set that matches the product (ie. one when the collection handle equals <code>set-[product handle minus the colour]</code>), and</li><li>Loop through that collection to render a link to each product within the set</li></ol><p>Because each colour is represented by its own product in the Shopify admin, clicking on any one of these links will take the user to a completely separate product page.</p><p>It's a bit of a hacky solution but if a gallery of images is required for each variant, it's an essential one. </p><p><em><em><strong><em><em><em><em><strong><em><em>Are you looking to showcase other colours of a single product with multiple images whilst still having the colour variants appear as if they were variants?</em></em></strong></em></em></em></em></strong></em></em></p><p>Well, as a Shopify theme development expert, I'm only a message away. </p><p><a href="https://www.linkedin.com/in/christopherrdodd/">Contact me on LinkedIn</a> and let's chat about it!</p><p>Until next time,</p><p>Chris</p>]]></content:encoded></item><item><title><![CDATA[Shopify Cart vs Checkout: Why the two are NOT the same]]></title><description><![CDATA[<p>A common area of confusion I tend to experience with my Shopify clients is around the cart page and the checkout.</p><p>Usually when clients ask for changes to the checkout, I offer a compromise. '<em>We can do that on the cart page but not the checkout</em>'.</p><p>The reason</p>]]></description><link>https://christopherdodd.com/shopify-cart-vs-checkout/</link><guid isPermaLink="false">61a578d0b9ab8f4f53483687</guid><category><![CDATA[Shopify]]></category><category><![CDATA[Shopify Checkout]]></category><category><![CDATA[Shopify Themes]]></category><dc:creator><![CDATA[Christopher Dodd]]></dc:creator><pubDate>Tue, 30 Nov 2021 03:46:16 GMT</pubDate><media:content url="https://christopherdodd.com/content/images/2021/11/Cart-vs-Checkout-Cover.png" medium="image"/><content:encoded><![CDATA[<img src="https://christopherdodd.com/content/images/2021/11/Cart-vs-Checkout-Cover.png" alt="Shopify Cart vs Checkout: Why the two are NOT the same"><p>A common area of confusion I tend to experience with my Shopify clients is around the cart page and the checkout.</p><p>Usually when clients ask for changes to the checkout, I offer a compromise. '<em>We can do that on the cart page but not the checkout</em>'.</p><p>The reason for this is that we have full control of the Cart page but not the Checkout page. </p><p>Allow me to explain...</p><h2 id="the-checkout">The Checkout</h2><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://christopherdodd.com/content/images/2021/11/Example-Shopify-Checkout-page.png" class="kg-image" alt="Shopify Cart vs Checkout: Why the two are NOT the same"><figcaption>An Example of the Shopify Checkout Page</figcaption></figure><p>Shopify offers a standardised Checkout page to merchants that often looks exactly as pictured above. </p><p>The Checkout is a special page. While the rest of your website is for your customers to browse and select products to buy, the Checkout is where they actually transact with your business and is the single point where revenue is generated.</p><p>This is why the Shopify Checkout has been built to be highly robust and non-customisable. If you were to break your checkout page, it could be disastrous for your business. Therefore, you can only modify the Checkout page in a few ways.</p><p>First of all, it's important to note that <strong><em>if you're not on Shopify Plus, then there is no option to directly edit your checkout page</em></strong>.</p><p>If you<strong><em> are</em></strong> on Shopify Plus, then you can edit to your Checkout page to a certain extent using the <code>checkout.liquid</code> layout file (we'll get to that very soon).</p><p>Otherwise, there are just two options: checkout apps and checkout scripts.</p><!--kg-card-begin: html--><h3>Checkout Apps</h3><!--kg-card-end: html--><p>Since mid-2021, Shopify have enabled app developers to extend and modify the checkout.</p><p>I won't go into the deeper technical aspects of how these apps work. What's important to understand however, is that merchants will need to use an app to update the UI of the Checkout or enlist the help of an app developer to create a custom app for them. </p><p>Barring the use of the <code>checkout.liquid</code> file (only available to Shopify Plus merchants), this is the only option to edit the UI of your Checkout page.</p><p>The code must be written in an external app and is not a part of your Shopify theme code.</p><!--kg-card-begin: html--><h3>Checkout Scripts</h3><!--kg-card-end: html--><p>Also only available to Shopify Plus merchants is the <a href="https://help.shopify.com/en/manual/checkout-settings/script-editor">Script Editor</a> which allows you to write and update Shopify Checkout Scripts.</p><p>As it states on Shopify's website, "<em>Scripts let you add custom server-side logic to checkout, and securely change the behavior of payment methods, shipping rates, and checkout line items.</em>"</p><p>In my experience, the most common application of Scripts is to apply some sort of automatic discount based on what items the customer has in their cart. These are known as <em>Line Item Scripts</em>.</p><p>Common examples of Line Item Scripts include: </p><ul><li><a href="https://help.shopify.com/manual/apps/apps-by-shopify/script-editor/examples/line-item-scripts#tiered-discount-by-spend">Tiered discount by spend</a></li><li><a href="https://help.shopify.com/manual/apps/apps-by-shopify/script-editor/examples/line-item-scripts#tiered-discount-by-quantity">Tiered discount by quantity</a></li><li><a href="https://help.shopify.com/manual/apps/apps-by-shopify/script-editor/examples/line-item-scripts#buy-one-get-one-bogo-discount">Buy one get one (BOGO) discount</a></li></ul><p>Of course, all merchants have <a href="https://help.shopify.com/en/manual/discounts/create-discount-codes">discount codes</a> and <a href="https://help.shopify.com/en/manual/discounts/automatic-discounts">automatic discounts</a> at their disposal as well but Shopify scripts allow for the highest level of customisation. </p><p>Finally, these scripts are written Ruby, a different language to the theme code. This means that a different set of skills is required to update them.</p><!--kg-card-begin: html--><h3>Liquid customisation using checkout.liquid file</h3><!--kg-card-end: html--><p>I mentioned earlier that you can make certain edits to your checkout page via <code>checkout.liquid</code> if you're on Shopify Plus but what kind of updates can you make using that layout file?</p><p>Well, the template utilises certain <a href="https://shopify.dev/themes/architecture/layouts/checkout-liquid#checkout-objects">checkout objects</a> to render various checkout content, depending on the <a href="https://shopify.dev/themes/architecture/layouts/checkout-liquid#checkout-steps">checkout step</a>. These objects are not directly editable.</p><p>The checkout objects represent important building blocks of the checkout such as <code>content_for_layout</code> which displays the form fields. </p><p>This is gives merchants some customisation in terms of where they place these objects within the HTML structure of the page but it doesn't really allow them to extend the functionality of your checkout page.</p><p>What can you do however is insert CSS and JS to customise the look of outputted elements or modify the DOM on page load.</p><p>This might sound a little technical but for the most part, what you need to understand is that the customisation options available via the <code>checkout.liquid</code> layout file are mainly cosmetic and for the most part, won't allow you to change the functionality of your checkout page.</p><h2 id="the-cart-page">The Cart Page</h2><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://christopherdodd.com/content/images/2021/11/Example-Shopify-Cart-page.jpg" class="kg-image" alt="Shopify Cart vs Checkout: Why the two are NOT the same"><figcaption>Shopify Cart Page Example</figcaption></figure><p>Unlike the Checkout page, the Cart page in Shopify is just another template in your theme.</p><p>The <code>cart.liquid</code> template is available for any merchant to edit regardless of their Shopify membership tier and as such, will look different on every Shopify store based the theme the merchant is using.</p><p>Here, your options for customisation and styling are near infinite. The only limit is the information returned by the cart object. </p><p>Some examples of modifications I've personally made to cart pages include:</p><ul><li>Adding a discount code applier (as can be seen in the screenshot above)</li><li>Grouping together bundle products to show a single product</li><li>Adding similar products as upsells underneath the cart items</li></ul><h2 id="tl-dr">TL:DR</h2><p>To summarise the major differences between the Cart and Checkout pages, I've created the following table:</p><!--kg-card-begin: html--><table style="white-space: inherit;display: table;">
<thead>
  <tr>
    <th rowspan="2">The Cart Page</th>
    <th colspan="2">The Checkout Page</th>
  </tr>
  <tr>
    <th>Merchants on a lower tier...</th>
    <th>Merchants on Shopify Plus...</th>
  </tr>
</thead>
<tbody>
  <tr>
    <td>Is part of theme</td>
    <td>Cannot access any of the theme code for the Checkout page</td>
    <td>Have some level of Liquid customisation through the theme</td>
  </tr>
  <tr>
    <td>Is Coded in Liquid, HTML, CSS and JS</td>
    <td>Need to create a Checkout App to extend functionality</td>
    <td>Can update code with Liquid, HTML, CSS and JS or by using a Checkout App</td>
  </tr>
  <tr>
    <td>Reflects any changes made by Shopify scripts<br>(Shopify Plus is required to write the scripts though)</td>
    <td>Do not have access to the Script Editor (which is required to write scripts)</td>
    <td>Can write some Ruby code to discount items in the cart based on what other items are in the cart.</td>
  </tr>
</tbody>
</table><!--kg-card-end: html--><p>To conclude on a simple note, I will say that it's much easier to customise the Cart page than the Checkout page which is why it's important to clarify the difference.</p><p>In most cases, once the customer gets to the checkout on a Shopify store, they've essentially left the merchant's customised online store experience and are now working directly with Shopify's robust forms to ensure that the transaction goes through.</p><p>Once you learn about <a href="https://youtu.be/zsyKQ9lT8tQ?t=57">how much volume the Shopify Checkout can withstand without crashing</a>, it might make more sense to you that they don't let you modify it too much.</p><p>The Cart page on the other hand, is a free-for-all. Go for your life!</p><p><em><em><strong>Do you run<em><em><em><em> a Shopify store? </em></em></em></em></strong></em><strong><em><em>What customisations are you currently running on your Cart or Checkout page?</em></em></strong></em></p><p>Remember, if you need any help with your Shopify theme development needs, <a href="https://www.linkedin.com/in/christopherrdodd/">send me a message on LinkedIn</a> and let's chat about it!</p><p>Until next time,</p><p>Chris</p><p> </p>]]></content:encoded></item><item><title><![CDATA[How to implement Bundles in Shopify]]></title><description><![CDATA[To understand which app is right for you when it comes to product bundling, we need to understand what kind of goals you have with bundling products. Is your need for bundling based on keeping inventory in sync? Or is it about providing discounts to increase average order value (AOV)?]]></description><link>https://christopherdodd.com/bundles-in-shopify/</link><guid isPermaLink="false">5f28d17fb9ab8f4f53483430</guid><category><![CDATA[Shopify]]></category><category><![CDATA[Shopify Themes]]></category><dc:creator><![CDATA[Christopher Dodd]]></dc:creator><pubDate>Fri, 07 Aug 2020 01:01:38 GMT</pubDate><media:content url="https://christopherdodd.com/content/images/2020/08/Shopify-Bundles.png" medium="image"/><content:encoded><![CDATA[<img src="https://christopherdodd.com/content/images/2020/08/Shopify-Bundles.png" alt="How to implement Bundles in Shopify"><p>If you're looking to bundle together and sell a group of products in Shopify, you're not alone.</p><p>Product bundling has its <a href="https://apps.shopify.com/browse/sales-and-conversion-optimization-product-bundling">own category</a> under 'Sales and Conversion' on the Shopify app store, with over 30 apps listed as providing bundling functionality to Shopify stores.</p><p>To understand which app is right for you (or isn't), we need to understand what kind of goals you have with bundling products. Is your need for bundling based on keeping inventory in sync? Or is it about providing discounts to incentivise customers to add additional products to their cart?</p><p>Either way, product bundling is not exactly something that comes by default in Shopify.</p><h2 id="understanding-product-bundling">Understanding product bundling</h2><p>There seem to be many definitions of product bundling across the web.</p><p>You may consider something like an upsell or a 'gift with purchase' as a type of product bundling but for the purpose of this article, I'm going to define a product bundle as:</p><blockquote>A distinct set of products that, when bundled together have some kind of unique difference compared to if you had bought each item separately.</blockquote><p>More often than not, this 'unique difference' is the price. </p><p>"<em>Buy these together and save!</em>" - kind of thing.</p><p>Or it could be a bonus that that comes only with the bundle.</p><p>In this article, let's talk about a couple of ways you could implement product bundles in Shopify.</p><h2 id="a-bundle-as-its-own-product">A bundle as its own product</h2><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://christopherdodd.com/content/images/2020/08/BangnBody-Luminous-Glow-Bundle.png" class="kg-image" alt="How to implement Bundles in Shopify"><figcaption>Bang n Body's Luminous Glow Bundle</figcaption></figure><p>If you're marketing a bundle as a product of its own then you'll want that bundle to have its own product page.</p><p>If we take for example <a href="https://www.bangnbody.com/collections/shop/products/luminous-glow-bundle">Bang n Body</a>'s <em>Luminous Glow Bundle </em>(pictured above), we can see that the bundle has its own photos (showing all the products within the bundle) and its own unique name.</p><p><strong><em>In order to achieve this, all you need to do is to create the product in your admin.</em></strong></p><p>The only downside to this approach is that there is currently no connection between the individual products in the bundle and the bundle product itself. </p><p>As this bundle is based on mixing together a group of other distinct products, we now need to bring in an app to keep inventory in sync.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://christopherdodd.com/content/images/2020/08/Bundles-App.png" class="kg-image" alt="How to implement Bundles in Shopify"><figcaption>Inside the 'Bundles' App (product names have been obscured to protect privacy)</figcaption></figure><p>The app pictured above is called '<a href="https://apps.shopify.com/bundles">Bundles</a>', an app that touts itself as "<em>The easiest way to keep inventory in sync when selling bundles</em>" (indeed, from my experience, this app appears to do the job without any extra complications).</p><p>As you can see from the screenshot above, the inventory for the bundle is set to 3379 which is equal to the lowest stock level of the three products that make up the bundle.</p><p>This simple math makes sense. If the stock level of any product reaches zero, the bundle's stock level will also become zero and therefore, it won't be able to be purchased.</p><p>Conversely, when the bundle product itself is purchased, then the stock level of each of the linked products will be reduced as well (in this case by one each).</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://christopherdodd.com/content/images/2020/08/Bundles-App-2.png" class="kg-image" alt="How to implement Bundles in Shopify"><figcaption>An example inside 'Bundles' of a multiple quantity item</figcaption></figure><p>In the case that there are multiple of the same product in the bundle (as in the screenshot above) then the inventory of the bundle will be set to the stock level of those products divided by the quantity of that product in the bundle.</p><p>In the example above, 2 of Product XYZ are included in the bundle and therefore, this bundle will sell out when either the freebie sells out or when there is less than 2 of Product XYZ available.</p><p>Essentially, this app will ensure that the bundle product and its individual included products' inventories remain synced. </p><p>The bundles app also works for multi-variant products, so if you'd like to create a customisable bundle (limited to 3 options), you can sync variant stock to individual products as well using this app.</p><h2 id="bundling-products-at-checkout">Bundling products at checkout</h2><p>For situations where the intention is to increase AOV by encouraging customers to buy a greater number of products, you might offer a discount on the group of products.</p><p>Unlike the previous example where the bundle was a distinct product in itself with specific inclusions, this is more of a '<em>bundle and save</em>' marketing message.</p><p>In this case, the emphasis is on the discount which needs to be automatically applied at checkout.</p><p>To create an automatic discount, you may not require an app as automatic discounts can be added in the Shopify admin (like in t<a href="https://help.shopify.com/en/manual/discounts/automatic-discounts">his tutorial</a>).</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://christopherdodd.com/content/images/2020/08/Shopify-automatic-discounts.png" class="kg-image" alt="How to implement Bundles in Shopify"><figcaption>Where to access Automatic discounts within the Shopify admin</figcaption></figure><p>Using this feature, you can create percentage, fixed amount, or buy X get Y automatic discounts - no app required.</p><p>But of course, this is limited.</p><p>With this feature, you can only apply the discount to specific products, products within a collection or the entire order.</p><p>For anything else, you'll need an app.</p><p>As previously mentioned, there are over 30 different apps on <a href="https://apps.shopify.com/browse/sales-and-conversion-optimization-product-bundling">the Shopify App Store</a> to choose from and each seem to work differently.</p><p><a href="https://apps.shopify.com/bundlebuilder">Bundle Builder</a> for instance, is an app that allows your customers to create fully customisable bundles. You create a product page in Shopify that gets hijacked by the app, giving the user a selection of products to choose from. </p><p>At checkout the individual products are what gets added to the cart but with a discount that the customer might not have received otherwise.</p><p><a href="https://apps.shopify.com/product-bundles">Bold Bundles</a> is another option that claims to be "The Original Bundle App". With this app, you can set up more complex discounts compared to what you can do with just the Shopify admin such as Buy One Get One - a certain percentage off. You can also present  'Frequently Bought Together' products together or just bundle together specific products.</p><p>These are two examples that might help you to achieve your goals with bundling.</p><p>Needless to say, I always recommend against using apps if you can get away with it. </p><p>It's not just about the cost and tech bloat. </p><p>Often these apps are a major abstraction from what the Shopify platform can do normally and will follow a different development paradigm to the way the store is intended to be used.</p><p>To me, the first example in this article is the cleanest but what are your thoughts?</p><p><em>Do you run<em><em> a Shopify store? What solution are you currently running to </em></em>bundle products (if any)?</em></p><p>Remember, if you need any help with your Shopify theme development needs, <a href="https://www.linkedin.com/in/christopherrdodd/">send me a message on LinkedIn</a> and let's chat about it!</p><p>Until next time,</p><p>Chris</p>]]></content:encoded></item><item><title><![CDATA[Collection Filtering in Shopify: How it Works]]></title><description><![CDATA[<p>In 2018, a Shopify forum member <a href="https://community.shopify.com/c/Shopify-Discussion/Size-and-Color-filter/td-p/445400">asked a simple question</a>: </p><blockquote>"Size and Color Filter: Is it really true that this (seemingly simple, and very important) feature is NOT a part of Shopify as a basic part of the build?"</blockquote><p>To which Ann from Shopify responded:</p><blockquote>"You're right, at this time,</blockquote>]]></description><link>https://christopherdodd.com/shopify-collection-filtering/</link><guid isPermaLink="false">5eab68c1b9ab8f4f53482f0b</guid><category><![CDATA[Shopify]]></category><category><![CDATA[Collection filtering]]></category><category><![CDATA[Product Organisation]]></category><dc:creator><![CDATA[Christopher Dodd]]></dc:creator><pubDate>Wed, 06 May 2020 00:10:46 GMT</pubDate><media:content url="https://christopherdodd.com/content/images/2020/05/Shopify-Collection-Filter-Cover-1.png" medium="image"/><content:encoded><![CDATA[<img src="https://christopherdodd.com/content/images/2020/05/Shopify-Collection-Filter-Cover-1.png" alt="Collection Filtering in Shopify: How it Works"><p>In 2018, a Shopify forum member <a href="https://community.shopify.com/c/Shopify-Discussion/Size-and-Color-filter/td-p/445400">asked a simple question</a>: </p><blockquote>"Size and Color Filter: Is it really true that this (seemingly simple, and very important) feature is NOT a part of Shopify as a basic part of the build?"</blockquote><p>To which Ann from Shopify responded:</p><blockquote>"You're right, at this time, a filter like this isn't something that is built into the native Shopify platform."</blockquote><p>The Shopify staff member then suggested the use of an app to which the forum member wasn't happy about.</p><p>Indeed, you too might be wondering why an app is required to filter by something as simple as size and colour.</p><p>Well, in order to filter a product (or variant) by a certain attribute in Shopify, we need a way of storing that attribute on the product (or variant) object.</p><p>As you'll read in this article however, we can utilise the power of <em>tags </em>in Shopify to achieve this aim of filtering by attributes like size and colour without the use of an app.</p><p>It all starts with how we set up our product organisation.</p><h2 id="product-organisation-in-shopify">Product Organisation in Shopify</h2><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://christopherdodd.com/content/images/2020/05/Shopify-Product-Organisation-1.png" class="kg-image" alt="Collection Filtering in Shopify: How it Works"><figcaption>Product Organisation options in Shopify</figcaption></figure><p>Shopify provides just 4 ways to organise your products which are <em>type</em>, <em>vendor</em>, <em>collections</em> and <em>tags</em>.</p><p>Each product can only have one <em>type</em> and one <em>vendor</em> but can have multiple tags and be a part of multiple collections.</p><p><strong><em>Collections </em></strong>are the primary way that the Shopify platform encourages you to organise your products. These can be populated manually (by selecting the specific product you want to be included) or automatically based on certain conditions.</p><p>Collections need to be set up in the Shopify admin before a product can be added to them, which in turn automatically produces a collection page on your Shopify website for that collection.</p><p><strong><em>Tags </em></strong>on the other hand are much more fluid. They aren't objects in and of themselves like collections and can be thought of more as labels that you can throw on products.</p><p>Using tags, you can create automatic collections (based on the tags) and filter products within a collection by adding url parameters after the collection address (we'll look at this in just a second).</p><p>The other two, <em><strong>type</strong> </em>and<em> <strong>vendor</strong> </em>operate virtually the same and are used primarily for display only.</p><h2 id="standard-collection-filtering-in-shopify">Standard collection filtering in Shopify</h2><p>Now that you've organised your products by the collections, tags, types and vendor, we can now filter a collection view by adding url parameters.</p><p>Using the example above (in the screenshot), we can start by looking at the specific collection (in this case, the <em>womens</em> collection) by appending <em>/collections/womens</em> to the end of our url.</p><p>We can then filter down further via tags by adding a slash (/)  followed by the list of tags separated by a plus (+).</p><p>For example, if we had products tagged with <em>red </em>and <em>slim </em>in the <em>womens</em> collection, we could filter that collection view using the following url structure</p><p><em> /collections/womens/red+slim</em></p><p>Using this url structure, the collection template (which renders all collection pages) automatically removes all products from the view that do not carry the list of tags specified.</p><p>The collection template also has a special variable called <em>current_tags </em>which provides the the list of tags currently applied as well as <em>link_to_add_tag </em>and <em>link_to_remove_tag</em> which automatically take the current list of tags in the url and add to / remove from it. </p><p>To see this action, <a href="https://debut-theme-default.myshopify.com/collections/all/">check out the demo for Shopify's standard <em>Debut theme.</em></a></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://christopherdodd.com/content/images/2020/05/debut-theme-filter-by-tags.gif" class="kg-image" alt="Collection Filtering in Shopify: How it Works"><figcaption>Filtering the 'All' collection via tags (Shopify Debut theme)</figcaption></figure><p>In the above animated gif, you can see there is a simple dropdown containing all of the tags that exist on the products within the 'All' collection. When the user makes a selection, that tag is then applied to the url (not shown) and the collection page is refreshed, showing only the products that are tagged with that particular tag.</p><p>The problem with this simple example however, is that the tags represent different attributes. There are tags for product dimensions ( 11", 13", 15" ), there are tags for colours ( "black") and there are tags for other attributes like "Convertible" and "Crossbody".</p><p>What could make for a much nicer user experience might be to separate those tags out into groups so that we can select a size and colour separately.</p><h2 id="grouping-tags-together">Grouping tags together</h2><p>Certain themes (such as <a href="https://outofthesandbox.com/collections/turbo-theme">Turbo</a>) have a feature built-in to create tag groups via the theme customiser.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://christopherdodd.com/content/images/2020/05/multi-tag-filter-style-filter-tags-added.png" class="kg-image" alt="Collection Filtering in Shopify: How it Works"><figcaption>Example: Grouping a tag filter in the theme customiser</figcaption></figure><p>This is one possibility that can be built into any theme but there are a few considerations.</p><ol><li><strong>All tags must be unique to a particular attribute</strong>. For example, if you had two colour groups (perhaps one for <em>fill </em>and one for <em>trim</em>) and <em>red </em>was a possibility for both.</li><li><strong>When adding a new tag, a second step is required to add it to a group. </strong></li></ol><p>Instead, what could be a better approach is to prefix the tag with the attribute that it belongs too. So...</p><!--kg-card-begin: html--><table width="100%">
    <tr><td>red</td><td><em>becomes...</em></td><td>colour:red</td></tr>
    <tr><td>large</td><td><em>becomes...</em></td><td>size:large</td></tr>
    <tr><td>mat wash</td><td><em>becomes...</em></td><td>style:mat wash</td></tr>
</table><!--kg-card-end: html--><p>The warning with this approach is that <strong>you'll no longer be able to output tags verbatim to the front-end anymore</strong> (unless of course you don't mind the prefix being shown to the end user).</p><p>The prefix is not intended to be seen. It just provides the ability for the theme developer to group tags with the same attribute together.</p><p>Regardless of which grouping approach you take, the end result becomes something like this:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://christopherdodd.com/content/images/2020/05/multi-tag-portland-min.gif" class="kg-image" alt="Collection Filtering in Shopify: How it Works"><figcaption>Multi-Tag Filter demo on the <a href="https://turbo-theme.myshopify.com/?ref=out-of-the-sandbox">Turbo Portland</a> theme</figcaption></figure><h2 id="advanced-collection-filtering">Advanced collection filtering</h2><p>Tags are of course, the recommended approach to filtering in Shopify but you might be curious as to what else we could use to filter results.</p><p>Theoretically, we could target (and therefore filter via) any attribute on the product object and nested variant objects.</p><p>The full list of attributes for the product and variant objects are listed on <a href="https://shopify.dev/docs/themes/liquid/reference">Shopify's Liquid reference</a> however I would warn against getting too tricky here.</p><p>For requirements like filtering by size and colour, we can easily use tags and build a simple prefix reader into the theme code. That way we take advantage of the inherent filtering abilities of tags.</p><p>Using more complex Liquid code, we could create filters based on other attributes like vendor, product type or even price. The issue is that without the use of the url parameters, <strong><em>how will the collection template know when and what to filter?</em></strong></p><p>The alternative here is to use Javascript. </p><p>In fact, most filtering apps you'll find on the Shopify app store use Javascript (not Liquid) to operate.</p><p>Utilising Javascript (instead of Liquid) provides two benefits:</p><ol><li>AJAX filtering - meaning no page refresh when updating filters, and</li><li>The possibility to accept user input without relying on URL parameters</li></ol><p>In fact, Javascript is near infinite in its capabilities compared with <a href="https://www.shopify.com.au/partners/blog/115244038-an-overview-of-liquid-shopifys-templating-language">Shopify Liquid</a> which has been built to be simple and work in a certain way.</p><p>The problem with using Javascript however is that it doesn't have direct access to theme/store data like Shopify Liquid does.</p><p>This is where it starts to get tricky.</p><h2 id="javascript-filtering">Javascript filtering</h2><p>If <a href="https://www.shopify.com.au/partners/blog/115244038-an-overview-of-liquid-shopifys-templating-language">Shopify Liquid</a> is too limiting you might opt for a Javascript filtering solution.</p><p>Javascript filtering is not a standard feature of Shopify themes and therefore, it will require development to both access the necessary data, accept user input and then apply that input to filtering the collection of products.</p><p>In terms of accessing data, the simplest way of exposing the necessary product data to the front-end (so that Javascript can use it) is by using <a href="https://shopify.dev/docs/themes/liquid/reference/filters/additional-filters#json">the JSON filter in Shopify Liquid</a>, which will take any Shopify object and turn it into a JSON one.</p><p>You can then load the JSON object for each product into a Javascript array and use that as your product list.</p><p>After that, you'll of course need to set up event listeners to run the filters on your array of products and update the page.</p><p>As you might have noticed, this is much more laborious compared to using the standard Shopify filtering system.</p><p>This is why it's very common to use an app.</p><p>An app like <a href="https://apps.shopify.com/product-filter-search">Product Filter &amp; Search by BoostCommerce</a> provides all of this functionality without having to write any Javascript code.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://christopherdodd.com/content/images/2020/05/product-filtering.gif" class="kg-image" alt="Collection Filtering in Shopify: How it Works"><figcaption>Filtering Demo using Product Filter &amp; Search</figcaption></figure><p>If you take a look under the hood, you'll see that there is a lot going on with this app.</p><p>Each time a selection is made, an API request is shot off to an external server which returns the new array of products. </p><p>Note the words "<em>external server</em>".</p><p>The filtering is no longer happening on the actual Shopify store. Instead, the data is "synced" to an API and a user interface is built into the theme in order to interact with this API.</p><p>This is not necessarily a problem until you wish to heavily customise the collection page but regardless, it involves a heavy abstraction away from the Shopify platform itself.</p><h2 id="general-recommendations">General Recommendations</h2><p>When it comes to filtering collections in Shopify, my recommendation is to simply use tags.</p><p>Using tags is the native way to filter products and as you've seen in this article, we can expand our tag names with prefixes, allowing us to group together filtering options by attribute.</p><p>Of course, if you need something a little more fancy, you can go with an app but this will complicate things.</p><p>I've experienced first-hand the drama of adding custom features to a collection page managed by an app.</p><p>So if you can get away without using app, I'd definitely recommend doing so.</p><p><em>Do you run<em><em> a Shopify store? What solution are you currently running to filter products? Let me know your thoughts on using standard filtering over an app (or vice versa)</em></em></em></p><p>Remember, if you need any help with your Shopify theme development needs, <a href="https://www.linkedin.com/in/christopherrdodd/">send me a message on LinkedIn</a> and let's chat about it!</p><p>Until next time,</p><p>Chris</p>]]></content:encoded></item><item><title><![CDATA[Using Git with Shopify: Version control best practices]]></title><description><![CDATA[<!--kg-card-begin: html--><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">💡</div><div class="kg-callout-text"><strong>Important update</strong><br>As of June 30 2021, Shopify now have a direct integration with Github. <br><a href="https://www.youtube.com/watch?v=72TSwHEhfDs" target="_blank">Watch this video for details.</a></div></div><!--kg-card-end: html--><p>By default, the Shopify platform does not encourage the use of Git or any other version control systems when editing front-end (theme) code.</p><p>Instead the platform allows you to edit</p>]]></description><link>https://christopherdodd.com/git-with-shopify/</link><guid isPermaLink="false">5ea7b7cdb9ab8f4f53482b77</guid><category><![CDATA[Shopify]]></category><category><![CDATA[Shopify Themes]]></category><category><![CDATA[Git]]></category><category><![CDATA[Version Control]]></category><dc:creator><![CDATA[Christopher Dodd]]></dc:creator><pubDate>Thu, 30 Apr 2020 01:23:35 GMT</pubDate><media:content url="https://christopherdodd.com/content/images/2020/04/Using-Git-with-Shopify-Cover.png" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: html--><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">💡</div><div class="kg-callout-text"><strong>Important update</strong><br>As of June 30 2021, Shopify now have a direct integration with Github. <br><a href="https://www.youtube.com/watch?v=72TSwHEhfDs" target="_blank">Watch this video for details.</a></div></div><!--kg-card-end: html--><img src="https://christopherdodd.com/content/images/2020/04/Using-Git-with-Shopify-Cover.png" alt="Using Git with Shopify: Version control best practices"><p>By default, the Shopify platform does not encourage the use of Git or any other version control systems when editing front-end (theme) code.</p><p>Instead the platform allows you to edit code directly from within the Shopify admin.</p><p>This is problematic for two reasons:</p><ol><li>The Shopify theme code editor is not the best IDE for efficient web development, and</li><li>Its own version control system is incredibly basic</li></ol><p>Most agencies I work with have already set up a system for managing their clients' theme code with Git but for those less technical agencies, it is sometimes missed.</p><p>It is my recommendation that - except for situations involving very minor code changes - Git should be used on every project.</p><p>In this article, we'll take a look at why that is and how development teams can use Git to get a grasp on theme code.</p><h2 id="a-look-at-theme-development-without-git">A look at theme development without Git</h2><p>Without using Git or any additional tools, the basic workflow involves making edits directly to theme code via the code editor in your store's admin area.</p><p>As mentioned, this is problematic for a couple of reasons, the most important being that it offers little in the way of tracing errors in the development process and rolling back changes.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://christopherdodd.com/content/images/2020/04/Theme-code-editor-1.gif" class="kg-image" alt="Using Git with Shopify: Version control best practices"><figcaption>The extent of version control inside the Shopify theme editor</figcaption></figure><p>The above gif demonstrates the extent of the version control system inside the Shopify theme editor.</p><p>When you make a change to your file and hit 'Save', it saves the previous version for you, allowing you to revert back to that version.</p><p>This is handy when you make an error on a particular file and want to revert it back to a working version but there are a lot of limitations to this approach.</p><ol><li>Version control is individual to each file, meaning that if you make a theme code change across multiple files, you'll need to determine which files you need to revert and revert them individually.</li><li>No diff checking. The editor simply reverts the whole file without showing which part of the code has changed.</li></ol><p>By comparison, Git is near infinite in its capabilities to store multiple versions of a code base, check differences between them and merge them together.</p><p>The only downside is that you need to setup a repository yourself and ensure that the code remains up to date.</p><h2 id="a-better-development-workflow-with-git">A better development workflow with Git</h2><p>While the basic workflow is ok for minor changes, a better development workflow is to download the code locally and use a proper code editor (or IDE).</p><p>This is required in order to use Git as it's not possible to run Git through Shopify's own proprietary code editor.</p><p>The best way to do this is with a command-line tool from Shopify called <a href="https://shopify.github.io/themekit/">Theme Kit</a> which allows you to download your theme code, make changes locally and sync those changes with your Shopify website.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://christopherdodd.com/content/images/2020/04/Gif-themekit-optimised.gif" class="kg-image" alt="Using Git with Shopify: Version control best practices"><figcaption>Developing locally with Themekit</figcaption></figure><p>Developers then ensure that the code is synced across their local environment, the production environment (ie. the theme code as it sits on the store) and the code contained in Git.</p><h2 id="git-setup-and-maintenance">Git setup and maintenance</h2><p>To get started with Git, a centralised repository is created for each project.</p><p>Initially a developer will download the theme code and commit that code to the <strong>master</strong> branch of the repository.</p><p>In a typical setup, the <strong>master </strong>branch represents the code that is currently running on the website, which in the case of Shopify theme development, is the code of the currently live theme.</p><p>At this point, a second <strong>staging </strong>branch should be created that reflects the code on the most up-to-date theme following the live one.</p><p>In a basic setup, there might be just one "staging" theme that developers are working on. </p><p>In a more complex setup with multiple developers working on the same site, there might be multiple versions of the theme being developed (one for each developer or specific feature being developed).</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://christopherdodd.com/content/images/2020/04/Git-Theme-Syncronisation-expanded.jpg" class="kg-image" alt="Using Git with Shopify: Version control best practices"><figcaption>In this setup, there is a branch for each theme on the store</figcaption></figure><p>Using this one-to-one relationship between themes and branches, we're able to determine which changes have been carried out on which theme.</p><p>The only issue is that this relationship needs to be maintained by a lead developer or project manager.</p><p>For instance, when the staging theme is ready to go live, the staging branch needs to be merged into the master branch (in addition to clicking 'publish' on Shopify).</p><h2 id="switching-to-theme-kit-and-git">Switching to Theme Kit and Git</h2><p>As Git cannot be run inside Shopify's theme code editor, any theme code changes made using this tool need to be manually copied across to the appropriate branch.</p><p>Except for very minor changes, this is completely impractical to maintain.</p><p>The better solution is to use Theme Kit.</p><p>Here's how the process might look:</p><ul><li>When starting on a new project, the developer <em><strong>clones</strong> </em>the repository for the project onto his/her local computer</li><li>If working directly on the staging theme, the developer then <em><strong>checks out</strong></em> the staging branch (remember: both of these should contain the same code), turns on Theme Kit to watch for changes and starts to work on that theme.</li><li>If multiple developers are working on the same project, the developer might <em><strong>branch off of</strong> </em>staging, duplicate the staging theme, connect to the new theme using Theme Kit and then begin work. This then becomes his/her own branch and theme.</li></ul><p>At a certain point, it will become time to consolidate all the code from each developer's individual theme into staging. After <strong><em>merging </em></strong>the branches into staging, it will become out of date with the staging theme and<em><strong> </strong></em>therefore the code in the staging branch will need to be <strong><em>deployed </em></strong>to the staging theme.</p><p>Utilising this approach, it highly recommended that you keep all theme code changes local so that they can automatically be detected using Git. Choosing not to do this increases the likelihood that the theme code will become out of date with Git.</p><h2 id="the-tradeoff">The tradeoff</h2><p>Managing your code base and maintaining synchronisation between themes and branches using Git is a tradeoff.</p><p>It requires ongoing management, checks and balances.</p><p>But as the project grows in complexity, the need to manage your code base using a proper version control system becomes greater.</p><p>For one developer working on a single development theme it might not be so essential but for a project with multiple themes and developers, I'd highly recommend it.</p><p><em><em>What are your thoughts? Do you </em>manage your theme code with Git<em> and if so, what is your experience?</em></em></p><p>Remember, if you need any help with your Shopify theme development needs, <a href="https://www.linkedin.com/in/christopherrdodd/">send me a message on LinkedIn</a> and let's chat about it!</p><p>Until next time,</p><p>Chris</p>]]></content:encoded></item><item><title><![CDATA[Shopify page building apps: When should you use them?]]></title><description><![CDATA[<p>While the world waits for the new Shopify theme paradigm to be released, many merchants are relying on page building apps to build and customise pages on their Shopify stores without the use of code.</p><p>As a developer, I remain skeptical of no-code solutions. True freedom in web development comes</p>]]></description><link>https://christopherdodd.com/shopify-page-building-apps/</link><guid isPermaLink="false">5ea63755b9ab8f4f534827cf</guid><category><![CDATA[Shopify]]></category><category><![CDATA[Shopify Apps]]></category><category><![CDATA[Page Building Apps]]></category><category><![CDATA[Shogun]]></category><dc:creator><![CDATA[Christopher Dodd]]></dc:creator><pubDate>Tue, 28 Apr 2020 01:12:37 GMT</pubDate><media:content url="https://christopherdodd.com/content/images/2020/04/Shopify-Page-Builder-Article-Cover-1.png" medium="image"/><content:encoded><![CDATA[<img src="https://christopherdodd.com/content/images/2020/04/Shopify-Page-Builder-Article-Cover-1.png" alt="Shopify page building apps: When should you use them?"><p>While the world waits for the new Shopify theme paradigm to be released, many merchants are relying on page building apps to build and customise pages on their Shopify stores without the use of code.</p><p>As a developer, I remain skeptical of no-code solutions. True freedom in web development comes from being able to access and update source code.</p><p>Regardless of whether you use <em>sections </em>(which we'll discuss shortly) or a drag and drop editor, the end result is always code. </p><p>Code is always being created behind the scenes and the problem with these apps is they often create code that can not be easily edited directly.</p><p>This is great for most merchants, until of course, they want a very specific change on their website which is not an option inside the page builder.</p><p>In order to figure out when using a page builder might be appropriate, let's look at the current Shopify theme system and compare it to one of the most popular theme building apps on the market today.</p><h2 id="sections-the-building-blocks-of-shopify-themes">Sections: the building blocks of Shopify themes</h2><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://christopherdodd.com/content/images/2020/04/Theme-Customiser.gif" class="kg-image" alt="Shopify page building apps: When should you use them?"><figcaption>Adding a new 'featured product' section to the homepage via the Theme Customiser</figcaption></figure><p>First of all, a little terminology.</p><p>A<em> <strong>theme</strong> </em>in Shopify is the template code that determines the presentation of your website to the end user and <strong><em>t</em></strong><em><strong>heme sections</strong></em> are the core building blocks of the theme. </p><p>The code for each section is self-contained in its own file alongside a configurable list of options which allow merchants the ability to update aspects of the section through the theme customiser. </p><p>These can then be added by the theme developer onto <em>templates </em>which control the presentation of collections, products, content pages and blog posts. </p><p>With the exception of the homepage, where merchants have the ability to add, remove and reorder sections through the theme customiser without diving into the code base, the section needs to be included onto the template using a simple line of code.</p><p>When the new theme system comes out, Shopify promises that the same functionality that currently exists on homepages will be brought onto every template - which will be awesome! - but that of course doesn't change the fact that <em>theme sections </em>and their options are still the deepest level of customisation that merchants will have without digging into the code.</p><p>This is a robust system that works well for merchants who don't mind getting a developer involved from time to time (a worthwhile investment in my opinion 😉) but for the more hands-on merchants, they may consider using a page building app instead.</p><h2 id="building-pages-with-drag-and-drop">Building pages with drag and drop</h2><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://christopherdodd.com/content/images/2020/04/Shogun-Page-Builder-Gif.gif" class="kg-image" alt="Shopify page building apps: When should you use them?"><figcaption>Building a drag and drop product page in Shogun</figcaption></figure><p>In comparison to utilising <em>theme sections, </em>using a page building tool like <a href="https://apps.shopify.com/shogun">Shogun</a> (for instance) provides a visual editor with much more granular control. </p><p>However, there is a cost. </p><p>If you opt out of the standard theme building system, you'll be relying on the app to manage your page code which could cause problems if you do end up reaching the limit of what you can achieve with the tool itself.</p><p>Again, <em>true freedom in web development comes from being able to access and update source code.</em></p><p>I probably don't need to sell you on the benefits of using one of these page building apps (as I'm sure they do a great job themselves) but I do want to warn you of the limitations.</p><p>Let's take the app Shogun for example, with which I have the most experience with.</p><p>In Shogun, once you have exhausted all the customisation options and are still unable to achieve the desired result, there are two options.</p><ol><li>Add a custom class to the element and apply your own CSS to the element, or</li><li>Create a custom element using Liquid, HTML, CSS and Javascript</li></ol><p>If the change is a something as simple as updating a styling option that isn't an option inside the tool (like letter-spacing, alternative font, etc), you can apply your own CSS code to the element through the use of a custom class.</p><p>For elements that require HTML (structural) changes, you can create a 'custom element' in Shogun to which you can add your own customisation options via a rather dumbed-down version of what's available in the theme customiser.</p><p>For those of you reading who want to see this in action, you can watch the following video which covers the basics, all the way through to custom elements.</p><figure class="kg-card kg-embed-card"><iframe width="480" height="270" src="https://www.youtube.com/embed/AUYDya6FNQc?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></figure><p>For the rest of you, let's simply this.</p><h2 id="theme-sections-vs-drag-and-drop">Theme Sections vs Drag and drop</h2><p>So should you use a drag and drop page builder over the standard theme building system?</p><p>Well, it depends.</p><p>For a completely no-code solution, page builders offer much more control than the theme customiser. So, the answer would be yes.</p><p>But if you can invest - even just a little - into using a quality developer, there are certain cases where I wouldn't recommend it.</p><p>For instance...</p><p><strong>For building a store homepage, I would recommend against it.</strong></p><p>As previously mentioned, the homepage is the one template on the Shopify theme where merchants can add, remove and reorder sections through the theme customiser without diving into the code base.</p><p>Often, Shopify homepages are simply a collection of sections stacked on top of one another, the layout of which doesn't change all too often, it's just the content (mainly imagery and text) that gets regularly regularly replaced.</p><p>In this case, I feel the benefits of using theme sections outweigh the benefits of a page builder, unless of course you're looking for a completely no-code solution.</p><p><strong>For customising product pages, I would recommend against it unless it's only for a few select products.</strong></p><p>In order to a fully customise a product page, the page-building app will have to replace the product template with its own code meaning that you will have to create the product page from the ground-up in the page building tool or choose one of their templates.</p><p>If for whatever reason, the product template of your current theme does not meet your requirements, I think it makes the most sense to edit the template directly rather than adding an additional layer.</p><p>That being said, if it's only for a few products that you want a completely custom design, then the page building option starts to make a lot more sense.</p><p><strong>If you're building landing pages, use a page builder app.</strong></p><p>Landing pages are a perfect use case for a page builder because they often need to be created on a regular basis and they are less likely to rely on dynamic store data.</p><p>They also provide many advantages over the standard Shopify wysiwyg editor for content pages, which is what you'd likely be using if not for an app.</p><p><strong>For building content pages, use a page builder if you need.</strong></p><p>For content pages that require a level of design beyond a single column of text and images (like the article you're currently reading) than by all means, utilise a tool like Shogun.</p><h2 id="tl-dr">TL:DR</h2><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://christopherdodd.com/content/images/2020/04/Should-you-use-a-page-builder-In-Shopify.jpg" class="kg-image" alt="Shopify page building apps: When should you use them?"><figcaption>Flowchart for deciding if page builders are a good choice</figcaption></figure><p>While page building tools are great, I've experienced their limitations first-hand.</p><p>From my experience, a page building app seems ideal for busting out regular landing pages but not for creating critical pages on your website that require specific functionality and the use of dynamic content.</p><p><em>What are your thoughts? Do you use a page building app and if so, what is your experience?</em></p><p>Remember, if you need any help with your Shopify theme development needs, <a href="https://www.linkedin.com/in/christopherrdodd/">send me a message on LinkedIn</a> and let's chat about it!</p><p>Until next time,</p><p>Chris</p>]]></content:encoded></item></channel></rss>