[DigiKey]複数のBOMファイルをまとめて、うまくbulk discountを活かしつつ一括で発注をかける

 

DigiKeyでは、BOMファイルから必要な部品をリストアップして自動的にカートに入れてくれる機能がある。
基板によっては100種類くらいの部品を使うこともあるから、この機能はマジで便利。
一つ一つ部品を検索してカートに入れていくとか正気の沙汰じゃねぇからな。

で、こいつはさらにbulk discountの提案も同時に行ってくれる。
これがまた便利で、何も考えなくても注文が安くなるように(しかももっと部品が手に入るように)仕向けてくれる。

例えば、とある集合抵抗を20個注文しようとしたとする。しかしこの部品には25個のbulk discountがあったようで、25個注文することを勧めてくる。こちらの方が安く、しかも5個多く部品が手に入る。

ただ、この機能をフルに活用するには、注文する部品が一つのBOMファイルにまとまっている必要がある。
例えば、CRCW0603100KJNEACというチップ抵抗をそれぞれ45個要求するBOMファイルA,Bがあったとし、同時に発注をかけたい場合を考える。

CRCW0603100KJNEACの料金体系

二つのBOMファイルの部品を同時に注文するためには、それぞれのファイルごとにカートに入れる作業をしないといけない。
この時、まずファイルAを処理しようとすると、この抵抗を100個で注文することを勧められる(45個だと144円だが、100個だと132円に下がるため)。
とりあえず勧められるがままに100個をカートに入れる。
次にファイルBを処理しようとすると、また100個注文することを勧められる。
これでカートに入れると、抵抗を200個買うことになってしまう。そんなにいらない。合計100個でいい。

じゃあ提案を無視すれば良いかというと、今度は最終的に90個しかカートに入らず、100個のbulk discountが発動しない。
こうなると一つ一つ部品の料金体系を見てちまちま個数を調整していくしかないが、これが何十種類もあるととてもじゃないがやってられない。

BOMファイルをマージする機能が用意されていたら良かったが、そんなものはない。
ということで、うまいことBOMファイルをマージして、bulk discountを最大限活かせるような注文用BOMファイルをPythonで生成することにした。

Python3.x系で動く。

例えば、以下のようなBOMファイルがあったとする。

で、以下のコマンドを叩くと、下のようなcsvファイルが生成される。

CSVを一つにまとめたおかげで、CRCW0603100KJNEACは90個の注文になり、BOM Managerは「100個買え」という最適な提案をしてくれるはずである。

タイトルとURLをコピーしました

この記事へのコメントはこちら

メールアドレスは公開されませんのでご安心ください。
また、* が付いている欄は必須項目となりますので、必ずご記入をお願いします。

内容に問題なければ、下記の「コメント送信」ボタンを押してください。

17 + eleven =

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください