前回の「Meet Magento 2017 ブース出展しました!」に引き続き、Meet Magento2017のお話です。
今回は、講演内容を簡単にご紹介します!
ーーーーーーーーーーーーーーーーーーーー
クラベスのMagento開発は、ECのみならず、店舗での接客販売も実現した作りにすることで、在庫・顧客・注文を一元管理できる仕組みを構築しています。
売上の最大化を目指し、販売機会ロスを最小限にする取り組みです。
今回の講演では、「お客様のやりたいこと」に対してエンジニアがどう考え機能化して、実現したのかをエンジニア視点の苦労話を交えながらお話しました。
家具とEC
EC開発中のお客様の中に、自社家具の生産・販売を行っているお客様がいらっしゃいます。ここではA社としましょう。
実は、家具とECって相性がいいんです。
正確に言うと家具ってO2Oに向いているんです。
理由は単純です。持って帰れないから。
そのため、個人情報をいただく必要がありますし、その情報をきちんと管理して、他の商品をおすすめしていくこともできます。
また、悩みとしては、豊富な在庫を実現するには、保管コストが掛かりすぎてしまうので、正確な生産予定と販売が密接に関係してきます。
接客とECでMagentoを使いたいというお客様からのご要望で、Magentoの独自カスタマイズをしました。
商品について
今回実現するECサイトでは
家具・ソファ・ラグ・カーテンなどの多彩な商材が存在します。
特に家具やソファには、組み合わせや色によって商品ページ側で異なる表現をする必要があります。
例えば、上下の組み合わせが選べる食器棚。 商品ページで組み合わせ選択を実現するには、「セット商品」という商品の登録方法があります。
A社では、食器棚の組み合わせの他にも、食器棚の取手を選ぶことができるサービスを行っています。
この取手は在庫管理されていません。商品ページで実現するときは、食器棚の”オプション選択”という扱いにしています。
ということで、セット商品 × オプション選択で登録しようとしたのですが、悲しいことにMagentoのデフォルトの仕様では、セット商品に対するオプション設定は許可されていなかったのです・・・。
なので、この部分は独自に実装しました。
・選択した食器棚(上)にオプションが設定されていれば、セレクトメニューでオプションを表示する機能をJavascriptで記述
・カート画面で選んだオプションが表示されるように記述
一見、上述の処理だけであれば簡単そうにみえますが、オプションの値が正規化されていない形でDBに保存されているのでバックエンド側の処理は苦労しました・・・。
オーダーシートについて
店舗スタッフが手書きで書いていたオーダーシート(注文書)をシステム化したいというお話です。
配送日・出荷元ごとにオーダーシートを分けていて、さらに家具用・ソファー用など専用のオーダーシートを分けています。
一度のお買い物で、家具やソファーなどを複数購入した場合、家具用オーダーシート/ソファー用オーダーシートと分けなければいけません。
また、複数購入した家具の配送日が異なる場合、さらに配送日ごとに家具用オーダーシートを分けなければいけません。
これをどのようにシステム化するのか。
注文機能を大改造しました。
1つのオーダーシートは、1つの注文件名として管理します。
例えば、家具とソファーを同時購入した場合、お客様からの注文は1度ですが、管理的には家具とソファーそれぞれで注文件名が作成されています。
MagentoのMulti Shipping Moduleを参考にして、注文機能を独自モジュールに置き換えました。
Magentoの機能も必要に応じて利用します。
複雑な税計算は、DIやプラグインを駆使してMagentoの既存機能に任せることができたので、その点はラッキーでした。
これをフルスクラッチしていたかと思うと、ゾッとします。。。
ただ、テストパターンが膨大になるので、アップデートが大変になりそうです。
予定引当について
A社では、自社工場で家具の生産もしています。
予定在庫(入庫予定)をMagentoで管理したいとご要望をいただきました。
要件としては、
・在庫がなくても予定在庫がある場合は、未来日で注文ができるようにする。
・予定在庫が複数あった場合は、より遠い未来日の予定在庫に引き当たるようにする。
・在庫も予定在庫もなかった場合は、生産リードタイムを加味した日付以降なら注文できるようにする。
というものです。
予定在庫のプラグインも探したのですが、この条件に合致するプラグインが見つからず、独自につくることにしました。
さらに、注文前に予定在庫を加味した納期を確認できる機能をつけて、より接客にも使いやすい機能としました。
また、セット商品など複数商品を組み合わせる商品は、一番入庫予定が遅い商品に合わせて納期がでるようにしました。
今後の課題としては、生産リードタイムと出荷準備リードタイムなど、営業日を管理するための機能がMagentoにないためこれを管理する機能をつくる必要があります。
おわりに
なかなか壮大なプロジェクトに挑戦しています。
この後もユニットシェルフやオーダーカーテンなど新たなサービスを追加し、家具販売・家具EC業界に革命を起こせたら・・・と考えています!
ーーーーーーーーーーーーーーーーーーーー
ECサイトの売上向上、業務の効率化に悩まれている会社様
クラベスが問題解決にお手伝いします!
ぜひ一度、ご相談ください!!
以上、「Meet Magento 2017」のご報告でした。
▼▼エンジニア積極採用中です!みなさんのご応募お待ちしております!!
「世界シェアNo.1のECプラットフォームで世界を変えるエンジニア募集!」
=====================================