1
1
こんにちは。
2
- 趣味でShopify[ マーチャントをやっている] ( https://k9bookshelf.com/ ) ものです。
2
+ 趣味でShopify [ マーチャントをやっている] ( https://k9bookshelf.com/ ) ものです。
3
3
4
4
この記事は [ Shopify開発を盛り上げる(Liquid, React, Node.js, Graph QL) Advent Calendar 2020] ( https://qiita.com/advent-calendar/2020/shopify-liquid ) の11日目の記事です。
5
5
6
- 昨日は[ benzookapi] ( https://qiita.com/benzookapi ) さんの[ placeholder] でした。
6
+ 昨日は [ benzookapi] ( https://qiita.com/benzookapi ) さんの[ placeholder] でした。
7
7
8
8
皆さんShopifyで商品情報やページの編集をする時はどうされていますか?
9
9
当然ですが、ショップの管理画面で提供されているエディタ(以下リッチエディタ)で更新されていることと思います。
10
- (ちなみにShopifyのデザインシステム[ Poralisで提供して欲しいという要望] ( https://github.com/Shopify/polaris-react/issues/303#issuecomment-415554317 ) が多く集まっているようですね)
10
+ (ちなみにShopifyのデザインシステム [ Poralisで提供して欲しいという要望] ( https://github.com/Shopify/polaris-react/issues/303#issuecomment-415554317 ) が多く集まっているようですね)
11
11
12
12
私は元々仕事でShopifyアプリの開発をしていた延長で、趣味と実益を兼ねてこのサイトを出店しているのですが、マーチャントの立場で改めて管理画面を使ってみると、どうにもこのエディタでは満足できないことに気づいたのです。
13
13
14
- と言うのも普段公私ともに文書を書くのに最もよく使っているのは[ markdown] ( https://www.markdownguide.org/ ) だからです。
14
+ と言うのも普段公私ともに文書を書くのに最もよく使っているのは [ markdown] ( https://www.markdownguide.org/ ) だからです。
15
15
16
16
また本業のプログラマーという職業柄、文章を書くには使い慣れたテキストエディタを使いたいという気持ちもあります。
17
17
18
- Shopifyではテーマ開発用ツールとして[ theme-kit] ( https://github.com/Shopify/themekit ) が提供されており、
18
+ Shopifyではテーマ開発用ツールとして [ theme-kit] ( https://github.com/Shopify/themekit ) が提供されており、
19
19
Shopifyで編集したテーマファイルをダウンロードしたり手元のエディタで編集したものをアップロードすることが出来ます。
20
20
21
21
これに近い体験が、コンテンツの管理でも出来ないものでしょうか?
22
22
23
- コミュニティを[ 検索してみると] ( https://community.shopify.com/c/forums/searchpage/tab/message?advanced=false&allow_punctuation=false&filter=location&location=category:en&q=markdown ) 、markdownで編集出来るようなアプリをリリースしたというコメントは散見されるものの、デッドリンクとなっているなど、2020年時点でも使える解決策は見つかりませんでした。
23
+ コミュニティを [ 検索してみると] ( https://community.shopify.com/c/forums/searchpage/tab/message?advanced=false&allow_punctuation=false&filter=location&location=category:en&q=markdown ) 、markdownで編集出来るようなアプリをリリースしたというコメントは散見されるものの、デッドリンクとなっているなど、2020年時点でも使える解決策は見つかりませんでした。
24
24
25
- 幸いShopifyには[ Admin API] ( https://shopify.dev/docs/admin-api ) を始めとする、多種多様なAPIが公開されています。
25
+ 幸いShopifyには [ Admin API] ( https://shopify.dev/docs/admin-api ) を始めとする、多種多様なAPIが公開されています。
26
26
また、リッチエディタで保存された文言は、内部的にはHTMLで保存されているようです。
27
27
28
28
商品情報編集やページ・ブログ記事の更新までAPI経由で操作が可能なので、theme-kitよろしくcontent-kitのようなツールが書けそうです。
29
- (と言うか、この記事は[ content-kitと名付けたその自作ツール] ( https://github.com/kogai/k9bookshelf/blob/main/content/README.md ) で更新しています)
29
+ (と言うか、この記事は [ content-kitと名付けたその自作ツール] ( https://github.com/kogai/k9bookshelf/blob/main/content/README.md ) で更新しています)
30
30
31
31
## ツールの構成
32
32
33
33
開発に際して参考にしたドキュメントやツールは以下の通りです。
34
34
35
- - [ Private App] ( https://help.shopify.com/en/manual/apps/app-types#private-apps ) でショップへのアクセス権限を取得
35
+ - [ Private App] ( https://help.shopify.com/en/manual/apps/app-types#private-apps ) でショップへのアクセス権限を取得
36
36
- [ Admin API] ( https://shopify.dev/docs/admin-api )
37
- - [ GraphQL API] ( https://shopify.dev/docs/admin-api/graphql/reference/common-objects/queryroot/index )
38
- - GraphQLのクエリファイルから以下のツールでクライアントを生成
39
- - https://github.com/Yamashou/gqlgenc
40
- - https://github.com/99designs/gqlgen
41
- - [ REST API] ( https://shopify.dev/docs/admin-api/rest/reference )
42
- - ページとブログの更新はGraphQL APIでサポートされていないのでzREST APIも併用
43
-
44
- Shopifyはドキュメントが非常に充実していて、[ GraphiQLアプリ] ( https://shopify.dev/tools/graphiql-admin-api ) によるインタラクティブな試行環境もあるので、
37
+ - [ GraphQL API] ( https://shopify.dev/docs/admin-api/graphql/reference/common-objects/queryroot/index )
38
+ - GraphQLのクエリファイルから以下のツールでクライアントを生成
39
+ - [ https://github.com/Yamashou/gqlgenc ] ( https://github.com/Yamashou/gqlgenc )
40
+ - [ https://github.com/99designs/gqlgen ] ( https://github.com/99designs/gqlgen )
41
+ - [ REST API] ( https://shopify.dev/docs/admin-api/rest/reference )
42
+ - ページとブログの更新はGraphQL APIでサポートされていないのでREST APIも併用
43
+
44
+ Shopifyはドキュメントが非常に充実していて、 [ GraphiQLアプリ] ( https://shopify.dev/tools/graphiql-admin-api ) によるインタラクティブな試行環境もあるので、
45
45
特に詰まることもなく開発出来ました。
46
46
47
- ページやブログはREST APIの[ Goクライアントライブラリ] ( https://github.com/bold-commerce/go-shopify ) でサポートされていませんでした。
47
+ ページやブログはREST APIの [ Goクライアントライブラリ] ( https://github.com/bold-commerce/go-shopify ) でサポートされていませんでした。
48
48
この辺りはShopifyアプリではあまり取り扱われないリソースなのかも知れません。
49
49
50
50
唯一困ったのは、テーマファイルや他のツール(テーマや書誌情報の規格化されたデータファイルの取り込みツールなど)を同じレポジトリで管理している都合上、
51
- [ bazel] ( https://bazel.build/ ) でビルドをしているのですが、GraphQLクライアントの生成ツールが依存している ` *.gotpl ` などのファイルの依存関係が自動生成できなかったことです。
51
+ [ bazel] ( https://bazel.build/ ) でビルドをしているのですが、GraphQLクライアントの生成ツールが依存している ` *.gotpl ` などのファイルの依存関係が自動生成できなかったことです。
52
52
53
53
Shopify関係ないですね。
54
54
55
- (bazelのgo系ルールには依存解決時にパッチを当てる仕組みがあるようで、[ パッチを書くことで] ( https://github.com/kogai/k9bookshelf/blob/b7bb804c0ad45b5eed5215d1b62a9c434c4cc6aa/content/com_github_yamashou_gqlgenc.patch#L1-L25 ) 解決出来ました)
55
+ (bazelのgo系ルールには依存解決時にパッチを当てる仕組みがあるようで、 [ パッチを書くことで] ( https://github.com/kogai/k9bookshelf/blob/b7bb804c0ad45b5eed5215d1b62a9c434c4cc6aa/content/com_github_yamashou_gqlgenc.patch#L1-L25 ) 解決出来ました)
56
56
57
57
まだ` theme-kit ` に比べると、watchがないなど基本的な機能がまだ足りてないのですが、一応使い始めることは出来ています。
58
58
@@ -62,7 +62,10 @@ Shopify関係ないですね。
62
62
63
63
[ ] ( gif )
64
64
65
- バイナリを[ Releaseページ] ( ) に置いておくので、良かったら試してみて下さい。
65
+ ショップにあるコンテンツの取得と手元のコンテンツのアップロードをサポートしています。
66
+ (HTMLとMarkdownの相互変換で微細な差異が生じることがあります)
67
+
68
+ バイナリを [ Releaseページ] ( https://github.com/kogai/k9bookshelf/releases ) に置いておくので、良かったら試してみて下さい。
66
69
67
70
```
68
71
content -h
81
84
-h, --help help for content-kit
82
85
83
86
Use "content-kit [command] --help" for more information about a command.
87
+
84
88
```
85
89
86
- 次回は[ ShoheiTai] ( https://qiita.com/ShoheiTai ) さんの「Shopifyアプリの選定・運用ノウハウとか」です。
90
+ 次回は [ ShoheiTai] ( https://qiita.com/ShoheiTai ) さんの「Shopifyアプリの選定・運用ノウハウとか」です。
87
91
お楽しみに!
0 commit comments