BASEで一括更新、一括削除が出来るツール


以前公開した「PythonでBASEのAPIを叩いてみる~」系の記事の続きです。

過去記事一覧はこちら↓

記事中でも触れたのですが、Pythonのコードを動かすには実行環境を用意する必要があるため、これらの記事に掲載しているコードはそのままコピーしても動きません。

なので今回、環境構築すら必要無く実行すればそのまま動くexe形式として新たに作り直してみました。

今までだと「いずれ〇〇してみます。」って書いた内容はほぼ忘れたまま放置してるケースが多い私ですが、今回は宣言通りツール化までやり遂げた!よかったよかった。

さすがに定期アップデートとかはしないので、使えなくなったらそれまでという事で・・・

スポンサーリンク

ツールの概要

本ツールで出来ることは以下の通りです。

  • 現在出品中の商品情報の一括取得
  • 商品情報の一括更新
  • 商品バリエーションの一括更新
  • 商品の一括削除

各機能の詳細については冒頭のリンク先の記事でそれぞれ解説していますので、そちらを参照して下さい。中身のソースコードもほぼそのままです。

ツールの外観

実行ファイルを起動すると以下のフォームが表示されます。

シンプルイズベスト。

最初どんなフォームにしようか迷いましたが、考えるのが面倒だったのでもう全面ボタンにしてしまいました。でも大した機能も無いしこの位シンプルな方がいいよね。

ちなみにPythonのTkinterで作成しています。

使い方はもう見たままです。

「ボタン押す ⇒ CSVを選択する ⇒ (自動で処理が走る) ⇒ 完了のメッセージ」

という流れで処理が行われます。ユーザーが操作するのは最初の2つだけですね。

一番上の「既存商品データの一括取得」だけは少し動作が異なるので軽く解説。

ボタンを押すと入力ボックスが表示されますので、取得したいデータの件数を入力して下さい。取得の順番は「商品管理」ページに表示されている順に、上から取得する様になっています。

一括処理についてですが、処理件数の上限は設けていないので好きなだけ使って下さい。何千件単位で指定しても問題はありません。

ただし、API自体の利用回数に上限が設けられているのでその点のみ注意が必要です。

現在はユーザーの1時間の利用上限を5000回、1日の利用上限を100000回に設定しています。

上限を超えるとエラーレスポンスを返します。00分になると利用回数がリセットされます。

出典元:https://github.com/baseinc/api-docs

更新や削除処理は『CSV1行』=『API利用1回』に相当しますので、単純に5,000行のデータを指定するとエラーになると考えて下さい。5,000件以上更新したいデータがある場合は、分割して1時間おきに実行するなどの対応が必要です。

更新や削除に使うCSV形式については以下の記事をご覧下さい。

基本的には「一括取得」機能で保存したCSVの形式そのままでOKです。
※ただし在庫更新の場合のみ若干異なる

在庫更新を行う場合についですが、CSVに以下の3列を追加する様にして下さい。項目名は適当で構いません。とりあえず『お尻はW列』とだけ覚えて下さい。

初期設定

ツールをダウンロードした後は、まず以下の初期設定を行って下さい。

1.同梱されている「config.ini」ファイルをメモ帳などで開く。

2.[UserData]部分の4つの項目にそれぞれ必要な値を入力し、上書き保存する。

  ※各項目に入力する値については以下の記事を参照。

[Token]部分は空欄のままでOKです。

初期設定は以上。

ダウンロード

以下のボタンから実行ファイル一式のダウンロードを行って下さい。

マニュアルは付属していないので本記事と各関連記事をよく読んでから使って下さい。

上記ツールを使用したことによって発生した損害について、作者は一切の責任を負いませんので自己責任でのご使用をお願い致します。

ダウンロードパスワード:base-batchtool_FL8PsziSR2Gjyj2b9M3F

関連記事と広告

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

コメント

  1. kaz より:

    便利なツールを公開していただきありがとうございます

    Win7環境下にてダウンロードしたCSVを修正し一括更新を行おうとしたところ、
    完了したとのダイアログが出ず、upd_resultの中身も空・・・
    いくつか試してみて、1行目の英語表記の行を消して商品データのみにしたところ
    無事更新できました
    ただ、その場合もupd_result.csvは成功も失敗も記載されず空のままでした

    テスト環境で試していたのでまだ細部まで確認できていませんが
    一応事例としてご報告です