1-click BOM is a browser extension that fills your shopping carts for you on
sites like Digikey and Mouser, you simply paste from a spreadsheet or visit an
online .tsv
file. This way you can keep one bill of materials (BOM) that lets
you and people you share the BOM with quickly purchase items from multiple
retailers.
Currently supported retailers are:
- Digikey
- Mouser
- Farnell/Element14
- Newark
- RS
Check the roadmap for more details on planned features.
In your tab-seperated values (.tsv
) or spreadsheet you must have a column for
line-note, one for the quantity and at least one retailer. Column titles are
interpreted in the following way by 1clickBOM. Capitalisation is ignored.
reference = line-note
references = line-note
line-note = line-note
line note = line-note
comment = line-note
comments = line-note
qty = quantity
quantity = quantity
farnell = Farnell
digikey = Digikey
digi-key = Digikey
mouser = Mouser
rs = RS
newark = Newark
If you visit a page that ends in .tsv
and has data in the right format
available 1clickBOM will show a blue badge and button with an arrow. Clicking
the blue button will load the data into 1clickBOM. Alternatively you can paste
from any spreadsheet (Excel, OpenOffice, LibreOffice, etc.) by selecting the
relevant columns copying them and then clicking the paste button on 1clickBOM's
popup.
See the example tsv and the Bus Pirate tsv.
Once the data is added you can use 1clickBOM to add the items to your carts using the buttons on the popup. You can also quickly view and empty your carts.
The format used prior to version 0.3
simply had the items in the following order:
line-note | quantity | retailer | part-number
This format is still supported but deprecated and will be phased out by version
1.0
.
If you need any help or think you found a bug please get in touch via GitHub or email.
-
0.4
- Auto-fill-out function (search Octopart)
- BOM export
- BOM overview in UI
- Manufacturer and manufacturer part number fields
-
0.5
- Add button to pages with BOM data
-
0.6
- Details page
- Improved retailer overview UI
-
1.0
- Remove legacy BOM format support
-
1.1
- Preferred retailer setting
- Paste directly to cart
- Display cart summaries
-
2.0
- Allied, Arrow, AVNet, Conrad and Rapid
- Function to minimize order cost + shipping
- Allow adding components to BOM from the component page
-
3.0
- 3D-chip-printer support
-
4.0
- Communicate through quantum entanglement
The code is available on GitHub. To get started you will need:
- Chrome or Chromium
- Firefox (optionally with Extension Autoinstaller)
- Mozilla Add-on SDK (cfx)
- GNU Make
- sed
- npm
The rest of the dependencies can be retrieved via npm install
.
- Get dependencies above and make sure executables are on your path
npm install --global
(ornpm install && export PATH=$PATH:$(pwd)/node_modules/.bin)
make
- For Chrome enable developer mode in
chrome://extensions
and load the unpacked extension frombuild/chrome
- For Firefox run
make run-firefox
(or setup Autoinstaller and runmake load-firefox
)
Tests are written in QUnit 1.11 and can only be run in Chrome/Chromium.
Open a console on background page and execute Test()
or test a specific
module, e.g. Farnell, with Test('Farnell')
Most of the tests are functional tests that require interaction with the various retailer sites and they make a lot of network requests to test across all the different possible locations. Sometimes they will fail because they are not an accurate representation of actual extension use. If a test fails or doesn't complete, run it again before investigating. Try and re-create the issue manually before trying to fix it.
1clickBOM is free and open source software. It is licensed under a CPAL license which means you are free to use the code in your own applications (even proprietary ones) as long as you display appropriate attribution and share your code-improvements to 1clickBOM itself under the CPAL as well. This also applies to software you are solely making available to users over a network i.e. software as a service. See the LICENSE file for details.