外部サプライヤーと取引するオンラインストアを運営しているなら、このルーティンに覚えがあるでしょう。サプライヤーが在庫を更新し、SFTPサーバーにCSVやXMLファイルを配置する。あなたはそれをダウンロードし、確認し、Shopify、WooCommerce、またはお使いのプラットフォームにインポートする。毎日。時には1日に何度も。
ダウンロードを忘れると、在庫切れの商品を販売してしまうリスクがあります。ダウンロードが遅れると、何時間も間違った価格が表示されます。ファイルは常にサーバー上にあり、待っています。ボトルネックは、あなたがそれを取りに行くのを覚えているかどうかです。
サプライヤーフィードの仕組み
一般的なEコマースのサプライチェーンはフラットファイルに依存しています。サプライヤーのERPや在庫管理システムが、現在の在庫レベル、価格、商品説明、在庫状況を含むファイルをエクスポートします。このファイルはSFTPサーバー(サプライヤー自身のものか共有サーバー)に配置されます。
形式はほぼ常にCSV(カンマ区切り値)ですが、XMLやExcelファイルを使用するサプライヤーもいます。典型的なフィードには、SKU、商品名、在庫数、卸売価格、小売価格、重量、カテゴリーなどのカラムが含まれます。
更新頻度はさまざまです。在庫の変動が激しいドロップシッパーは1時間ごとに更新します。安定した在庫を持つ卸売業者は1日1回、通常は早朝に更新します。単一のファイルを上書きするサプライヤーもいれば、inventory_2026-04-15.csvのようにタイムスタンプ付きファイルを作成するサプライヤーもいます。
よくある問題
フィード自体はシンプルです。問題はダウンロードの処理方法で発生します:
- ダウンロードの忘れ。午前9時にFileZillaを開いてファイルを取得し、インポートする。しかし火曜日は9時に会議があって忘れてしまった。正午までに、サプライヤーが在庫切れとマークした商品に対して12件の注文が発送されてしまった。
- フォーマットの変更。サプライヤーがCSVの区切り文字をカンマからセミコロンに変更したり、新しいカラムを追加したりする。インポートが壊れ、顧客から間違った価格についてのクレームが来るまで気づかない。
- 複数のサプライヤー。3つのサプライヤーと取引しており、それぞれ独自のSFTPサーバー、スケジュール、ファイル形式を持っている。毎朝3つの異なるサーバーにログインするのは、まさに忘れがちな作業です。
- タイムゾーンのずれ。アジアのサプライヤーが午前2時にフィードを更新する。午前9時にダウンロードする頃には、すでに7時間遅れのデータになっている。
スクリプトによるアプローチ(とその限界)
技術に詳しいストアオーナーは、Macでsftpやlftpを使ったcronジョブを設定してダウンロードを自動化することがあります。うまくいくときはいいのですが、うまくいかなくなると:
- ダウンロード失敗時の通知がない。ただ静かに停止する。
- ステータスや履歴を確認するUIがない。ログファイルをgrepで調べることになる。
- 認証情報がディスク上のプレーンテキスト設定ファイルに保存される。
- サーバーがホストキーを変更すると、スクリプトが確認待ちでハングする。
開発者であれば対処可能です。しかし、商品や販売に集中すべきストアオーナーにとっては、存在すべきでないメンテナンス負担です。
FTPullで自動化する
FTPullは、FTP、SFTP、またはFTPSサーバーを監視し、新しいファイルを自動的にダウンロードするMacメニューバーアプリです。ECサイトのフィードワークフローにどう対応するかを説明します:
- サプライヤーのSFTP接続を追加する。ホスト名、ポート、ユーザー名、パスワード(またはSSHキー)。FTPullは認証情報を設定ファイルではなくmacOSキーチェーンに保存します。
- リモートフォルダを指定する。サプライヤーがフィードファイルを配置するフォルダです。
- ローカルフォルダを選択する。ファイルの保存先となるMac上のフォルダ。デスクトップ、専用の「サプライヤーフィード」フォルダ、またはインポートツールが監視するフォルダなどです。
- ポーリング間隔を設定する。在庫の変動が激しい場合は15分ごと。日次フィードの場合は1時間ごと。FTPullはスケジュールに従ってサーバーをチェックし、新規または変更されたファイルのみをダウンロードします。
- 必要に応じてファイルフィルターを追加する。
.csvファイルのみをダウンロード、またはパターンに一致するファイルのみ。サプライヤーがサーバーに残す一時ファイルやバックアップは無視します。
有効にすると、FTPullはメニューバーで静かに動作します。サーバーに新しいフィードファイルが現れると、自動的にダウンロードされ、macOS通知を受け取ります。FileZillaも不要、ターミナルも不要、忘れることもありません。
複数サプライヤーも1つのアプリで
複数のサプライヤーと取引している場合、それぞれを個別の接続としてFTPullに追加します。各接続には独自のサーバー、認証情報、リモートフォルダ、ローカルフォルダ、ポーリングスケジュールがあります。それぞれ独立して動作します。
サプライヤーAは毎朝6時にSFTPにCSVを配置。サプライヤーBは共有サーバーで4時間ごとにXMLフィードを更新。サプライヤーCは1日を通じて単一ファイルを上書き。FTPullは3つすべてを、あなたの操作なしで処理します。
ダウンロードしたファイルの活用方法
FTPullはファイル転送を担当します。ファイルがMacに届いた後の処理は、あなたの環境次第です:
- 手動確認とインポート。ExcelやNumbersでCSVを開き、異常がないか確認してから、ストアプラットフォームに手動でアップロード。始めたばかりの頃には最も安全なアプローチです。
- Shopifyアプリ。EZ Inventory、Stock Sync(syncX)、Matrixifyなどのツールは、ローカルフォルダを監視したり、スケジュールされたアップロードを受け付けたりできます。FTPullがファイルを配置し、アプリが取得します。
- WooCommerceプラグイン。WP All ImportやWebToffeeなどのインポートプラグインが、スケジュールに従ってCSVを処理できます。
- カスタムスクリプト。サプライヤーのCSVをプラットフォームの形式に変換するPythonやNodeスクリプトがある場合、FTPullの出力フォルダを指定します。
セキュリティに関する考慮事項
サプライヤーフィードには、卸売価格、在庫レベル、公開すべきでない商品データが含まれていることがよくあります。プレーンFTPではなく、常にSFTP(ポート22)を使用してください。SFTPは認証情報を含むすべてを暗号化します。
サプライヤーがSSHキー認証を提供している場合は、それを使用してください。パスワードよりも安全で、認証情報の傍受リスクを排除します。FTPullはパスワード認証とキーベース認証の両方をサポートしています。
FTPullはすべての認証情報をmacOSキーチェーンに保存します。キーチェーンは暗号化されており、Macのログインパスワードで保護されています。ディスク上にプレーンテキストファイルは残りません。
FTPushが活躍する場面
逆方向のワークフローもあります。あなたがサプライヤーで、更新したフィードを小売業者のサーバーにプッシュする必要がある場合、FTPushがアップロード側を担当します。エクスポートファイルを監視フォルダに配置すると、FTPushが自動的に小売業者のSFTPサーバーにアップロードします。
FTPullとFTPushを合わせたFTPSuiteバンドルで、ECサイトのフィード交換の両方向をカバーします。