asoview! TECH BLOG

アソビュー株式会社のテックブログ

アソビューの SaaS 事業を支えるウラカタチケット - 開発チームからプロダクトまで紹介

エンジニアの村松です。最近は低温調理にハマっており週末にはいろんな肉や魚を低温調理しています。オススメは鶏むね肉を68℃で2時間です。2時間待ってる間にビール2-3杯は飲めます。オススメです。

はじめに

アソビューでは、サービスECSaaS の大きく2つの事業を展開しています。

SaaS 事業の1つに、テーマパークや水族館などのレジャー施設向けチケッティングシステムとして「ウラカタチケット」を提供しています。

今回は、ウラカタチケットの開発を担当している「プロダクト部 SaaS ユニット」のことや開発/運用しているプロダクトについて紹介します。

SaaS ユニット紹介

2022/05時点、SaaS ユニットは11名のメンバーで構成されています。メンバーの内訳は、バックエンド8名、フロントエンド1名、QAエンジニア2名となっています。

現状、フロントエンドエンジニアが少ないのですが、タスクベースに開発を担当することが多く、バックエンドエンジニアがフロントエンドの開発をすることは多々あります。もちろん、フロントエンド/バックエンドのエンジニアが相互に PR をレビューするため、業務を通してスキルの幅を広げられる機会にもなっています。

QA に関しては、現在、リリースサイクルの見直しを図っており、それに合わせてテストプロセスの改善を進めています。以前は案件ごとにテストを実行することが多かったのですが、リリースサイクルを固定してリリース前にリグレッションテストを実施することでより品質を安定させられるようなプロセスを準備しています。

また、Autify の導入を推進しており、リグレッションテストの自動化にも取り組んでいます。Autify 社の事例紹介にも載せていただいているので、ぜひご覧ください。

autify.com

プロダクト紹介

SaaS ユニットでは、施設/社内向けのプロダクトを開発/運用しており、約1000の施設にサービスを提供しています。

パートナーダッシュボード

パートナーダッシュボード は、レジャー施設 (弊社ではパートナーと呼んでいます) の担当者が購入情報や販売実績/着券実績、在庫情報などを閲覧/管理するためのシステムです。パートナーの基幹業務の中核を担う、ミッションクリティカルなシステムです。

主な利用技術 : Java, Spring Boot, React など

チケットマネージャー

チケットマネージャー は、社内向けのシステムで、施設の情報やチケットの情報を登録/管理するためのシステムです。社内向けシステムではありますが、パートナーが販売する商品を扱うシステムであり、こちらもミッションクリティカルなシステムと言えます。

主な利用技術 : Java, Spring Boot, Thymeleaf など

バックエンド API

バックエンド API は、アソビュー! で表示する施設やチケット情報、購入/着券する際の API 群を提供するバックエンドシステムです。また、アソビュー!だけでなく、外部サービスにチケット情報を連携したり着券するための API も提供しています。これらの API がダウンしてしまうと、購入や着券ができなくなり多方面に影響が発生していまいます。こちらもやはりミッションクリティカルなシステムだったりします。

主な利用技術 : Java, Spring Boot

チケットダイレクト

チケットダイレクト は、レジャー施設のサイトから直接チケット購入するためのランディングページを提供するシステムです。EC の仕組みを持たないレジャー施設でもチケットダイレクトを導入することでチケット販売できるようになります。

主な利用技術 : React

Fast-In

Fast-In は、レジャー施設の担当者が、来場したお客様 (弊社ではゲストと呼んでいます) がスマホなどで提示するQRコードを読み取って着券する (チケットを使用済みにする) 際に使用する Android/iOS アプリです。着券業務はパートナーにとっても重要な業務であり、特に繁忙期には非常に多くのゲストが来場するため、迷いなくスムーズに着券操作できる UI/UX が求められます。

主な利用技術 : React Native, Expo

SaaS ユニットは、エンドユーザーにとって重要なシステムを開発/運用しているチームです。 アソビューの開発事例としてこちらのインタビュー記事もぜひご覧ください。

type.jp

どのように開発しているか

SaaS ユニットでは、パートナーの経営効率化を実現するために案件ベースで新規機能開発に取り組んでいます。各案件はそれなりの規模になることもあるため、数人のメンバーでプロジェクト体制を組んで開発を進めています。

その他、パートナーからの要望や個別の改修などもあり、これらはタスクベースで各メンバーが開発を担当します。冒頭で述べた通り、バックエンド/フロントエンド関係なく開発を担当することが多いため、スキルの幅や柔軟性が求められます。

どういうひとが活躍しているか

案件ベース/タスクベースの開発いずれにしても、パートナーやビジネスサイド、プロダクトオーナー、チームメンバーといったステークホルダーとコミュニケーションして DX を推進する力が求められます。

アソビューと言えば、BtoC プロダクトを開発している会社というイメージがあるかもしれませんが、このように BtoB プロダクトの開発もやっており、SIer 出身者も多く在籍しており活躍しています。

横浜・八景島シーパラダイス様との取り組みに関してインタビュー記事を掲載しています。ぜひご覧ください。

www.asoview.co.jp

まとめ

今回は SaaS 事業のうち、ウラカタチケットの開発を担当している SaaS ユニットとプロダクトについて紹介しました。その他の話にもご興味がありましたらこちらもぜひご覧ください。

www.asoview.com

アソビューでは「生きるに、遊びを。」をミッションに、一緒に働くメンバーを募集しています!ご興味がありましたらお気軽にご応募いただければと思います!

www.wantedly.com

【社外講師講演】株式会社Preferred Networks 執行役員 福田様に講演いただきました!

はじめに

アソビューの井上です。
弊社では毎週1時間全プロダクトメンバーが集まるテックトークという場を設けており、何らかの技術ネタなどについて共有、LTなどを行って部やチームをまたいで知見やノウハウの共有や意見交換などをしています。

普段は社内のメンバーでの実施なのですが、弊社CIO田中の元同僚というつながりでなんと、株式会社Preferred Networks 執行役員 福田昌昭 様にお話いただけることになりました!
※以下Preferred Networks様はPFN社様とさせてください、

※ちなみに福田さんと田中はソニーでプレイステーションネットワーク(PS3時代)などの開発をされていた時の同僚とのことで、それだけで私のような当時の学生時代の青春をゲームに捧げていたようなものにとっては感謝の気持ち、畏敬の念でいっぱいでございます!本当にありがとうございました!

f:id:masino83:20220322155428p:plain

福田様のご経歴

ソニーでプレイステーション3やプレイステーションネットワークの開発に携われた後に 当時まだ80人程度(!)だったグリーにご入社されています。
今では考えられないほど小規模の段階なのでエンジニアとして開発プロセスもその場で作りながらやっていくような環境だったとのことです。 そこからソーシャルゲームのブームでどんどん事業も組織も拡大する中まさにその拡大にも貢献されていたそうですが、(退職されるときは3000人になっていたそうです。すごい。。) グリーで統計や機械学習を用いた分析をご経験されていたこともあり、そこからソニー時代の上司の方からのお誘いでPFNにジョインされたそうです。
そしてやはり規模の比較的小さい組織で企画から開発まで全部やるような環境で様々な事業を手がけられているとのことです。
ソニーのPS3、プレイステーションネットワークに始まりソーシャルゲームブーム期のグリー、そして現在のAI技術活用のトレンドの中でのPFNという熱い時代の熱い会社で活躍されてきたとても濃いご経歴だなと思いました!

謎多き企業PFN様の事業

今回の講義ではPFN様の事業の内容をいくつかピックアップして紹介いただきました。
個人的にPFN様は日本を代表するユニコーン企業!として認識しており、創業者を始めとして手練のエンジニア集団である。
というイメージだったのですが、一方具体的にどういった事業をやっている企業なのかはほとんど知りませんでした。
印象的だったのは

  • 自社スパコンを持っている(省電力性能ランキング2020年、2021年世界1位)
  • ディープラーニングに特化したプロセッサを作っている
  • Chainerという深層学習フレームワークの開発をしていた(現在はメンテナンスモードでPyTorchの開発に参加されているようです 参考

というところでこれだけ聞いても私達アソビューのようなWebサービスのベンチャーとはだいぶ趣が違いますね。

また、今回お話を聞いて改めてAIや機械学習を軸にかなりの幅広い業態のクライアントとコラボして様々な活動をされているということを認識出来ました。
お聞きした中でいくつか印象的なポイントをピックアップすると。

イラストをAIが着色してくれるサービスPetalica Paint

petalica-paint.pixiv.dev pixiv社とのコラボということで。こちらに関しては無料で運営されているようです。無料。。

アニメーション映画の制作にニューラルネットワークを活用

projects.preferred.jp これまで膨大な工数が必要であった群衆シーン(モブ)の映像を作成できるとのことです。

東映アニメーションとコラボして背景美術制作工程の効率化

www.preferred.jp PFNが開発するアニメの背景美術制作支援ツールScenify™を活用して背景美術作成を効率化。

小学生向けのプログラミング教材開発

playgram.jp まるでプレイステーションのゲームのようなIFで遊びながら学べる本格プログラミング教材です。

高精細な3Dスキャン

projects.preferred.jp

これまで難しかった透明なものも含め質感も再現した3Dデータに数分レベルの速さでスキャンしてモデリングできるとのことです。

今回の共有いただいた資料では馴染みやすいクリエイティブ分野の話を多くしていただきましたが、他にも工業分野を始め様々な業界向けに事業展開されています。
アニメから工業製品の検査という振れ幅の広さは圧巻です。。 www.preferred.jp

技術ありきのプロジェクト、ニーズとシーズと

PFN社様のプロジェクトの進め方についてのお話を聞いていて弊社には無いパターンだなと思ったのが、テーマによっては研究からはじまる技術題材があって、後からニーズが付いてくるようなケースです。

例えば弊社アソビューのようなビジネスモデルだとゲスト(一般消費者)の「週末何をしよう」や、パートナー(体験事業者、施設)の集客したい、というお困りごと=ニーズに対してマッチングするプラットフォームを提供している構図で、そういったニーズを顧客ファースト志向で掘り下げていってサービスの改善や提供をしていきます。
そのために必要な技術やシステムなどを開拓したり構築したりするという進め方となっています。

一方PFN社様の場合はAI、機械学習を軸としてできることのシーズが有ってそれを社会の課題=ニーズに対してマッチさせていくという方向性が多いと思いました。
例えばアニメーション業界の制作側の人材難、特に背景制作できる人材は需要に対して少ないという課題において先程の支援ツールが適合しないかというところを実際に美術の人にヒヤリングしながらエンジニアとすり合わせていってできることを探っているとのことです。
おそらくここはプロジェクトにもよるとは思いますがアプローチが全く違うのは興味深かったです。

これはAI、機械学習という汎用性がものすごく高い技術領域であるということと、その領域に対して高度な応用技術や知見を持ったエンジニアが多く在籍されているというPFN社様ならではの課題解決のやり方という理解をしましたが、一般のWeb企業の研究開発部門でもこういった進め方は非常に参考になりそうだなと思いました。
アソビューではR&Dに特化した部門はまだ無いですが、例えばレコメンドに機械学習を取り入れる検証を始めようとしておりシーズとニーズをすり合わせて課題解決のための実装をしていくプロセスなどは参考にできそうかも?という印象を受けました。

事業と技術とプロダクトと組織と

一方、課題だとおっしゃっていたのが、以前までは個々のエンジニアが企画開発運用まで全部やるような形で進められていたようで
例えば技術観点でエンジニアの個々の判断で違った言語を使ったり(今はpython中心とのことです)してしまい保守性に乏しくなったりすること、 エンジニアのできること、やりたいことベースにプロジェクトが進んだりして課題に対してコストが高い(いわばオーバーキルのような状態)になるなどがあったそうです。
そういった課題に対して、今はプロダクトマネージャーやビジデブ人材を採用したり組織体制をある程度階層化したりして事業の拡大に合わせてスケールできる組織を作っているとのことでした。

エンジニアの自主性が高いというのは強みでありながらスケールするに従って課題にもなりうるというのは共感できます。
弊社でも現在エンジニア採用強化中で、人数規模を拡大している最中ですが、エンジニアが10人台程度だったころから比べると求められる人材やスキルセットが変わり、プロダクトを作る上で意識しなくてはならない長期的な保守性や可用性をどう開発組織として担保するかなどを考えるフェーズに入ってることを実感しております。

まとめ

今回の話を聞いて、「最先端の技術を最短路で実用化する」ということを掲げられているPFN様の課題解決の範囲の広さや展開しているプロジェクトの一端を知ることができ、私達の課題解決とは違いが垣間見えました。
一方課題解決に対して技術やプロダクトを用いてどう解決していくか、それをスケールさせていく課題などはつながるところがあり、今後アソビューのプロダクトを発展させていく中で参考になりそうな視点もあると思いました。

福田様、ご講演いただきありがとうございました!


We are hiring!

今回は特別会でしたが、アソビューのテックトーク(週次の社内LT会)ではこれからも、今回のような自分たちの事業から少し離れて俯瞰的な視野を持てるような講義なども含めて様々なコンテンツを用意して社内エンジニア同士の交流を増やし、技術力や知見を増やせる場にしていきたいと思っています!

アソビューでは一緒に事業を作っていく仲間を募集しています!
そんなアソビューの環境で働きたいと思った方は、ぜひカジュアル面談をしましょう! www.wantedly.com

カジュアル面談しませんか?

f:id:jjebejj:20220331202210j:plain

こんにちは。アソビューCTOの江部です。

アソビューのことをもっとよく気軽に知っていただくために、みんなでMeetyをはじめました。

  • 最近よく聞くけど実際どうなの?
  • どんなサービスをやっているの?
  • アソビューからスカウトがきた!
  • 自分に合うのか?
  • どんな人がいるの?
  • etc

いきなり選考プロセスに乗るのは抵抗があるという方も、とりあえず中の人の話聞きたいとおもったら誰とでもお気軽にどうぞ!

 

meety.net

meety.net

meety.net

meety.net

meety.net

meety.net

アソビュー 2021年の振り返りと今後の挑戦

f:id:jjebejj:20220331203317p:plain

アソビュー! Advent Calendar 2021の25日目の記事になります。

メリー・クリスマス!アソビューCTOの江部です。

昨日、弊社ではシリーズEの資金調達のプレスリリースを発表しました。

アソビュー、シリーズE資金調達で累計55億円。フィデリティ・三井不動産より本ラウンドで30億円調達。

■調達の背景 当社は2011年に創業し、休日の便利でお得な遊びの予約プラットフォーム「アソビュー!」、観光・レジャー・文化施設向けSaaS及び、DXソリューション事業を主軸としています。…

prtimes.jp
 

プレスリリースの中でも語られていますが、今回の調達資金で僕たちはプロダクト開発をより加速し、これまでアナログであたったレジャーを提供する事業者の皆様のDXをITの力で推進し、ひいてはレジャー・観光を楽しむ人々にとって、より便利なサービスにしていく所存です!

そして、昨年から続くコロナ禍でレジャー・観光産業が依然として回復しきれていない中で、今回の発表は僕たちだけでなく、産業全体が勢いづくきっかけになってくれればと思っています。

さて、実は2021年はアソビューは10周年の年でもありました。

この記念すべき年に、多くのムーブメントを1年間で起こせたとおもっていて、今日はその紹介をしてみたいと思います。とても全部は書ききれませんが、このページを見てくださっている方は、すこーしアソビューに興味をもってくださってると勝手におもっていますので、ぜひ参考にしてみてください。

まだアソビューがどんな会社か、どんなことをやっているのかよくわからないよって方は、ぜひこちらのページを覗いてみてくださいね。

 

www.asoview.com

アソビューが提供するシステムの社会的重要性を実感

 

現在アソビューで提供しているシステムは約8000レジャー施設で利用されており、各施設における電子チケットのWEB販売、発券、入場管理、実績管理など、各施設の業務の中枢を担っています。これまでもこういった機能を提供はしていたものの、よりミッションクリティカル度合いが増したのが2020年のパンデミックでした。それまでは、多くのレジャー施設が対面での受付や窓口でのチケット販売がスタンダードであった状況から、コロナによって状況は一変します。
  • 感染防止観点から、窓口販売を中止し100%オンライン販売に
  • 入場人数制限のための日時指定による事前予約販売が必須に
  • 紙チケットのもぎりではなく、QRコード読み取りによる非接触の入場オペレーション
  • etc

攻めと守りのバランス

 
これまでのアソビューは、攻め重視の案件ベースの新規機能開発にかなりの比重をおいた開発をしてきており、技術的負債やSLOに対して十分な手当ができていない状況でした。そんな中で前述のような問題が発生したわけですが、これを機に、システム運用や品質管理の重要性が全社的な共通認識とできたことにより、可用性や品質に対する取り組みに対する理解度があがりました。現在は、まずは8000施設の基幹業務を担う業界随一のシステムとして求められる可用性・品質を担保するため、全社の最優先プロジェクトとして可用性向上にとりくんでいます。具体的には、
  • SLO基準の再整備と各処理のレイテンシーのモニタリング整理
  • パフォーマンスが劣化した処理の横断チューニング
  • SPA化の推進とコンテンツ配信APIのCDNを活用したキャッシュ施策
  • デプロイ速度の向上
  • マイクロサービス、アプリケーション-DB間のタイムアウトの見直し、サーキットブレーカーによる流量制御
  • AURORAクラスタの再整理
  • Datadog、Pagerdutyを活用したインシデントフローの実装
といったことに集中して取り組んでいます。今後はサービスをより拡充させていく攻めの開発と、品質を維持する守りの開発の双方を、エンジニアリング、ビジネス双方のステークホルダーと共通認識をとりながらすすめていくことを考えています。具体的には、各プロダクトチームにEmbedded SREを配置し、SLOドリブンなサービス品質維持を推進していきます。

新規プロダクト開発への取り組み

 
アソビューは創業から10年、サービス開始からは9年が経過しています。数年前にくらべればビジネスの基盤がある程度確立されてきている中ではありますが、そんな中でも新たな挑戦として今年は大きなプロジェクト2つに着手することができました。

レジャー・観光業界のデファクトスタンダードとなるSaaSをつくりあげる

 
前述のとおり、アソビューでは約8000のレジャー施設様に利用されるシステムをつくっています。現在提供しているシステムは、最も古いもので創業当初から稼働しているものもあり、技術的にも事業的にもレガシーなものとなっています。これらを刷新し、レジャー業界のShopifyともいうべきレジャー施設向けのSaaSシステムの開発にとりくんでいます。16日目の記事でCPOの横峯が紹介しているウラカタの意志を受け継ぎ、さらに多くの業態をカバーできるシステムに進化させます。medium.com 
要件定義にはRDRAを活用、考案者のバリューソース神崎さんとみっちりセッションをおこない、モデルベースの要件定義により、弊社が取り入れるドメイン駆動設計につなげて行きます。また、技術的にも、さらなるスケーラビリティの担保と分散アーキテクチャーの実現を見据え、NewSQLの採用など会社として新たなチャレンジにも取り組んでいます。PMの竹内がRDRAについて書いているのでこちらも御覧ください!medium.com

ゲストにとってより便利にアソビューを活用できるスマホアプリを提供する

Photo by Adrien on Unsplash
アソビューの認知がすこしづつあがってきた数年前から、常々なぜアプリがないのかと聞かれてきましたが、ついに作ります!いままさにデザインとガワの設計が進んでおり、本格開発に進まんとしているフェーズです。個人的にとてもワクワクしています!!

エンジニアがより活躍できる環境 

 
アソビューの開発チームでは、来年からフルリモート、フルフレックスでの業務にチャレンジしていきます。より強い開発組織をつくりあげていくには、地理や時間的な制約をとっぱらった全方位の仲間集めが重要だと感じています。現代の働き方を柔軟に取り入れ、個々人にあったパフォーマンスの発揮の仕方ができるような勤務体系を整えました。ただし、ソフトウェア開発はチームでの取り組みです。そうである以上、フルリモートフルフレックスの自由は、チームをリスペクトし、顧客を第一に考え、プロとしての自覚をもつ。アソビューがかかげる3つのバリューであるFor You, Respect, Professional の価値観を大前提におき、この制度の中で、どのようにチームとしてのパフォーマンスを最大化するかは、大きなチャレンジであると考えています。手探りになるかとはおもいますが、実際に取り組んでみた結果など、どこかで共有できればとおもいます。

さいごに

 
さて、長々と書いてしまいましたが、アソビュー開発チームとして、ここでは到底書ききれないほどいろいろなことに取り組んできました。来年もこれまで以上に様々なことにチャレンジし、みんなで楽しんで行きたいとおもっています。創業10年でもまだまだスタートアップ。変化に富んだ環境で多くの挑戦を皆で楽しみながら、人々の幸せに貢献する。そんなアソビューに少しでも興味をもってくださった方、ぜひカジュアルトークしませんか?弊社の面談では、CTOの私か、CPOの横峯が初回のカジュアル面談を担当しており、(予定が合わないなどで無い限りは。)私達から直接、ざっくばらんにお話をさせていただきます。ぜひ下記サイトからご連絡ください! www.asoview.com

モデルベースで要件定義をやってみた登壇のその後の記録

f:id:daicham:20220401163911j:plain

アソビュー! Advent Calendar 2021 24 日目の記事です。

以前 RDRA のイベントに登壇した記事を書きましたが、

モデルベースで要件定義をやってみた に登壇しました

2021.10.29 にオンラインで開催された モデルベースで要件定義をやってみたに登壇しました。

medium.com

 

今回は RDRA を使った要件定義のその後についてやってきたことと感じたことを書きたいと思います。

現在 2 周目

イベント登壇時はほぼ一周回った感じだったのですが、現在2周目です。2周目に入ったきっかけは、ToBeモデルの精査を行っているときにうまく整理ができない箇所があり、ビジネスモデルに立ち返りました。そこでビジネスモデルを整理した際にシステムスコープに影響するような発見があったのです・・・。

「商流」「物流」「金流」を整理する

ビジネスモデルの整理を行った観点は主に「商流」「物流」「金流」です。この3つの観点を主要なアクターがどのように行っているかを改めて確認しました

  • どのような経路で販売が行われるか (直販?外販?など)
  • どのような経路で販売した商品が購入者に届くか (メールで直接届く?販売代理店経由?など)
  • どのような経路でお金が流れるか (事前決済?現地決済?など)

これまでの捉え方だと問題がありそうだということがわかり、どうすればよいのかをチームで考えた結果、システムスコープを変える必要があるという結論に至りました。。

プロジェクトの目的に立ち返る

システムスコープが変わったとしても、プロジェクトの目的は変わりません。変更されたシステムスコープで目的を達成できるのを確認する必要があります。今回はシステムが1つ追加になりそうです・・・。

ユースケース図の作成

システムスコープが変わり、システムも追加で必要となったのでこれまで慣れ親しんだユースケース図でどのシステムでどのユースケースが必要かを整理しました。ユースケースは RDRA で分析した UC を使いました。

書き起こしてみたユースケース図(イメージ)

アクティビティのブラッシュアップ

ユースケース図で整理した情報で RDRA ToBe モデルのアウトプットであるアクティビティを更新していきます。また、ここからアクターや外部システムなども情報更新していきます。

まとめ

今回得られた知見は以下でした。今後もがんばります。

  • ビジネスの最上段とも言える「商流」「物流」「金流」で捉えてみるとシステムスコープを変えるような新たな発見があった
  • スコープが変わってもプロジェクトの目的は見失わないこと!
  • 上記で得た発見をもとに ToBe モデルのブラッシュアップを行う感覚

一緒に働く仲間を募集しています!

「生きるに、遊びを。」をミッションに、週末や旅行のお出かけ先をお届けすべく、そしてレジャー事業者さんに対して様々な業務支援し業界を盛り上げるべく奮闘しています。

仲間を絶賛募集中ですのでお気軽にのぞいてみてください。

https://www.wantedly.com/companies/www-asoview-co/projects

RDRA だけでなく DDD に取り組んだり様々な技術に挑戦しています。こちらもぜひを御覧ください。

アソビューを支える技術 2020

アソビュー Advent Calendar 2020の2日目です。

medium.com

 
 
 
 
 
 
 
 

IntelliJのクエリフォーマットをちょこっと改善


IntelliJのクエリフォーマットをちょこっと改善

Photo by Sigmund on Unsplash

これはアソビュー Advent Calendar 2021の23日目の記事です。

バックエンド担当、ブログでは小ネタ担当の佐藤です。
今回も一息で書き切ります!

ちょっと不便だけとそのままにしてることありませんか?

IntelliJでクエリを書くようになって補完機能でかなり助けられてます。

ただそのまま使っているとちょっと個人的には好きではない書きっぷりになってしまいます。

エイリアスいらないんです。

Yes、設定で変えられます。

「Preference > Editor > Code Style > SQL」ではなく、
「Preference > Editor > General > Code Completion > SQL」にて変更可能です。

結果。

ちょっと不便だけどそのままにしがちなことってありますよね?!
今回はレビューで大きいクエリをリーディングしていたときに読みづらかったので調べてみました。

この記事をみて1人でも設定変更してハッピーになっていただけたら幸いです!


さいごに

アソビューでは現在多方面で積極採用をしていますので、興味がありましたらお気軽にご応募いただければと思います。www.wantedly.com

 

 

Shopify APIで注文のフルフィルメントを行う

これはアソビュー Advent Calendar 2021の21日目の記事です。

アソビューでバックエンドエンジニアをしている上中です。

今回は、ShopifyのAdmin API( GraphQL)を利用して、Shopifyのストアで注文された注文情報に対してフルフィルメントを行う方法についてご説明します。

フルフィルメントとは?

Shopifyにおけるフルフィルメント(Fulfillment)は、いわゆる「出荷」のことです。アソビュー!ギフトでは、一部のギフト商品について、注文をトリガーに外部のAPIを呼び出し、注文者に対して自動でギフトコードをメールで送信しています。このギフトコードのメール送信自体が「出荷」となるため、Shopify上の注文情報を出荷済みとする必要があります。

APIで注文情報から出荷IDを取得する

Shopifyの出荷はロケーション(出荷元)ごとに行います。当然のことながら、一つの注文には複数の商品が含まれることがあり、さらに商品ごとに出荷元が異なる場合があります。その場合、出荷元ごとに複数の出荷情報が必要となります(各出荷元に個別に出荷依頼を出すため)。

よってフルフィルメントを行うには、まず注文情報から未発送の出荷情報を取得する必要があります。APIで取得してみましょう。

ちなみに、PostmanはBodyの形式にGraphQLが選択できるため、QueryやVariablesでのリクエストがしやすいです。

URL:

https://<ストアのホスト名>/admin/api/2021-10/graphql.json

ヘッダ情報:

Content-Type : application/jsonX-Shopify-Access-Token : <Admin APIパスワード>

Query:

Variables:
注文IDは、対象の注文をShopifyの注文ダッシュボードで開いた際にURLに含まれる数字の羅列です。

これで以下のようなJSONが返されます。

"displayFulfillmentStatus": "UNFULFILLED",

となっている通り、まだ未出荷状態であることがわかります。

“fulfillmentOrders”の配列に、出荷元ごとの注文出荷情報が入っています。これを元にフルフィルメントを作成します。

APIでフルフィルメントを作成する

ではフルフィルメントを作成していきます。フルフィルメントは出荷元ごとに作成できます。今回は”fulfillmentOrders”が2つあることからもわかるとおり、2つの異なる出荷元の商品が同じ注文に含まれています。

早速一つをフルフィルメントしてみます。URLやヘッダは注文取得と同じなので省略します。

Query:

Variables:

これで一つ目の出荷が完了したことになります。Shopifyのダッシュボードで注文情報を見てみると、「一部出荷済み」となります。APIで見てみても、以下の通り”PARTIALLY_FULFILLED”となり、フルフィルメントを作成した注文出荷情報はfulfillmentOrdersからなくなっています。

ということで同じように残りの出荷情報もフルフィルメントしてみると、以下のように「出荷済み(displayFulfillmentStatus: FULFILLED)」となり、fulfillmentOrderは無くなります。

以上でAPIによる出荷が完了です。今回は以上になります。

「生きるに、遊びを。」をミッションに掲げる我らがアソビューでは一緒に事業をつくる仲間を絶賛募集中です。
興味がありましたらお気軽にご応募いただければと思います。

www.wantedly.com