Yasuaki Posted April 22, 2021 Share Posted April 22, 2021 こんにちは! このページではLoyverseの売上データを自動で会計freeeに送信する方法をご紹介します。 ※本内容は動作保証対象外です。ご利用は自己責任でお願い致します。 2024/03/04追記:本記事の内容は最新のfreee APIに対応しておりません。何卒よろしくお願いいたします。 Loyverse Appマーケットプレイスには会計freeeと直接連動するためのアプリはありませんが、「Integromat」と「Google Sheets」を利用することでLoyverse上のレシートを会計freeeに直接送信することができます。 手順 1:freeeとGoogle Sheetsの連携 取引データ連携用シートを取得し、自分のGoogle Driveにコピーを作成します。 「使い方」シートの指示にしたがって、連携用シートをfreeeアカウントに接続してください。 手順 2:Integromatのアカウントを作成し、Loyverseと接続する。 https://www.integromat.com/にアクセスし、アカウントを作成します。 その後、ログインした状態で「Create a new Senario」をクリックします。 「Loyverse」をシナリオに追加したら、「Watch Receipts」を選択します。 次にIntegromatとLoyverseを接続するために、「Connection」→「Add」→「Loyverse OAuth2」を選択してください。 これによって、IntegromatがLoyverseのデータにアクセスする許可を求める画面が表示されますので、許可をしてください。 LoyverseとIntegromatの接続が完了したら、Event Type「Create」を選択し、店舗名を選択してください。 販売量が多い店舗では、Limitに大きな数を入力してください。 次にIntegromatにGoogle Sheets [Add a row]を追加して、下図のように設定してください。 Values欄に、必須項目の収支区分、発生日、売上高、金額を図のように設定します。 自動更新のインターバルを入力して、保存ボタンを押すとIntegromatの設定は完了です。 手順 3:Google Apps Script で連携用シート→freeeの書き込みを自動化する。 取引連携用シートから「スクリプトエディタ」を開きます。 「トリガー」をクリックし、「freeeMenuDealsPost」をスプレッドシート「変更時」にトリガーが発動するようセットしてください。(時間ごとのトリガーでもかまいません。) 次に「スクリプト」へ移動し、function freeeMenuDealsPost()の内容を変更します。 この変更は、スプレッドシート上のデータをfreeeに書込んだあと、取引データを削除することを意味しています。 (取引データの重複を避けるため。) 元の部分 function freeeMenuDealsPost(){ dealsTranscription(); postDeals(); } 変更後 function freeeMenuDealsPost(){ dealsTranscription(); postDeals(); var bk = SpreadsheetApp.getActiveSpreadsheet(); var ss = bk.getSheetByName("Data"); ss.getRange('A2:Q1000').clear(); } 以上で、Loyverseとfreeeを連携させる手順は終了です。 実際にLoyverse POSで取引を行い、freeeに記録されることを確認してください。 今回の方法では、各レシートごとの取引がfreeeに記録されていきますが、一日の売上合計のみの記録が良い場合は、Google Sheetsの取引連携用シートを任意に編集してください。 また、Google Sheetsからfreeeへデータ連携をする際、 このコンテキストから SpreadsheetApp.getUi() を呼び出せません(行 181、ファイル「POSTリクエスト」) というエラーが発生する場合がございます。 その場合は、スクリプトエディタから当該行を削除またはコメントアウトしてください。 ※コメントアウトの例 /*SpreadsheetApp.getUi().alert( countPostedDeals + "件の取引を送信しました" );*/ なお、税率が2種類ある場合は、Integromatの編集が必要になります。 これについては、余裕があれば更新します。 以上です。 筆者:磯部 宇彰 参考サイト:新卒ビジネス職の人間が、IFTTTを使ってGoogle Homeとfreeeを連携した話【freee API】GASを用いてGoogleスプレッドシートと連携する Link to comment Share on other sites More sharing options...
Yasuaki Posted May 27, 2021 Author Share Posted May 27, 2021 補足:手順1での取引データ連携用シートの詳細 freeeサポートページからコピー可能なGoogleシートを利用します。(取引データをfreeeに送信(Googleスプレッドシート)) 次に、Integromatからデータを出力するためのシートを新しく用意しました。 今回は「Data」「Datevalue」と名付けます。 「Data」シートは、Integromatからデータを書込むためのシートです。 「Datevalue」シートは、Loyverseの日付データフォーマットを、freeeに互換性のあるデータフォーマットに直すためのシートです。 「Data」シートの一行目に「取引入力」シートの四行目をコピーします。 ここで、太字になっている項目が必須項目です。 「Datevalue」シートでは、一列目に「Data」シートのC列(発生日)をコピーします。 ただしここでは、Indirect関数を使用します。Indirect関数を利用する理由は、Integromatからデータを書込んださい、参照元がずれてしまうからです。 =indirect("Data!C"&row()) 二列目では、一列目の日付データをfreeeの形式に変換します。 =if(A2="","",datevalue(mid(A2,1,10))) 最後に「取引入力」シートに「Data」シートおよび「Datevalue」シートから情報をコピーします。 「収支区分」「勘定科目」「金額」列では、Indirect関数を使って情報をコピーします。 =indirect("Data!A"&ROW()-3) =indirect("Data!F"&ROW()-3) =indirect("Data!H"&ROW()-3) 「発生日」列では、「Datevalue」シートの日付をそのままコピーします。 =Datevalue!B2 以上です。 Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now