【技術ブログ】Shopifyで商品の独自項目をCSVアップロードする

ECグループのタケウジです。
ひさびさの(はじめての?)技術ブログです。

システムフレンドでは、EC-CUBEだけでなくShopifyでのECサイト構築も行っています。
 ≫ EC-CUBE工房のHPはこちら

今回は、よくあるご要望の1つとして
「商品に独自の項目を追加して、CSVで一括登録したい!」
という要件を実現する方法を簡単にご紹介します。

Shopifyでは、商品名や価格、詳細情報といった標準の項目のほかに、独自のフィールドも”メタフィールド”として持たせることができます。
たとえば、商品に、”ケース”といった「単位」のフィールドを追加したり、「メーカURL」といった項目を自由に追加できたりします。

これをCSVアップロード時にも指定しようとすると、有料のアプリ・・となってしまうわけです。
実は、日本の無料アプリもあって、こちらは使い勝手がいいです。
ただし、もともとある自社のフォーマットに合わせてアップロードしたい! となるとアプリ開発の出番です。

実装の方法としては、GraphQLのMutaionを利用し、メタフィールドも含めた登録/更新を行います。
ただ、単純に登録しようとすると、例えばShopify内の販売チャンネルと紐付かないとか、仕様にあることないことのクセを見ながら、クエリー文を作成します。
上の場合、publishedAtを必ず指定することで、この問題をクリアできます。

クエリーができたら、今度はサーバへの配備です。アプリは自前のサーバに配備する必要があって、このあたりが当たり前ではありますがEC-CUBEと違う点です。
Herokuを使うのが手っ取り早いかもしれませんが、
今回のアプリはAWS Lambda Function URLsを使っています。
そして、ダブりますが、静的コンテンツ用にAWS Amplify Hostingにも持っていきます。
デプロイは

$ sls deploy
$ amplify publish
の2つのコマンドだけで行えます。

これで、独自のフィールドを含んだ商品を自社のフォーマットでCSVアップロードできるようになりました。
”アップロード”っといっても、実際にサーバにCSVをアップしているわけではなく、すべてクライアント側で処理し、クエリーを呼んでいます。
__alt__

システムフレンドではShopifyでのECサイト構築もお手伝いしています。
お気軽にお問い合わせください。