こんにちは、こんです🦊
今日は、返品処理の自動化をさらに一歩進めて、「毎日定時で動く返品CSV生成バッチ」を完成させました!
🧪 今日のチャレンジ:「任意の人が動かさなくても、業務が進む」状態を作りたい
これまで、Streamlit やスクリプトで返品対応の自動化を進めてきましたが、
誰かが手動で実行しないといけない
実行結果を報告する手間が残る
という「最後の一歩」が残っていました。
⚙ 取り組んだ内容:定時自動バッチの構築(Python × Google Sheets × Slack)
✅ ステップ①:対象データの抽出
Googleスプレッドシートの返品リストから、
荷物のステータス == “良品移動”
出力ステータス != “TRUE”
の条件で抽出。すでに出力済のものはスキップされます。
✅ ステップ②:SQLiteから商品明細をJOIN
返品問番(送り状番号)をキーに、
あらかじめロジレスから取得しSQLiteに保存されている出荷データと突合。
商品が複数含まれる場合も、1商品=1行に展開
✅ ステップ③:CSVを自動生成+Slack通知
出力先フォルダを固定し、
ファイル名には 日時_件数 を付与。
さらに Slack には以下のようなコードを利用して通知を送信:
from slack_sdk import WebClient
from slack_sdk.errors import SlackApiError
def notify_slack(message):
client = WebClient(token=SLACK_TOKEN)
try:
client.chat_postMessage(channel=SLACK_CHANNEL, text=message)
except SlackApiError as e:
print(f"Slack通知エラー: {e.response['error']}")
notify_slack(f"【{project_name} 返品入荷】{len(df_filtered)}件を出力しました\nファイルパス: {full_output_path.replace('/', '\\')}")
📦 成果:人手を介さず、正確に「次の作業」が進む状態を実現!
定時バッチ実行 → Slack通知までノンストップ
出力履歴はスプレッドシートに記録(出力日・件数・ファイル名・出力元)
誰かが「実行したか?」を確認する必要すらなくなった!
🧭 明日以降のチャレンジ
「未返信データ」に対するキャンセル自動判定
クレジット支払い返品への1回限り通知
ロジレスAPIでの /inbound_orders/create 自動連携
SlackだけでなくNotionへの記録連携も検討中
📌 今日のまとめ
📥 毎日定時で「良品移動」の返品を検出し、
📄 ロジレスにそのままアップできるCSVを生成、
📢 Slackでチームに即通知。
1人でやっていたルーチンが、もう人手を介さず回り始めました。
それでは、また次の実験で🦊
🏷 ハッシュタグ案
#返品対応DX #Slack通知 #Python自動化 #GoogleSheetsAPI #業務効率化 #定時バッチ #ロジレスAPI #EC業務改善