<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Graeme T-Gill</title>
    <description>The latest articles on Forem by Graeme T-Gill (@graemetg).</description>
    <link>https://forem.com/graemetg</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F515659%2Feb56e0af-1cc5-41a0-ba03-b8f9c0463084.JPG</url>
      <title>Forem: Graeme T-Gill</title>
      <link>https://forem.com/graemetg</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/graemetg"/>
    <language>en</language>
    <item>
      <title>Ecommerce with Gatsby and Shopify - Getting them to talk to each other</title>
      <dc:creator>Graeme T-Gill</dc:creator>
      <pubDate>Fri, 30 Jul 2021 16:43:37 +0000</pubDate>
      <link>https://forem.com/graemetg/ecommerce-with-gatsby-and-shopify-getting-them-to-talk-to-each-other-3n2b</link>
      <guid>https://forem.com/graemetg/ecommerce-with-gatsby-and-shopify-getting-them-to-talk-to-each-other-3n2b</guid>
      <description>&lt;p&gt;Gatsby is an open source frontend framework for creating dynamic, optimised websites and Shopify is an e-commerce platform for online stores. So how can you connect the two?&lt;/p&gt;

&lt;p&gt;Well I had a little trouble at first getting Gatsby and Shopify to talk to each other but I got it to work in the end - here is how I did it.&lt;/p&gt;

&lt;p&gt;In summary it turned out that I was using some out of date instructions. I won't go into how it didn't work but will cover what I did in the end to get it to work.&lt;/p&gt;

&lt;p&gt;After contacting Gatsby support I received this reply -&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;It looks like you may be viewing documentation for the old version of gatsby-source-shopify. Here is the new plugin and documentation: &lt;a href="https://github.com/gatsbyjs/gatsby-source-shopify" rel="noopener noreferrer"&gt;https://github.com/gatsbyjs/gatsby-source-shopify&lt;/a&gt;&lt;br&gt;
Make sure to install the new one following the directions there!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  Create a new Gatsby site
&lt;/h3&gt;

&lt;p&gt;Before you follow these instructions you need to set up a basic Gatsby site.&lt;/p&gt;

&lt;p&gt;In a terminal window in your projects directory run this command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="nx"&gt;npm&lt;/span&gt; &lt;span class="nx"&gt;init&lt;/span&gt; &lt;span class="nx"&gt;gatsby&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Enter a name for your site and what you would like to name the folder where your site will be created.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fdydjzhdb7%2Fimage%2Fupload%2Fv1627655243%2FBlogs%2Fgraemetg-web-blog-5%2FScreenshot_2021-06-13_at_11.32.34_zsrcwt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fdydjzhdb7%2Fimage%2Fupload%2Fv1627655243%2FBlogs%2Fgraemetg-web-blog-5%2FScreenshot_2021-06-13_at_11.32.34_zsrcwt.png" title="Screenshot 1" alt="Screenshot 1" width="800" height="343"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now answer No (or I'll add it later) to the next question 'Will you be using a CMS?' Seems a little unintuitive as you will be using Shopify later but for now choose No.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fdydjzhdb7%2Fimage%2Fupload%2Fv1627655243%2FBlogs%2Fgraemetg-web-blog-5%2FScreenshot_2021-06-13_at_11.32.57_b1cur1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fdydjzhdb7%2Fimage%2Fupload%2Fv1627655243%2FBlogs%2Fgraemetg-web-blog-5%2FScreenshot_2021-06-13_at_11.32.57_b1cur1.png" title="Screenshot 2" alt="Screenshot 2" width="800" height="435"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next choose No (or I'll add it later) for 'Would you like to install a styling system?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fdydjzhdb7%2Fimage%2Fupload%2Fv1627655243%2FBlogs%2Fgraemetg-web-blog-5%2FScreenshot_2021-06-13_at_11.40.39_aj9lvm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fdydjzhdb7%2Fimage%2Fupload%2Fv1627655243%2FBlogs%2Fgraemetg-web-blog-5%2FScreenshot_2021-06-13_at_11.40.39_aj9lvm.png" title="Screenshot 3" alt="Screenshot 3" width="800" height="465"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For the next question I only chose 'Add responsive images' but I'm assuming it is safe to choose other options. Choose your options and scroll down to select Done.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fdydjzhdb7%2Fimage%2Fupload%2Fv1627655243%2FBlogs%2Fgraemetg-web-blog-5%2FScreenshot_2021-06-13_at_11.58.55_tnoylf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fdydjzhdb7%2Fimage%2Fupload%2Fv1627655243%2FBlogs%2Fgraemetg-web-blog-5%2FScreenshot_2021-06-13_at_11.58.55_tnoylf.png" title="Screenshot 4" alt="Screenshot 4" width="800" height="445"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You should then see this - choose Yes and go.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fdydjzhdb7%2Fimage%2Fupload%2Fv1627655243%2FBlogs%2Fgraemetg-web-blog-5%2FScreenshot_2021-06-13_at_12.00.58_wrolbl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fdydjzhdb7%2Fimage%2Fupload%2Fv1627655243%2FBlogs%2Fgraemetg-web-blog-5%2FScreenshot_2021-06-13_at_12.00.58_wrolbl.png" title="Screenshot 5" alt="Screenshot 5" width="800" height="432"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Gatsby will go ahead and install&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fdydjzhdb7%2Fimage%2Fupload%2Fv1627655243%2FBlogs%2Fgraemetg-web-blog-5%2FScreenshot_2021-06-13_at_12.05.49_akqsmx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fdydjzhdb7%2Fimage%2Fupload%2Fv1627655243%2FBlogs%2Fgraemetg-web-blog-5%2FScreenshot_2021-06-13_at_12.05.49_akqsmx.png" title="Screenshot 6" alt="Screenshot 6" width="800" height="213"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If all goes well you should see something like this once Gatsby has installed&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fdydjzhdb7%2Fimage%2Fupload%2Fv1627655245%2FBlogs%2Fgraemetg-web-blog-5%2FScreenshot_2021-06-13_at_12.07.14_cmd3qf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fdydjzhdb7%2Fimage%2Fupload%2Fv1627655245%2FBlogs%2Fgraemetg-web-blog-5%2FScreenshot_2021-06-13_at_12.07.14_cmd3qf.png" title="Screenshot 7" alt="Screenshot 7" width="800" height="516"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="c1"&gt;// cd into your project directory. Start the new Gatsby site &lt;/span&gt;
&lt;span class="nx"&gt;cd&lt;/span&gt; &lt;span class="nx"&gt;gatsby&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;shopify&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;site&lt;/span&gt;

&lt;span class="c1"&gt;// Start the development server&lt;/span&gt;
&lt;span class="nx"&gt;npm&lt;/span&gt; &lt;span class="nx"&gt;run&lt;/span&gt; &lt;span class="nx"&gt;develop&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fdydjzhdb7%2Fimage%2Fupload%2Fv1627655244%2FBlogs%2Fgraemetg-web-blog-5%2FScreenshot_2021-06-14_at_15.49.23_k8imvb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fdydjzhdb7%2Fimage%2Fupload%2Fv1627655244%2FBlogs%2Fgraemetg-web-blog-5%2FScreenshot_2021-06-14_at_15.49.23_k8imvb.png" title="Screenshot 8" alt="Screenshot 8" width="800" height="513"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I had something else running at port 8000 so it gave me the option to use 8001 but you should be able to run your site at port 8000&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fdydjzhdb7%2Fimage%2Fupload%2Fv1627655244%2FBlogs%2Fgraemetg-web-blog-5%2FScreenshot_2021-06-14_at_15.55.48_d2uph1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fdydjzhdb7%2Fimage%2Fupload%2Fv1627655244%2FBlogs%2Fgraemetg-web-blog-5%2FScreenshot_2021-06-14_at_15.55.48_d2uph1.png" title="Screenshot 9" alt="Screenshot 9" width="800" height="509"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At &lt;a href="http://localhost:8001" rel="noopener noreferrer"&gt;http://localhost:8001&lt;/a&gt; I can see my Gatsby site (yours should be at &lt;a href="http://localhost:8000" rel="noopener noreferrer"&gt;http://localhost:8000&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fdydjzhdb7%2Fimage%2Fupload%2Fv1627655243%2FBlogs%2Fgraemetg-web-blog-5%2FScreenshot_2021-06-14_at_15.56.49_hu6ltu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fdydjzhdb7%2Fimage%2Fupload%2Fv1627655243%2FBlogs%2Fgraemetg-web-blog-5%2FScreenshot_2021-06-14_at_15.56.49_hu6ltu.png" title="Screenshot 10" alt="Screenshot 10" width="638" height="727"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now exit the site by running control X C on a mac in your terminal. This should take you back to the command prompt&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fdydjzhdb7%2Fimage%2Fupload%2Fv1627655245%2FBlogs%2Fgraemetg-web-blog-5%2FScreenshot_2021-06-14_at_16.00.23_whzchb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fdydjzhdb7%2Fimage%2Fupload%2Fv1627655245%2FBlogs%2Fgraemetg-web-blog-5%2FScreenshot_2021-06-14_at_16.00.23_whzchb.png" title="Screenshot 11" alt="Screenshot 11" width="800" height="110"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Install this plugin to your Gatsby site&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="nx"&gt;npm&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="nx"&gt;gatsby&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;source&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;shopify&lt;/span&gt;&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;rc&lt;/span&gt; &lt;span class="nx"&gt;gatsby&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;plugin&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;image&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then you need to add the plugin to your gatsby-config.js file&lt;/p&gt;

&lt;p&gt;gatsby-config.js is at the root of your project &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fdydjzhdb7%2Fimage%2Fupload%2Fv1627655244%2FBlogs%2Fgraemetg-web-blog-5%2FScreenshot_2021-06-14_at_16.06.15_cmxbfu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fdydjzhdb7%2Fimage%2Fupload%2Fv1627655244%2FBlogs%2Fgraemetg-web-blog-5%2FScreenshot_2021-06-14_at_16.06.15_cmxbfu.png" title="Screenshot 12" alt="Screenshot 12" width="800" height="516"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Add the plugin using this code&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;dotenv&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;config&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;exports&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;plugins&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;resolve&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;gatsby-source-shopify&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;options&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;apiKey&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;SHOPIFY_ADMIN_API_KEY&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;password&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;SHOPIFY_ADMIN_PASSWORD&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;storeUrl&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;SHOPIFY_STORE_URL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;gatsby-plugin-image&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;],&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Your gatsby-config.js should now look like this&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fdydjzhdb7%2Fimage%2Fupload%2Fv1627655241%2FBlogs%2Fgraemetg-web-blog-5%2FScreenshot_2021-06-14_at_16.12.01_neyxb0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fdydjzhdb7%2Fimage%2Fupload%2Fv1627655241%2FBlogs%2Fgraemetg-web-blog-5%2FScreenshot_2021-06-14_at_16.12.01_neyxb0.png" title="Screenshot 13" alt="Screenshot 13" width="800" height="656"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here is the code for the above&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;dotenv&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;config&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;exports&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;siteMetadata&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Gatsby Shopify Site&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="na"&gt;plugins&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;gatsby-plugin-sharp&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;gatsby-transformer-sharp&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;resolve&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;gatsby-source-filesystem&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;options&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;images&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;path&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;./src/images/&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="p"&gt;},&lt;/span&gt;
      &lt;span class="na"&gt;__key&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;images&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;resolve&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;gatsby-source-shopify&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;options&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;apiKey&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;SHOPIFY_ADMIN_API_KEY&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;password&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;SHOPIFY_ADMIN_PASSWORD&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;storeUrl&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;SHOPIFY_STORE_URL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;gatsby-plugin-image&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;],&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  How to connect to Shopify and retrieve the information
&lt;/h3&gt;

&lt;p&gt;Create a trial Shopify account or of course use your existing account.&lt;/p&gt;

&lt;p&gt;To connect Gatsby to Shopify you need to provide the -&lt;/p&gt;

&lt;p&gt;SHOPIFY_ADMIN_API_KEY&lt;/p&gt;

&lt;p&gt;SHOPIFY_ADMIN_PASSWORD&lt;/p&gt;

&lt;p&gt;SHOPIFY_STORE_URL&lt;/p&gt;

&lt;p&gt;Find this information in the Shopify admin.&lt;/p&gt;

&lt;p&gt;Navigate to the Apps page on Shopify -&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fdydjzhdb7%2Fimage%2Fupload%2Fv1627655241%2FBlogs%2Fgraemetg-web-blog-5%2FScreenshot_2021-06-14_at_19.58.33_bzfzjv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fdydjzhdb7%2Fimage%2Fupload%2Fv1627655241%2FBlogs%2Fgraemetg-web-blog-5%2FScreenshot_2021-06-14_at_19.58.33_bzfzjv.png" title="Screenshot 14" alt="Screenshot 14" width="239" height="372"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click on Manage Private Apps&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fdydjzhdb7%2Fimage%2Fupload%2Fv1627655241%2FBlogs%2Fgraemetg-web-blog-5%2FScreenshot_2021-06-14_at_20.07.46_uyznxr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fdydjzhdb7%2Fimage%2Fupload%2Fv1627655241%2FBlogs%2Fgraemetg-web-blog-5%2FScreenshot_2021-06-14_at_20.07.46_uyznxr.png" title="Screenshot 15" alt="Screenshot 15" width="800" height="230"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click on 'Create new private app' button&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fdydjzhdb7%2Fimage%2Fupload%2Fv1627655244%2FBlogs%2Fgraemetg-web-blog-5%2FScreenshot_2021-06-14_at_20.13.28_fqq8rg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fdydjzhdb7%2Fimage%2Fupload%2Fv1627655244%2FBlogs%2Fgraemetg-web-blog-5%2FScreenshot_2021-06-14_at_20.13.28_fqq8rg.png" title="Screenshot 16" alt="Screenshot 16" width="800" height="42"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Add a name (this is not important) and email address&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fdydjzhdb7%2Fimage%2Fupload%2Fv1627655241%2FBlogs%2Fgraemetg-web-blog-5%2FScreenshot_2021-06-14_at_20.17.37_cn6lpx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fdydjzhdb7%2Fimage%2Fupload%2Fv1627655241%2FBlogs%2Fgraemetg-web-blog-5%2FScreenshot_2021-06-14_at_20.17.37_cn6lpx.png" title="Screenshot 17" alt="Screenshot 17" width="800" height="221"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Open up the &lt;code&gt;Active Permissions For This App&lt;/code&gt; section and set Products, Product listings and Orders to Read Access&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Read access&lt;/code&gt; for &lt;code&gt;Products&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Read access&lt;/code&gt; for &lt;code&gt;Product listings&lt;/code&gt; if you want to use Shopify's Product Collections in your Gatsby site&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Read access&lt;/code&gt; for &lt;code&gt;Orders&lt;/code&gt; if you want to use order information in your Gatsby site&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fdydjzhdb7%2Fimage%2Fupload%2Fv1627655241%2FBlogs%2Fgraemetg-web-blog-5%2FScreenshot_2021-06-14_at_20.32.05_v1agiy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fdydjzhdb7%2Fimage%2Fupload%2Fv1627655241%2FBlogs%2Fgraemetg-web-blog-5%2FScreenshot_2021-06-14_at_20.32.05_v1agiy.png" title="Screenshot 18" alt="Screenshot 18" width="643" height="463"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click the Save button and then click Create app to create your Private Shopify App. From there you can copy the API Key and Password from the Private app page and add them to your environment file for SHOPIFY_ADMIN_API_KEY and SHOPIFY_ADMIN_PASSWORD respectively.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fdydjzhdb7%2Fimage%2Fupload%2Fv1627655241%2FBlogs%2Fgraemetg-web-blog-5%2FScreenshot_2021-06-14_at_20.36.41_yu24gh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fdydjzhdb7%2Fimage%2Fupload%2Fv1627655241%2FBlogs%2Fgraemetg-web-blog-5%2FScreenshot_2021-06-14_at_20.36.41_yu24gh.png" title="Screenshot 19" alt="Screenshot 19" width="800" height="296"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When the private app has been created on the next page you should see your API Key and Password. These are the two things you need to add to your environment along with your store URL.&lt;/p&gt;

&lt;h3&gt;
  
  
  Create your .env file
&lt;/h3&gt;

&lt;p&gt;In the root of your project create the hidden file .env to store your private access keys and add the API Key, password and store URL to this file&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="nx"&gt;SHOPIFY_ADMIN_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=*******************************&lt;/span&gt;
&lt;span class="nx"&gt;SHOPIFY_ADMIN_PASSWORD&lt;/span&gt;&lt;span class="o"&gt;=************************************&lt;/span&gt;
&lt;span class="nx"&gt;SHOPIFY_STORE_URL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;yourstorename&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;myshopify&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;com&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The .env file is referenced by adding require("dotenv").config(); at the top of gatsby-config.js&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;dotenv&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;config&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You should now see the additional Shopify fields showing up in your GraphQL playground at -&lt;/p&gt;

&lt;p&gt;&lt;a href="http://localhost:8001/___graphql" rel="noopener noreferrer"&gt;http://localhost:8001/___graphql&lt;/a&gt; (or of course for you it is likely to be at &lt;a href="http://localhost:8000/___graphql" rel="noopener noreferrer"&gt;http://localhost:8000/___graphql&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Apologies that I don't have screenshots for this final part but when I returned to create them my trial period with Shopify had come to an end.&lt;/p&gt;

&lt;p&gt;By the way if you need some extra time to develop your site and your trial period has come to an end (14 days I believe) it's worth asking Shopify if they can extend it - they extended mine by an additional 14 days. But it would be nice if Gatsby could actually talk to Shopify and arrange a special developer version of the Shopify trial - I'm not using Shopify or Gatsby now because my trial at Shopify has come to an end and I can't justify paying out for a full Shopify account at this stage.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://unsplash.com/photos/VvKdB1FYNZs?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditShareLink" rel="noopener noreferrer"&gt;Photo by Marvin Meyer on Unsplash&lt;/a&gt;&lt;/p&gt;

</description>
      <category>gatsby</category>
      <category>shopify</category>
    </item>
    <item>
      <title>Sanity CMS Error: Failed to communicate with the Sanity API</title>
      <dc:creator>Graeme T-Gill</dc:creator>
      <pubDate>Sun, 27 Jun 2021 11:04:33 +0000</pubDate>
      <link>https://forem.com/graemetg/sanity-cms-error-failed-to-communicate-with-the-sanity-api-582</link>
      <guid>https://forem.com/graemetg/sanity-cms-error-failed-to-communicate-with-the-sanity-api-582</guid>
      <description>&lt;p&gt;I’ve recently started using the &lt;a href="https://www.sanity.io/" rel="noopener noreferrer"&gt;Sanity Content Management System&lt;/a&gt; and came across a particular error.&lt;/p&gt;

&lt;p&gt;Running $sanity init in my studio folder I encountered this -&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Graemes-MacBook-Pro:studio graeme$ sanity init
You're setting up a new project!
We'll make sure you have an account with Sanity.io. Then we'll
install an open-source JS content editor that connects to
the real-time hosted API on Sanity.io. Hang on.

Press ctrl + C at any time to quit.

Prefer web interfaces to terminals?
You can also set up best practice Sanity projects with
your favorite frontends on https://sanity.io/create

Looks like you already have a Sanity-account. Sweet!


Error: Failed to communicate with the Sanity API:
Unauthorized - Session not found. For more information, see https://docs.sanity.io/help/cli-errors.
    at /usr/local/lib/node_modules/@sanity/cli/bin/sanity-cli.js:4318:3725
    at async e.default (/usr/local/lib/node_modules/@sanity/cli/bin/sanity-cli.js:4318:3549)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It’s strange because it recognises that you’re logged in but then says it can’t authorize a connection to the Sanity API.&lt;/p&gt;

&lt;p&gt;I tried a number of things and I’m still not sure why this was happening.&lt;/p&gt;

&lt;p&gt;I fixed it by simply logging out of the Sanity CLI in the terminal and then logging back in again. As always turning something off and then back on again is worth a try.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Graemes-MacBook-Pro:studio graeme$ sanity logout
Logged out
Graemes-MacBook-Pro:studio graeme$ sanity login
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://unsplash.com/@steve_j?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText" rel="noopener noreferrer"&gt;Photo by Steve Johnson on Unsplash&lt;/a&gt;&lt;/p&gt;

</description>
      <category>sanity</category>
      <category>cms</category>
      <category>sanityapi</category>
      <category>jamstack</category>
    </item>
    <item>
      <title>Replace (Blank) with 0 in Power BI</title>
      <dc:creator>Graeme T-Gill</dc:creator>
      <pubDate>Tue, 26 Jan 2021 10:48:45 +0000</pubDate>
      <link>https://forem.com/graemetg/replace-blank-with-0-in-power-bi-4em1</link>
      <guid>https://forem.com/graemetg/replace-blank-with-0-in-power-bi-4em1</guid>
      <description>&lt;p&gt;I recently did a bit of work in Power BI and came across this issue :&lt;/p&gt;

&lt;p&gt;An unsightly (Blank) being displayed whenever a numeric value is zero.&lt;/p&gt;

&lt;p&gt;What you really want of course is to see a 0 when it is zero. I put up with it for a while but eventually had to look for a solution.&lt;/p&gt;

&lt;p&gt;I experienced this in particular when narrowing a date range filter, so I have used that as an example here.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F53u5mion7yfftxz0lfdi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F53u5mion7yfftxz0lfdi.png" alt="Alt Text" width="800" height="380"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Use a measure to replace the (Blank) with 0
&lt;/h1&gt;

&lt;p&gt;Add a new measure (Power Query) to the table via the ‘New Measure’ button.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F976d9ub6dlsevguwjehy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F976d9ub6dlsevguwjehy.png" alt="Alt Text" width="135" height="120"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Include the field name that has the (Blank) value — in this case it is ‘Credit’.&lt;/p&gt;

&lt;p&gt;(My table name in this example is called ‘Quick Books’).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Measure name = IF(
ISBLANK(COUNT('Quick Books'[Credit])),
0,
COUNT('Quick Books'[Credit]))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Figg51pbkiqnf994erc1c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Figg51pbkiqnf994erc1c.png" alt="Alt Text" width="700" height="263"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This by default calls the measure name ‘Measure Name’ and it shows up as a field in your field list on the right-hand side.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fss0jr6ky8uh1o8j9xxxw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fss0jr6ky8uh1o8j9xxxw.png" alt="Alt Text" width="322" height="477"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  And of course change to use your own field names
&lt;/h1&gt;

&lt;p&gt;Replace ‘Measure name’ with your own name.&lt;/p&gt;

&lt;p&gt;Replace ‘Quick Books’ with your table name.&lt;/p&gt;

&lt;p&gt;Replace ‘Credit’ with your field name.&lt;/p&gt;

&lt;h1&gt;
  
  
  Save/Commit the measure
&lt;/h1&gt;

&lt;p&gt;Click on the tick next to the measure to commit.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F7dk4yr92yz8c0ryd1ykv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F7dk4yr92yz8c0ryd1ykv.png" alt="Alt Text" width="335" height="395"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Replace original field with the measure
&lt;/h2&gt;

&lt;p&gt;To actually get it to use the new measure select the ‘Numeric Value’ visual and replace the original field name (Credit) with the measure (Measure name).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fonz0fuqyli2hpqcgfxq0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fonz0fuqyli2hpqcgfxq0.png" alt="Alt Text" width="700" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As expected when we increase the date range the correct values are still displayed:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Flwqqe4z0mu67epnbzyla.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Flwqqe4z0mu67epnbzyla.png" alt="Alt Text" width="700" height="325"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From (Blank) to 0 to hero!&lt;/p&gt;

</description>
      <category>powerbi</category>
    </item>
  </channel>
</rss>
