Tech Blog

Shopifyのテーマ拡張機能をCI/CDサービスからデプロイする | Tsun Inc.

Shopifyのテーマ拡張機能をCI/CDサービスからデプロイする

小笠原 京平

Tsun Inc. CTOの小笠原です。今回はShopifyアプリのテーマ拡張機能をCI上からデプロイする手順をご紹介します。現在テーマ拡張機能を開発されている方、今後開発される方の参考になれば幸いです。 なぜやるのか Shopifyのテーマ拡張機能を開発するには、Shopifyアプリとは別にShopify上にデプロイします。(テーマ拡張機能のLiquidやJavaScriptのファイル等はShopifyのサーバーから配信されます) また、デプロイ後にShopify Partnerの管理画面からテーマ拡張機能を公開する必要があります。 デプロイ作業を自動化しておくと、テーマ拡張機能の更新漏れや公開作業のミスをある程度防ぐことができます。(ただしShopify Partnerの管理画面からテーマ拡張機能を公開する作業までは自動化できません) 前提条件 対象読者 Shopifyアプリのテーマ拡張機能の開発をしている 環境 Shopify CLI: Version 3.39.0 Package manager: npm 準備するもの Shopifyアプリのテーマ拡張機能 CI/CDサービス (GitHub Actions、CircleCIなど) 対応手順 Shopify Developers Platformに公式ガイドがあるので、基本的にはこちらの手順に沿って進めれば大丈夫です。 テーマ拡張機能のIDを取得する...

Shopifyのテーマ拡張機能をCI/CDサービスからデプロイする

小笠原 京平

Tsun Inc. CTOの小笠原です。今回はShopifyアプリのテーマ拡張機能をCI上からデプロイする手順をご紹介します。現在テーマ拡張機能を開発されている方、今後開発される方の参考になれば幸いです。 なぜやるのか Shopifyのテーマ拡張機能を開発するには、Shopifyアプリとは別にShopify上にデプロイします。(テーマ拡張機能のLiquidやJavaScriptのファイル等はShopifyのサーバーから配信されます) また、デプロイ後にShopify Partnerの管理画面からテーマ拡張機能を公開する必要があります。 デプロイ作業を自動化しておくと、テーマ拡張機能の更新漏れや公開作業のミスをある程度防ぐことができます。(ただしShopify Partnerの管理画面からテーマ拡張機能を公開する作業までは自動化できません) 前提条件 対象読者 Shopifyアプリのテーマ拡張機能の開発をしている 環境 Shopify CLI: Version 3.39.0 Package manager: npm 準備するもの Shopifyアプリのテーマ拡張機能 CI/CDサービス (GitHub Actions、CircleCIなど) 対応手順 Shopify Developers Platformに公式ガイドがあるので、基本的にはこちらの手順に沿って進めれば大丈夫です。 テーマ拡張機能のIDを取得する...

Shopifyのブログ記事内にタグ一覧を追加する Tsun Inc.

Shopifyのブログ記事内にタグ一覧を追加する

小笠原 京平

本記事ではShopifyストアのブログ記事に「タグ一覧」を表示するシンプルなソースコードを紹介し、その実装方法を解説しています。

Shopifyのブログ記事内にタグ一覧を追加する

小笠原 京平

本記事ではShopifyストアのブログ記事に「タグ一覧」を表示するシンプルなソースコードを紹介し、その実装方法を解説しています。

Shopifyのブログ記事内に自動で目次を生成する Tsun Inc.

Shopifyのブログ記事内に自動で目次を生成する

小笠原 京平

Shopifyブログ記事内のh2とh3タグを抽出して、目次を自動生成するスクリプトを作成しました。本記事では自身でShopifyサイトに目次機能を実装する方法をご紹介します。

Shopifyのブログ記事内に自動で目次を生成する

小笠原 京平

Shopifyブログ記事内のh2とh3タグを抽出して、目次を自動生成するスクリプトを作成しました。本記事では自身でShopifyサイトに目次機能を実装する方法をご紹介します。

Shopify Liquidで配列から任意の要素を取り除いた配列を生成する Tsun Inc.

Shopify Liquidで配列から任意の要素を取り除いた配列を生成する

小笠原 京平

「RuffRuff 予約販売」は在庫切れや新商品販売前、入荷待ちなどタイミングで発生する機会損失の削減をサポートします。 ノーコードかつ3ステップで簡単にセットアップでき、日本語に対応しています。無制限で予約商品を登録および無制限で予約注文を受け付けることが可能です。 引用元: RuffRuff 予約販売 無料でインストール Tsun Inc.でCTOをしている小笠原です!最近はShopifyのアプリやテーマの開発を行っています。このブログではShopify開発に役立つ情報を共有していきます。Shopifyエンジニアの方の参考になれば嬉しいです! なぜ作ろうと思ったのか Shopifyの配列を扱っていて一部を除外 (JavaScriptのArrayのfilter処理) をしたかったが、調べたところLiquidには配列から一部を除外して新しく配列を生成するような処理がないため。 作成したもの Liquidで配列から任意の要素を取り除く処理 対象読者 Liquidに関する基礎的な知識 実装 対象の配列を用意する まずは任意の要素を取り除く前の配列を用意します。 今回は例としてapple、orange、lemon、bananaという4つの文字列が入った配列を作ります。 (文字列をsplitフィルターで配列に変換します。) {%- liquid # ['apple', 'orange', 'lemon', 'banana'] の配列 assign...

Shopify Liquidで配列から任意の要素を取り除いた配列を生成する

小笠原 京平

「RuffRuff 予約販売」は在庫切れや新商品販売前、入荷待ちなどタイミングで発生する機会損失の削減をサポートします。 ノーコードかつ3ステップで簡単にセットアップでき、日本語に対応しています。無制限で予約商品を登録および無制限で予約注文を受け付けることが可能です。 引用元: RuffRuff 予約販売 無料でインストール Tsun Inc.でCTOをしている小笠原です!最近はShopifyのアプリやテーマの開発を行っています。このブログではShopify開発に役立つ情報を共有していきます。Shopifyエンジニアの方の参考になれば嬉しいです! なぜ作ろうと思ったのか Shopifyの配列を扱っていて一部を除外 (JavaScriptのArrayのfilter処理) をしたかったが、調べたところLiquidには配列から一部を除外して新しく配列を生成するような処理がないため。 作成したもの Liquidで配列から任意の要素を取り除く処理 対象読者 Liquidに関する基礎的な知識 実装 対象の配列を用意する まずは任意の要素を取り除く前の配列を用意します。 今回は例としてapple、orange、lemon、bananaという4つの文字列が入った配列を作ります。 (文字列をsplitフィルターで配列に変換します。) {%- liquid # ['apple', 'orange', 'lemon', 'banana'] の配列 assign...

2022年12月時点のShopifyアプリ開発ベストプラクティス Tsun Inc.

2022年12月時点のShopifyアプリ開発ベストプラクティス

小笠原 京平

Tsun Inc.でCTOをしている小笠原です!最近はShopifyのアプリやテーマの開発を行っています。このブログではShopify開発に役立つ情報を共有していきます。Shopifyエンジニアの方の参考になれば嬉しいです! はじめに Tsunでは10月からShopifyアプリの開発をはじめました!11月に簡単なアプリを1つリリースし、2つ目のアプリ(目次作成の自動化アプリ)を開発しました 2022年12月に目次を自動生成できるShopifyアプリをリリースしました。無料でブログ記事をもっと読みやすく拡張します。ぜひ一度お試しください。       ちょっとずつアプリ開発の知見がたまってきたので2022年12月時点でのアプリ開発のベストプラクティスを共有したいと思います。今後もベストプラクティスの追加・更新があったら随時こちらの記事も更新していきます! 対象読者 Shopifyアプリの開発経験者、もしくはこれから開発してみようという人 Shopifyアプリ開発のベストプラクティス Shopify CLI v3を使う v2が2023年4月以降に使えなくなるため。https://shopify.dev/changelog/cli-2-0-to-be-sunset-on-may-31-2023一部v2でしか利用できない機能もありますが、v3を使っていきましょう。 eslintでLintをする Shopifyアプリ開発に限らずですが、eslint使っておきましょう。Shopify公式のUIライブラリPolarisに対応するルールもShopifyが作っています。https://github.com/Shopify/web-configs/tree/main/packages/eslint-plugin GraphQLのルールやその他のルールはお好みで。https://github.com/B2o5T/graphql-eslint UIライブラリはPolarisを使う 基本的なUIはすべて揃っているので、Polarisで十分使いやすいアプリが作れます。Figmaのファイルも(ちょっと古いが)公開されているので、簡単なモックを作って共有するのも楽です。https://polaris.shopify.com/getting-started 開発専用のアプリを作る Shopify CLIではngrokで生成されたURLを自動でアプリURL、リダイレクトURLを変更してくれますが、万が一操作をミスすると本番環境のアプリの設定をローカルの設定で上書きしてしまうなどのミスが発生する可能性があります。したがって、本番環境の設定を壊してしまう等のミスを防ぐために開発専用のアプリを用意しましょう。 複数人で開発している場合は、一人一人の開発専用のアプリを作るとよいです。 開発専用のストアを作る アプリ開発時の問題を切り分けやすくするため、不要なアプリなどがインストールされていないストアでの開発がおすすめです。 また複数で開発している場合は、他の人が設定を変更してしまったり、テーマを変更してしまったりなどの影響を受けないように専用のストアを用意しましょう。 ステージング環境を用意する こちらもShopifyアプリ開発に限らずですが、開発→本番環境に即反映せず、ステージング環境でテストしてから本番環境に反映しましょう。そのためには、もちろんCI/CD環境も必要です。...

2022年12月時点のShopifyアプリ開発ベストプラクティス

小笠原 京平

Tsun Inc.でCTOをしている小笠原です!最近はShopifyのアプリやテーマの開発を行っています。このブログではShopify開発に役立つ情報を共有していきます。Shopifyエンジニアの方の参考になれば嬉しいです! はじめに Tsunでは10月からShopifyアプリの開発をはじめました!11月に簡単なアプリを1つリリースし、2つ目のアプリ(目次作成の自動化アプリ)を開発しました 2022年12月に目次を自動生成できるShopifyアプリをリリースしました。無料でブログ記事をもっと読みやすく拡張します。ぜひ一度お試しください。       ちょっとずつアプリ開発の知見がたまってきたので2022年12月時点でのアプリ開発のベストプラクティスを共有したいと思います。今後もベストプラクティスの追加・更新があったら随時こちらの記事も更新していきます! 対象読者 Shopifyアプリの開発経験者、もしくはこれから開発してみようという人 Shopifyアプリ開発のベストプラクティス Shopify CLI v3を使う v2が2023年4月以降に使えなくなるため。https://shopify.dev/changelog/cli-2-0-to-be-sunset-on-may-31-2023一部v2でしか利用できない機能もありますが、v3を使っていきましょう。 eslintでLintをする Shopifyアプリ開発に限らずですが、eslint使っておきましょう。Shopify公式のUIライブラリPolarisに対応するルールもShopifyが作っています。https://github.com/Shopify/web-configs/tree/main/packages/eslint-plugin GraphQLのルールやその他のルールはお好みで。https://github.com/B2o5T/graphql-eslint UIライブラリはPolarisを使う 基本的なUIはすべて揃っているので、Polarisで十分使いやすいアプリが作れます。Figmaのファイルも(ちょっと古いが)公開されているので、簡単なモックを作って共有するのも楽です。https://polaris.shopify.com/getting-started 開発専用のアプリを作る Shopify CLIではngrokで生成されたURLを自動でアプリURL、リダイレクトURLを変更してくれますが、万が一操作をミスすると本番環境のアプリの設定をローカルの設定で上書きしてしまうなどのミスが発生する可能性があります。したがって、本番環境の設定を壊してしまう等のミスを防ぐために開発専用のアプリを用意しましょう。 複数人で開発している場合は、一人一人の開発専用のアプリを作るとよいです。 開発専用のストアを作る アプリ開発時の問題を切り分けやすくするため、不要なアプリなどがインストールされていないストアでの開発がおすすめです。 また複数で開発している場合は、他の人が設定を変更してしまったり、テーマを変更してしまったりなどの影響を受けないように専用のストアを用意しましょう。 ステージング環境を用意する こちらもShopifyアプリ開発に限らずですが、開発→本番環境に即反映せず、ステージング環境でテストしてから本番環境に反映しましょう。そのためには、もちろんCI/CD環境も必要です。...

ShopifyのMetafieldsをGraphQL APIで一括更新する Tsun Inc.

ShopifyのMetafieldsをGraphQL APIで一括更新する

小笠原 京平

今回のテーマは「ShopifyのMetafieldsをGraphQL APIを使って一括更新する」です。 Metafieldsの追加は専用のShopifyアプリを使って行っていましたが、一括更新は有料プランが必要なため、今回はGraphQL APIを使ってやってみようかなーと思いました。 また、GraphQL APIを使った一括更新(bulk update)は以前やったことがあったため、同じ要領でMetafieldsも更新できるなというのがある程度わかっていました。

ShopifyのMetafieldsをGraphQL APIで一括更新する

小笠原 京平

今回のテーマは「ShopifyのMetafieldsをGraphQL APIを使って一括更新する」です。 Metafieldsの追加は専用のShopifyアプリを使って行っていましたが、一括更新は有料プランが必要なため、今回はGraphQL APIを使ってやってみようかなーと思いました。 また、GraphQL APIを使った一括更新(bulk update)は以前やったことがあったため、同じ要領でMetafieldsも更新できるなというのがある程度わかっていました。