Tech Blog

【Tips】Shopify の GraphQL Admin API で顧客総数を取得する

【Tips】Shopify の GraphQL Admin API で顧客総数を取得する

小笠原 京平

Shopifyの GraphQL Admin API の小ネタです。 Shopifyの顧客総数を取得したい場合のクエリは、いざ探そうと思ってもパッと見つからないのでメモしておきます。 対象読者 Shopify GraphQL Admin API を使ったことがある方 顧客総数を取得するクエリ 2023-07 バージョンから CustomerSegmentMemberConnection に変更があったため、2023-07より前と以降で若干クエリが異なります。 ※ changelog 2023-07以降 { customerSegmentMembers(first: 1, query: "") { totalCount } } 2023-07より前...

【Tips】Shopify の GraphQL Admin API で顧客総数を取得する

小笠原 京平

Shopifyの GraphQL Admin API の小ネタです。 Shopifyの顧客総数を取得したい場合のクエリは、いざ探そうと思ってもパッと見つからないのでメモしておきます。 対象読者 Shopify GraphQL Admin API を使ったことがある方 顧客総数を取得するクエリ 2023-07 バージョンから CustomerSegmentMemberConnection に変更があったため、2023-07より前と以降で若干クエリが異なります。 ※ changelog 2023-07以降 { customerSegmentMembers(first: 1, query: "") { totalCount } } 2023-07より前...

Shopify Vite Plugin でテーマ拡張機能の開発体験を改善する

Shopify Vite Plugin でテーマ拡張機能の開発体験を改善する

小笠原 京平

今回は Barrel が提供する Shopify Vite Plugin を導入して、テーマ拡張機能の開発体験を改善する方法をご紹介します。 対象読者 テーマ拡張機能の開発経験がある方 はじめに Shopifyのテーマ拡張機能 (Theme app extensions) はShopify アプリ開発において、ストアフロントに機能を追加するための機能です。 Liquid、JavaScript、CSSなどを使って開発することができますが、通常のアプリ開発と比較すると、ローカルでの開発体験はそれほどよくありません。 そこで、今回は Shopify Vite Plugin を導入して、開発体験を改善していきます。 Shopify Vite Plugin とは Barrel が提供する Vite用プラグインです。ViteをShopify テーマ開発に組み込んで開発体験を改善することを目的として作られていますが、テーマ拡張機能においてもその恩恵を受けることができます。...

Shopify Vite Plugin でテーマ拡張機能の開発体験を改善する

小笠原 京平

今回は Barrel が提供する Shopify Vite Plugin を導入して、テーマ拡張機能の開発体験を改善する方法をご紹介します。 対象読者 テーマ拡張機能の開発経験がある方 はじめに Shopifyのテーマ拡張機能 (Theme app extensions) はShopify アプリ開発において、ストアフロントに機能を追加するための機能です。 Liquid、JavaScript、CSSなどを使って開発することができますが、通常のアプリ開発と比較すると、ローカルでの開発体験はそれほどよくありません。 そこで、今回は Shopify Vite Plugin を導入して、開発体験を改善していきます。 Shopify Vite Plugin とは Barrel が提供する Vite用プラグインです。ViteをShopify テーマ開発に組み込んで開発体験を改善することを目的として作られていますが、テーマ拡張機能においてもその恩恵を受けることができます。...

Shopify Admin API GraphiQLとは? 使い方やメリット・デメリットを解説

Shopify Admin API GraphiQLとは? 使い方やメリット・デメリットを解説します

小笠原 京平

ShopifyのAdmin APIにはGraphQLを用いたAPIがあります。手軽に試す方法としてGraphiQL (GraphQLではなくGraphiQLなのに注意) というIDEがありますので、今回はShopify GraphiQLの使い方やメリット・デメリットを解説します。 GraphiQLとは GraphQL公式が運営しているオープンソースプロジェクトです。GraphQLをブラウザ上でインタラクティブに操作・実行することができます。 グラフィカル (/ˈɡrafək(ə)l/) と発音します。(graphicalと同じ発音) GraphQLとは GraphQLはAPIのためのクエリ言語であり、既存のデータでクエリを実行するためのランタイムです。 GraphQLはAPI内のデータの完全で理解しやすい説明を提供し、クライアントに必要なものだけを要求する力を与え、APIを長期的に進化させることを容易にし、強力な開発者ツールを可能にします。 引用: GraphQL | A query language for your API Shopify GraphiQLの使い方 Shopify GraphiQLは各ストアにアプリをインストールするだけで使えますが、Shopify Devサイト上でデモを触れるので、まずは触ってみましょう! https://shopify.dev/docs/apps/tools/graphiql-admin-api Workshopをやってみよう! Shopifyが作成した「Learn...

Shopify Admin API GraphiQLとは? 使い方やメリット・デメリットを解説します

小笠原 京平

ShopifyのAdmin APIにはGraphQLを用いたAPIがあります。手軽に試す方法としてGraphiQL (GraphQLではなくGraphiQLなのに注意) というIDEがありますので、今回はShopify GraphiQLの使い方やメリット・デメリットを解説します。 GraphiQLとは GraphQL公式が運営しているオープンソースプロジェクトです。GraphQLをブラウザ上でインタラクティブに操作・実行することができます。 グラフィカル (/ˈɡrafək(ə)l/) と発音します。(graphicalと同じ発音) GraphQLとは GraphQLはAPIのためのクエリ言語であり、既存のデータでクエリを実行するためのランタイムです。 GraphQLはAPI内のデータの完全で理解しやすい説明を提供し、クライアントに必要なものだけを要求する力を与え、APIを長期的に進化させることを容易にし、強力な開発者ツールを可能にします。 引用: GraphQL | A query language for your API Shopify GraphiQLの使い方 Shopify GraphiQLは各ストアにアプリをインストールするだけで使えますが、Shopify Devサイト上でデモを触れるので、まずは触ってみましょう! https://shopify.dev/docs/apps/tools/graphiql-admin-api Workshopをやってみよう! Shopifyが作成した「Learn...

ブログ記事 Shopifyの必須Webhooks (Mandatory Webhooks)とは? GDPRや対応例など

Shopifyの必須Webhooks (Mandatory Webhooks)とは? GDPR...

小笠原 京平

今回はShopifyアプリ開発を始めたときに詰まるポイントの1つ「必須Webhooks」について解説します。実装をしていなかったり、実装が不十分なためにレビューが通らなかった経験をされた方は多いんじゃないでしょうか?レビューで詰まらないためにも、ぜひご確認ください! Webhooksとは? Shopifyの必須Webhooksを説明する前に、Webhooksについて理解しましょう。Webhooksとは、Webアプリケーションと連携するために用いられるイベント通知の仕組みです。Webhooksを使うことで、あるWebアプリケーションで特定のイベントが起きたときに、データを受け取ったり、何かしらの動作をすることが可能になります。 エンジニアにとって身近な例でいうと、GitHubにコードをプッシュしたときに自動でビルドやテストをするときにWebhooksが使われています。 ShopifyのWebhooks そんなWebhooksはShopifyでも使うことができます。Shopifyアプリ開発では、Shopify Admin APIからWebhooksを使うことができます。また、アプリ以外でもShopify管理画面からWebhookを作成することもできます。 ShopifyのWebhooksにはHTTPSのエンドポイントのほか、Amazon EventBridgeやGoogle Cloud Pub/Subといったメッセージングサービスを使うこともできます。購読するイベントやマーチャントによっては瞬間的に大量のWebhooksを処理する必要があるため、スケールさせやすいメッセージングサービスを使ってWebhooksを処理することをおすすめします。 必須Webhooks (Mandatory Webhooks) とは? 必須Webhooksとは、Shopifyアプリを開発するときに必ず実装しなければならない3つのWebhooksのことです。この3つのWebhooksはGDPRに対応するために必要なWebhooksで、EU加盟国に関わらず、すべてのShopifyアプリはGDPRに準拠しなければなりません。必須Webhooksを実装していない場合、アプリレビューで却下されます。 (3つの必須Webhooks以外のWebhooksは任意で実装すればOKです。) また、必須Webhooksの3つはHTTPSのエンドポイントでのみ作成可能です。上述したEventBridgeやPub/Subを利用することはできません。 GDPRとは? GDPR(General Data Protection Regulation:一般データ保護規則)は、ヨーロッパ連合(EU)の個人情報保護法規で、2018年5月25日から施行されています。これは、EU全域での個人情報のプライバシーを保護し、データの取り扱い方に関して個々の人々により多くの制御権を付与するためのものです。 GDPRは、EU市民または居住者の個人データを処理する全ての組織に適用されます。これには、EU内外の組織も含まれ、EUの市民や居住者のデータを処理する場合、世界のどこにその組織があろうともGDPRの規定を守る必要があります。 GDPRの主な目的は、個人が自分の個人データをどのように収集、保存、使用されるのかを知り、そしてその制御をする権利を持つべきであるという考え方を強化し、統一化することです。これは、個人情報の透明性、アクセスの権利、修正の権利、忘れられる権利(データ削除の権利)、データ移行の権利など、いくつかの重要な権利を個々の人々に付与します。 参考: ChatGPT 必須Webhooksの対応例 上記で説明したように、必須WebhooksとはGDPRに準拠するためのWebhooksなので、顧客情報、ストア情報をデータベースなどに保存しているかどうかで対応方法が変わります。...

Shopifyの必須Webhooks (Mandatory Webhooks)とは? GDPR...

小笠原 京平

今回はShopifyアプリ開発を始めたときに詰まるポイントの1つ「必須Webhooks」について解説します。実装をしていなかったり、実装が不十分なためにレビューが通らなかった経験をされた方は多いんじゃないでしょうか?レビューで詰まらないためにも、ぜひご確認ください! Webhooksとは? Shopifyの必須Webhooksを説明する前に、Webhooksについて理解しましょう。Webhooksとは、Webアプリケーションと連携するために用いられるイベント通知の仕組みです。Webhooksを使うことで、あるWebアプリケーションで特定のイベントが起きたときに、データを受け取ったり、何かしらの動作をすることが可能になります。 エンジニアにとって身近な例でいうと、GitHubにコードをプッシュしたときに自動でビルドやテストをするときにWebhooksが使われています。 ShopifyのWebhooks そんなWebhooksはShopifyでも使うことができます。Shopifyアプリ開発では、Shopify Admin APIからWebhooksを使うことができます。また、アプリ以外でもShopify管理画面からWebhookを作成することもできます。 ShopifyのWebhooksにはHTTPSのエンドポイントのほか、Amazon EventBridgeやGoogle Cloud Pub/Subといったメッセージングサービスを使うこともできます。購読するイベントやマーチャントによっては瞬間的に大量のWebhooksを処理する必要があるため、スケールさせやすいメッセージングサービスを使ってWebhooksを処理することをおすすめします。 必須Webhooks (Mandatory Webhooks) とは? 必須Webhooksとは、Shopifyアプリを開発するときに必ず実装しなければならない3つのWebhooksのことです。この3つのWebhooksはGDPRに対応するために必要なWebhooksで、EU加盟国に関わらず、すべてのShopifyアプリはGDPRに準拠しなければなりません。必須Webhooksを実装していない場合、アプリレビューで却下されます。 (3つの必須Webhooks以外のWebhooksは任意で実装すればOKです。) また、必須Webhooksの3つはHTTPSのエンドポイントでのみ作成可能です。上述したEventBridgeやPub/Subを利用することはできません。 GDPRとは? GDPR(General Data Protection Regulation:一般データ保護規則)は、ヨーロッパ連合(EU)の個人情報保護法規で、2018年5月25日から施行されています。これは、EU全域での個人情報のプライバシーを保護し、データの取り扱い方に関して個々の人々により多くの制御権を付与するためのものです。 GDPRは、EU市民または居住者の個人データを処理する全ての組織に適用されます。これには、EU内外の組織も含まれ、EUの市民や居住者のデータを処理する場合、世界のどこにその組織があろうともGDPRの規定を守る必要があります。 GDPRの主な目的は、個人が自分の個人データをどのように収集、保存、使用されるのかを知り、そしてその制御をする権利を持つべきであるという考え方を強化し、統一化することです。これは、個人情報の透明性、アクセスの権利、修正の権利、忘れられる権利(データ削除の権利)、データ移行の権利など、いくつかの重要な権利を個々の人々に付与します。 参考: ChatGPT 必須Webhooksの対応例 上記で説明したように、必須WebhooksとはGDPRに準拠するためのWebhooksなので、顧客情報、ストア情報をデータベースなどに保存しているかどうかで対応方法が変わります。...

Shopifyアプリの課金ってどうやるの? 課金方法とサブスクリプション設計を解説

Shopifyアプリの課金ってどうやるの? 課金方法とサブスクリプション設計を解説

小笠原 京平

Shopifyアプリの課金とは? Shopifyアプリの課金方法は、大きく分けてShopify内で決済する方法とShopify外で決済する方法の2つあります。 Shopify内で決済する場合、Shopifyアプリの料金は、マーチャントからShopifyに支払われ、税金や手数料を除いた料金がShopifyからアプリベンダーに支払われます。 Shopify内で決済する一番のメリットはマーチャントが課金する際にクレジットカード等の入力が不要なため、そのぶんの課金ハードルが低いことです。 デメリットは手数料をShopifyに支払う必要があることですが、現状ではよっぽど稼ぐアプリを作らない限り気にするほどではないので、Shopify内で決済させるのがよいと思います。 Shopify外で決済する場合、アプリベンダーは独自の決済フローを用意する必要があります。 こちらについては今回は触れません。以下はすべてShopify内の課金についての説明になります。 Shopifyアプリの課金の流れ Shopifyアプリで課金するための道具はすべてShopify側が用意してくれています。 したがって、Shopifyアプリは決められたパターンの実装するだけで、簡単に課金が行なえます。 Shopifyアプリの課金はざっくりと以下の流れで行われます。 【アプリ】Shopifyアプリの画面内に配置された課金ボタンをユーザーがクリック 【サーバー】課金の種類(種類については後述します)、課金額、プラン名などを元にShopify GraphQL APIにリクエストを送る 【サーバー】ユーザーに課金してもらうためのURLを含むデータをAPIから受け取り、アプリに渡す 【アプリ】課金用のURLにリダイレクト 4で表示された課金用のページでユーザーが課金を選択したら、課金が行われます。 (もちろん、キャンセルを選択して離脱する可能性もあります) 課金の種類 Shopifyでの課金方法はいくつかあります。 1つ目は定額料金プラン(固定額プラン)です。 定額料金には月払いと年払いのどちらかを選ぶことができます。 2つ目は使用状況に基づくプランで、いわゆる従量課金と呼ばれるプランです。 何の使用状況によって、どのくらいの課金をするかはアプリが決めることができます。 (メール配信をするアプリならメールの配信量、商品販売に関連するアプリなら販売された商品金額など) 3つ目は1と2を組み合わせたプランです。 ここでは定額料金の年払いは選択できませんので、月払い + 従量課金の組み合わせのみになります。...

Shopifyアプリの課金ってどうやるの? 課金方法とサブスクリプション設計を解説

小笠原 京平

Shopifyアプリの課金とは? Shopifyアプリの課金方法は、大きく分けてShopify内で決済する方法とShopify外で決済する方法の2つあります。 Shopify内で決済する場合、Shopifyアプリの料金は、マーチャントからShopifyに支払われ、税金や手数料を除いた料金がShopifyからアプリベンダーに支払われます。 Shopify内で決済する一番のメリットはマーチャントが課金する際にクレジットカード等の入力が不要なため、そのぶんの課金ハードルが低いことです。 デメリットは手数料をShopifyに支払う必要があることですが、現状ではよっぽど稼ぐアプリを作らない限り気にするほどではないので、Shopify内で決済させるのがよいと思います。 Shopify外で決済する場合、アプリベンダーは独自の決済フローを用意する必要があります。 こちらについては今回は触れません。以下はすべてShopify内の課金についての説明になります。 Shopifyアプリの課金の流れ Shopifyアプリで課金するための道具はすべてShopify側が用意してくれています。 したがって、Shopifyアプリは決められたパターンの実装するだけで、簡単に課金が行なえます。 Shopifyアプリの課金はざっくりと以下の流れで行われます。 【アプリ】Shopifyアプリの画面内に配置された課金ボタンをユーザーがクリック 【サーバー】課金の種類(種類については後述します)、課金額、プラン名などを元にShopify GraphQL APIにリクエストを送る 【サーバー】ユーザーに課金してもらうためのURLを含むデータをAPIから受け取り、アプリに渡す 【アプリ】課金用のURLにリダイレクト 4で表示された課金用のページでユーザーが課金を選択したら、課金が行われます。 (もちろん、キャンセルを選択して離脱する可能性もあります) 課金の種類 Shopifyでの課金方法はいくつかあります。 1つ目は定額料金プラン(固定額プラン)です。 定額料金には月払いと年払いのどちらかを選ぶことができます。 2つ目は使用状況に基づくプランで、いわゆる従量課金と呼ばれるプランです。 何の使用状況によって、どのくらいの課金をするかはアプリが決めることができます。 (メール配信をするアプリならメールの配信量、商品販売に関連するアプリなら販売された商品金額など) 3つ目は1と2を組み合わせたプランです。 ここでは定額料金の年払いは選択できませんので、月払い + 従量課金の組み合わせのみになります。...

Shopify Liquidで変数に初期値を設定する

Shopify Liquidで変数に初期値を設定する

小笠原 京平

Tsun Inc.の小笠原です!Shopifyアプリ開発をしていく中で、テーマ拡張機能を開発する際にLiquidを書くことがよくあります。今回はLiquidを書く上でかかせない変数を扱う際に、変数の初期値を設定する方法をご紹介します。

Shopify Liquidで変数に初期値を設定する

小笠原 京平

Tsun Inc.の小笠原です!Shopifyアプリ開発をしていく中で、テーマ拡張機能を開発する際にLiquidを書くことがよくあります。今回はLiquidを書く上でかかせない変数を扱う際に、変数の初期値を設定する方法をご紹介します。

PostmanでShopify Admin APIのクエリを実行・管理する

PostmanでShopify Admin APIのクエリを実行・管理する

小笠原 京平

Tsun Inc. CTOの小笠原です!今回はShopify APIをPostmanで簡単に実行するノウハウをまとめました。 Shopify APIに限らずですが、毎回コンソールからAPIを実行して確認するのって意外と手間ですよね。そういうときはPostmanというアプリを使って環境情報等をまとめておくとサクッと実行・確認ができますよ! Postmanとは PostmanはAPIを開発・テストすることに特化したコラボレーターツールです。 Postman とは、APIを開発・テストするためのコラボレーションプラットフォームです。Postmanでは、Tokenなどを設定し、APIのエンドポイントにリクエストを投げ込めば Response(レスポンス)を確認することができます。現在 Postman には、HTTP や REST、SOAP、GraphQL などのリクエストテストや、API design、API documentation、API detection、Mock Server、Monitors、Workspaces などの機能が存在します。 Postmanを利用することによってAPI開発が簡略化され作業効率の向上を実現することができます。 引用元: Postman を使用して API テストを行うには 前提条件 対象読者 Shopify Admin APIを使ったことがある...

PostmanでShopify Admin APIのクエリを実行・管理する

小笠原 京平

Tsun Inc. CTOの小笠原です!今回はShopify APIをPostmanで簡単に実行するノウハウをまとめました。 Shopify APIに限らずですが、毎回コンソールからAPIを実行して確認するのって意外と手間ですよね。そういうときはPostmanというアプリを使って環境情報等をまとめておくとサクッと実行・確認ができますよ! Postmanとは PostmanはAPIを開発・テストすることに特化したコラボレーターツールです。 Postman とは、APIを開発・テストするためのコラボレーションプラットフォームです。Postmanでは、Tokenなどを設定し、APIのエンドポイントにリクエストを投げ込めば Response(レスポンス)を確認することができます。現在 Postman には、HTTP や REST、SOAP、GraphQL などのリクエストテストや、API design、API documentation、API detection、Mock Server、Monitors、Workspaces などの機能が存在します。 Postmanを利用することによってAPI開発が簡略化され作業効率の向上を実現することができます。 引用元: Postman を使用して API テストを行うには 前提条件 対象読者 Shopify Admin APIを使ったことがある...

【Shopify Tips】フッターにある「Powerd by Shopify」を非表示にする方法 | 対象テーマ:Dawn

【Shopify Tips】フッターにある「Powered by Shopify」を非表示にす...

小笠原 京平

Shopifyストアのフッターにデフォルトで表示されている「Powered by Shopify」を非表示にする方法をご紹介します。

【Shopify Tips】フッターにある「Powered by Shopify」を非表示にす...

小笠原 京平

Shopifyストアのフッターにデフォルトで表示されている「Powered by Shopify」を非表示にする方法をご紹介します。

【Shopify Tips】 コレクションページの並び替え(ソート)項目を非表示にする方法

【Shopify Tips】コレクションの並び替え項目(ソート項目)を非表示にする方法 | 対...

小笠原 京平

Shopifyストアのコレクションページに表示されている並び替え項目(ソート項目)を非表示にする方法をご紹介します。

【Shopify Tips】コレクションの並び替え項目(ソート項目)を非表示にする方法 | 対...

小笠原 京平

Shopifyストアのコレクションページに表示されている並び替え項目(ソート項目)を非表示にする方法をご紹介します。

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も更新できるなというのがある程度わかっていました。

新しくリリースされたShopify開発ツールの中から気になるものをご紹介! Tsun Inc.

新しくリリースされたShopify開発ツールの中から気になるものをご紹介!

小笠原 京平

こんにちは!Tsun Inc. でCTOをしている小笠原です。最近Shopifyのアプリやテーマ開発はよくしています。Shopify DevのリファレンスやShopifyのGitHubリポジトリを見て思うのは、情報量が多すぎる!ですよね。(Shopify公式のGitHubリポジトリだけでも840以上あります)この記事では毎週リリースされた開発ツールの中から厳選して、これは使える!やこの機能は今までなかった!といったものをご紹介しています♪ぜひあなたの開発にお役立てください! 最新情報をチェックしたい方はぜひInstagramのアカウントをフォローして「Shopify Dev Weekly」をみてください!→ https://www.instagram.com/tsun.ec/?hl=ja 2022年7月号 vol.1 - いまからキャッチアップ!Shopify Editionsで発表された開発者向け機能を一挙ご紹介! 今週のトピックは 「いまからキャッチアップ!Shopify Editionsで発表された開発者向け機能を一挙ご紹介!」 です。   Shopify Functions バックエンドロジックをカスタマイズ可能 まだ開発中の機能、全プランで利用可能 最初はチェックアウト機能のカスタマイズが開放され、以降その他の部分にカスタマイズ可能になる予定 Checkout Extensibility チェックアウトの拡張アプリが開発可能 9月末以降から利用可能になる予定 チェックアウトUIやShop Payとのシームレスな連携が提供される 予約販売と後払い決済 Selling...

新しくリリースされたShopify開発ツールの中から気になるものをご紹介!

小笠原 京平

こんにちは!Tsun Inc. でCTOをしている小笠原です。最近Shopifyのアプリやテーマ開発はよくしています。Shopify DevのリファレンスやShopifyのGitHubリポジトリを見て思うのは、情報量が多すぎる!ですよね。(Shopify公式のGitHubリポジトリだけでも840以上あります)この記事では毎週リリースされた開発ツールの中から厳選して、これは使える!やこの機能は今までなかった!といったものをご紹介しています♪ぜひあなたの開発にお役立てください! 最新情報をチェックしたい方はぜひInstagramのアカウントをフォローして「Shopify Dev Weekly」をみてください!→ https://www.instagram.com/tsun.ec/?hl=ja 2022年7月号 vol.1 - いまからキャッチアップ!Shopify Editionsで発表された開発者向け機能を一挙ご紹介! 今週のトピックは 「いまからキャッチアップ!Shopify Editionsで発表された開発者向け機能を一挙ご紹介!」 です。   Shopify Functions バックエンドロジックをカスタマイズ可能 まだ開発中の機能、全プランで利用可能 最初はチェックアウト機能のカスタマイズが開放され、以降その他の部分にカスタマイズ可能になる予定 Checkout Extensibility チェックアウトの拡張アプリが開発可能 9月末以降から利用可能になる予定 チェックアウトUIやShop Payとのシームレスな連携が提供される 予約販売と後払い決済 Selling...

Shopifyのブログ記事にコードのシンタックスハイライト機能を付ける Tsun Inc.

Shopifyのブログ記事にコードのシンタックスハイライト機能を付ける

小笠原 京平

Tsun Inc.でCTOをしている小笠原です!最近はShopifyのアプリやテーマの開発を行っています。このブログではShopify開発に役立つ情報を共有していきます。Shopifyエンジニアの方の参考になれば嬉しいです! なぜ作ろうと思ったのか テック系のブログ記事を書くときにコードを載せることが多くなりますが、Shopifyのブログ記事そのままだとコードが読みづらいため。 作成したもの Dawnをベースにブログ記事にコードのシンタックスハイライト機能を付けました。シンタックスハイライト機能を実現するライブラリはPrism、highlight.jsなどがありますが、今回はPrismを採用しました。 以下で、DawnテーマにPrismを使ったシンタックスハイライト機能の付け方を説明します!作成物を直接見たい方はTsun Inc.のリポジトリを参照してみてください。 前提条件 対象読者 Shopifyのテーマ変更ができる HTML、CSS、JavaScript、Liquidに関する簡単な知識がある 準備するもの Dawnテーマ (v5.0.0で動作確認しましたが、以前のバージョンでも問題ないはずです) ブログ記事 実装 ※ 今回の実装方法ではShopifyのテーマのコードを直接編集する方法をとるため、必ず事前にバックアップをしておいてください。 今回の実装では PrismのJS、CSSファイルの作成 ブログ記事用のLiquidファイルでPrismを読み込む の2つの工程を行います。 PrismのJS、CSSファイルの作成 単にシンタックスハイライト機能を試してみたい方はこの工程はスキップしても問題ありません。 サンプルとして用意したTsun Inc.のGitHubリポジトリから https://github.com/tsuninc/shopify-theme-examples/blob/main/dawn-with-prism/assets/prism.css https://github.com/tsuninc/shopify-theme-examples/blob/main/dawn-with-prism/assets/prism.js をダウンロードしてください。 ご自分でPrismのファイルを用意したい方は下記を実行してください。...

Shopifyのブログ記事にコードのシンタックスハイライト機能を付ける

小笠原 京平

Tsun Inc.でCTOをしている小笠原です!最近はShopifyのアプリやテーマの開発を行っています。このブログではShopify開発に役立つ情報を共有していきます。Shopifyエンジニアの方の参考になれば嬉しいです! なぜ作ろうと思ったのか テック系のブログ記事を書くときにコードを載せることが多くなりますが、Shopifyのブログ記事そのままだとコードが読みづらいため。 作成したもの Dawnをベースにブログ記事にコードのシンタックスハイライト機能を付けました。シンタックスハイライト機能を実現するライブラリはPrism、highlight.jsなどがありますが、今回はPrismを採用しました。 以下で、DawnテーマにPrismを使ったシンタックスハイライト機能の付け方を説明します!作成物を直接見たい方はTsun Inc.のリポジトリを参照してみてください。 前提条件 対象読者 Shopifyのテーマ変更ができる HTML、CSS、JavaScript、Liquidに関する簡単な知識がある 準備するもの Dawnテーマ (v5.0.0で動作確認しましたが、以前のバージョンでも問題ないはずです) ブログ記事 実装 ※ 今回の実装方法ではShopifyのテーマのコードを直接編集する方法をとるため、必ず事前にバックアップをしておいてください。 今回の実装では PrismのJS、CSSファイルの作成 ブログ記事用のLiquidファイルでPrismを読み込む の2つの工程を行います。 PrismのJS、CSSファイルの作成 単にシンタックスハイライト機能を試してみたい方はこの工程はスキップしても問題ありません。 サンプルとして用意したTsun Inc.のGitHubリポジトリから https://github.com/tsuninc/shopify-theme-examples/blob/main/dawn-with-prism/assets/prism.css https://github.com/tsuninc/shopify-theme-examples/blob/main/dawn-with-prism/assets/prism.js をダウンロードしてください。 ご自分でPrismのファイルを用意したい方は下記を実行してください。...

Shopifyの電話番号から国際番号を取り除いて表示する Tsun Inc.

Shopifyの電話番号から国際番号を取り除いて表示する

小笠原 京平

Shopifyで管理される電話番号(customer.phoneやshipping_address.phoneなど)は国際番号(日本であれば81)が付与されているケースがあります。 付与されるケースとしては、顧客管理画面から顧客データを編集した場合や顧客自身が入力した場合(おそらくレアケース)があります。 電話番号をストア内に表示したい場合や帳票に表示する際に国際番号を取り除いて表示したかったので方法を調べました!

Shopifyの電話番号から国際番号を取り除いて表示する

小笠原 京平

Shopifyで管理される電話番号(customer.phoneやshipping_address.phoneなど)は国際番号(日本であれば81)が付与されているケースがあります。 付与されるケースとしては、顧客管理画面から顧客データを編集した場合や顧客自身が入力した場合(おそらくレアケース)があります。 電話番号をストア内に表示したい場合や帳票に表示する際に国際番号を取り除いて表示したかったので方法を調べました!