JavaScript

【Shopify】Color Picker を JS で実装したい

【Shopify】Color Picker を JS で実装したい

お久しぶりです。

アプリなしでバリエーションピッカーを実装したいなーって思ったので、
ShopifyのメタフィールドとJSで実装できることがわかったので共有します!

コードは簡素です。
Liquidでも出来ると思うのですが、自分はJSで実装しちゃいました

対象者


  • ShopifyでLIquidをある程度書いたことがある
  • JS 初級者


コード


Shopifyでメタフィールドを作成。
商品管理画面で色を設定してください。

{% if product.metafields.custom.colors %}//メタフィールドに色があるかどうか確認する
let colors = {{ product.metafields.custom.colors }} //メタフィールドから色を取得
//output 例 : (3) ['#ff00ef', '#b4b4b4', '#6366fa'] 
{% endif %}


window.addEventListener('DOMContentLoaded', function () {
  if(colors){//カラーがあれば実行するぞ
    const data = [...document.querySelectorAll('.variant__input')]//カラーで置き換えたいDOMを取得
    data.map((node, index) => {
        node.style.backgroundColor = `${colors[index]}`// index..0,1,2 colors[0],colors[1],colors[2]が取れる。
    })
  }
});


おわりに

以上で簡単に実装ができると思います。
Shopifyで商品ページに色見本を追加をJSで追加できることを記述しました。
これからもShopifyは進化を続けていくと思うので、引き続きキャッチアップしていく必要がありますね。

少しでもお役に立てれば幸いです。