突然ですが、ある期間が経過したら商品を非表示にしたいなって思ったことは無いでしょうか?
弊社ではCREAP STOREという雑貨屋を運営していまして、賞味期限がある商品のいくつかは店の棚に居続けてその日を迎えてしまっています。
期限切れの商品をお客様が誤ってかごに入れてしまわないために、
また、期限間近の商品は値引きするなどを対応するために、
指定した期日になったら自動的に掲載商品を一旦非表示にしてその後対応したいと考えています。
しかし、Wixストアのオートメーション機能は今のところカゴ落ちと購入しかトリガーが設けられておらず希望の機能は実装できそうにありません。
そこで、商品の非表示は手動で行うとして、賞味期限が近づいていることについての通知は自動化させようと考えて実装してみました。
使用したのはGoogleスプレッドシートとGoogle Apps Script(GAS)です。
今回の機能は下記の仕様で進めました。
・商品の賞味期限設定 → 手動
・商品の賞味期限をメールで通知 → 自動
・商品を非表示または値下げなどの対応 → 手動
現状、Wixストア内の自動化ができていないので、これができるようになって自動化を進められないかなと願っております。(要望)
作成した管理表が以下のとおりです。
実際には店長が入荷と同時に食品の賞味期限を記入して管理しているExcelの一覧表がありますのでそちらを利用する予定です。
GASは以下の通りです。
function limitAlert() {
//格納用の変数宣言
var ss,sh,start,last,today,dispToday,ss_url,date,util;
var col0,val0,col1,val1,col2,val2,limit,dispLimit,diff;
//スプレッドシートデータ取得変数設定
ss = SpreadsheetApp.getActiveSpreadsheet();
sh = ss.getActiveSheet();
ss_url = ss.getUrl();
start = 2;
last = sh.getLastRow();
date = new Date();
//今日の日付取得
today = new Date(date.getFullYear(),date.getMonth(),date.getDate());
//行の最初から最後までを取得
for (var i = start; i <= last; i++){
//商品列
col0 = "A"+ i;
val0 = sh.getRange(col0).getValue();
//賞味期限列
col1 = "B"+i;
val1 = sh.getRange(col1).getValue();
//送信済判定列
col2 = "C"+i;
val2 = sh.getRange(col2).getValue();
//賞味期限表示処理
if (val1 != "") {
dispLimit = Utilities.formatDate(val1,"JST","yyyy/MM/dd");
}
//日付無エラー回避
else {
dispLimit = "";
}
//賞味期限取得
try{
limit = new Date(val1.getFullYear(), val1.getMonth(), val1.getDate());
}
catch(error){
break;
}
//期日を算出
diff = Math.floor((limit - today)/(60*60*24*1000)) + 1;
//期日判定 31日前になったら通知
if (diff <= 31 && val2 == false){
//Gmailの宛先を設定
var arrayEmail = [];
arrayEmail.push('メールアドレス');
arrayEmail.push('メールアドレス'); //任意で追加
//メール表題
var subject = val0 + "\t 期限間近のお知らせ";
//Gmail送信
new GmailApp.sendEmail(arrayEmail,subject,
'賞味期限が近づいています!たのんます〜!\n・商品名:' + val0 + '\n・期日:' + dispLimit + '\n確認はこちら:' + ss_url
);
//送信済みフラグ
var flag = sh.getRange(col2).setValue("true");
}
}
}
トリガーの設定は以下のようにして、10時になったら実行するようにしました。
試験的にGの送信済みのチェックを外してスクリプトを実行させると、以下のようにメールが来ます。
このような具合で期限間近の商品があれば通知が来て、開店前にその商品の対応ができるようになるといった具合です。
これが期限の管理と通知、該当商品の表示・非表示を自動に出来るようになったら良いのになと思っています。
賞味期限のある商品を扱っている皆様は、どのようにして管理を行っているのでしょうか?
他にいい案があれば是非教えて頂きたいです!🙇♂️
@CREAP Co. KAI さま コメントありがとうございます。独自でこのような設定をされているとは、弊社のメンバーも驚いていました。 現在 Wix でこのような機能を用意していないので、他の方の参考にもなると思います。