😸
楽天とAmazon購入情報統合の自動化
タイトル
「楽天とAmazon購入情報統合の自動化」
イントロダクション
楽天RSMの使いづらさ、Amazon購入商品の発送状況の確認の手間、発注の複雑さ、利益率と商品ごとのROI管理の困難さなど、複数の課題に直面したため、自動化の必要性を感じました。これらの課題を解決するため、Google Apps Script、TypeScript、Claspを駆使して、楽天とAmazonの購入情報をスプレッドシートに自動的に記入するシステムを開発しました。
プロジェクトの目的
- 楽天からの注文を楽天RSM APIを利用してスプレッドシートに自動的に記入。
- Amazonからの発送メールを受信し、それをスプレッドシートに記録。
技術的アプローチ
- Google Apps Script (GAS): スプレッドシート操作に必須。
- TypeScript: コードの安全性と保守性を考慮し、長期的な利用に適している。
- Clasp: コード管理ために使用。
発送メールのhtml解析
受信した発送メールからデータを解析し取得します。
これが結構めんどくさかった...
Html解析にはCheerioライブラリを使用します。
const $ = Cheerio.load(email);
/** 注文番号 */
const orderNumber: string = $('#main #header td.title a').text();
/** 決済金額 */
const paymentAmount: number = $('#criticalInfoCostBreakdown .price').first().text().match(/¥\s*([\d,]+)/)[1];
/** 追跡番号 */
const trackingNumber: string = $('#trackingText p').text().match(/お問い合わせ伝票番号は(.*?)です。/)[1];
/** 配送業者 */
const deliveryCompany: string = $('#trackingText p').text().match(/ご注文商品は(.+?)でお届けいたします。/)[1];
// 発送先や名前などが配列で入ってくる。
const data: string = $('#criticalInfo strong').text();
発送先の郵便番号や住所は人によってパターン違うから例外対応が結構だるかった。
エラーケースの検証とか含めて多分一番時間かかった。
成果
- Amazonでの発注を除くほぼ全ての業務を自動化し管理コストの大幅な削減に成功しました!
課題と今後の方向性
- 現在はAmazonの発送情報をGmailから取得していますが、Amazon APIを使用することでバグの発生率をさらに低減できる可能性があります。
- 今後はAmazon APIの利用を検討し、さらなる自動化と効率化を目指す!
Discussion