gatsbyjs / gatsby-starter-shopify

A Gatsby starter using the latest Shopify plugin showcasing a store with product overview, individual product pages, and a cart
https://shopify-demo.gatsbyjs.com/
BSD Zero Clause License
310 stars 135 forks source link

Refresh "/public/page-data" #56

Open mikejw opened 2 years ago

mikejw commented 2 years ago

Hi there,

I apologise if this a fairly newb question. However I'm wondering how my site built on the platform will maintain correct stock info when it fluctuates (by variant). I have tried pulling in variants and "availableForSale" data into the ProductCard graphql fragment as below:

export const query = graphql`
  fragment ProductCard on ShopifyProduct {
    id
    title
    slug: gatsbyPath(
      filePath: "/products/{ShopifyProduct.productType}/{ShopifyProduct.handle}"
    )
    images {
      id
      altText
      gatsbyImageData(aspectRatio: 1, width: 640)
    }
    priceRangeV2 {
      minVariantPrice {
        amount
        currencyCode
      }
    }
    vendor,
    variants {
      availableForSale 
    }
  }
`

However this info doesn't seem to be updated when I then update the variants info on the Shopify site. Do I need to deploy a cron job to continually refresh data within /public/page-data to make sure variants info is constantly up to date? i.e. this product is or isn't sold out.

mikejw commented 2 years ago

I managed to get the stock status by using the client object with the product listing component and looping through each product. Happy to share the code if anyone is interested.