Settings - Barcodes
. This might be useful for barcode readers that support non-printable character replacement with a single character only[fix]
BOM preferences dialog: not able to set multiple fields for part matching data [fix]
Storage: history logs not showing up[fix]
Chance for incorrect "part already exists" error when creating a part[fix]
When reverting a received item on a PO, storage field not being reset[fix]
Production plans: inventory restrictions being reset whenever changing the plan's batch size[fix]
Chance for update to fail on macOS VenturaSettings > Workspace > Parts > Inventory > Remove if empty
, which is enabled by default to keep the current behavior. However, users can now uncheck it in case they'd wish to keep the inventory itself even if its quantity is reduced to zero. This might be useful to keep a reference to the location of where that part should be stored at.Internal PN
[fix]
Chance for maximum stack call size exceeded
error when exporting a table into CSV format[fix]
Chance for planned inventory not to be tracked once parts are added into a purchase order from a purchase listidCode
and dateCode
can now be passed when creating or editing inventoryidCode
and dateCode
in the meta field (bold text)[fix]
Chance for go-to production build not to work [fix]
Quantity fields not being correctly sorted[fix]
Chance for barcode not to be updated when keeping the part's tooltip visible and changing the currently selected part[fix]
Status fulfillment
not displayed in the Production
column under the Products tab[fix]
API: POST /part/{part_id}/inventory
not working[fix]
API: GET /ui/goto
not working[fix]
API: data in the UI not being rerendered after changing data through the APIPricing & Availability
table, when checking for parts availability through production plans you can now set the procurement criteria (procure all parts or only if needed), stock source can set from available or from the stock balance and inventory restrictions can be applied for the selected production plans. When selecting production plans for a single product, the inventory restrictions (if any) are automatically set from the product.Procure Qty
was added in the production availability table to highlight the quantities to be procured depending on the chosen criteria (as explained above)
[fix]
Chance for parts not to be displayed in the production availability table[fix]
Chance for storage to be empty after syncing a Team Workspace for the first time (initial load)[fix]
Document's category not being displayed in the Documents table[fix]
Erratic behavior on quantity inputsParts > Details
is now back[fix]
Chance for purchase lists and orders to be incorrectly filtered (using filters from v2.9)[fix]
Chance for creating a build for the wrong productSettings > Barcodes > Hide title barcode
Available by
column added to the Procurement table so you can see by which date quantities should be available[fix]
Chance for the app to enter into read-only
mode even if authenticated and with write permissions[fix]
Pagination: page index not resetting after page count becomes lower than the current index[fix]
Context menu items enabled on grouped rows when they should be disabled Once a Workspace has been opened with this version of the app, you won't be able to use it in earlier versions. This is because v2.10 introduces concepts and data types that previous versions don't know how to deal with. Always make sure to backup your data before updating the app.
Electrical
, Mechanical
or Consumable
(learn more)Projects
have been renamed to Products
allocated
(previously planned
) as there's now production plansoption
can have a background color, depending on its value, for easier visual identificationAdd to...
purchase orders (useful when you don't need to find quotes for certain parts, which in case of purchase lists you are required to) [fix]
When picking inventory for generic parts in production, respect the Default sorting
(by default, parts with the lowest stock should show up first)[fix]
Unable to export the History table into CSV or JSON formatsIn previous versions, missing inventory was checked against currently available stock and on a per-project basis. Inventory would only become unavailable only when reserved, or actually used, on a given project build. This made it difficult to tell if you'd have enough stock to build multiple projects at a single time which eventually use parts in common.
Better than checking currently available stock is to check your stock balance. This way, even if you don't have any stock available but already have it planned (e.g. on a purchase list) and don't have anything that is meant to use it (i.e. not allocated to any production build or sales order), then you probably don't need to buy or produce more of it in case that incoming stock (i.e. planned, on-order on in-production) is already enough. In other words, if you are overstocking and that extra quantity is enough to fulfill your needs, then you don't need to procure more of it.
Another improvement is being able to schedule production through production plans. A production plan describes a need to build a product in a given quantity by a given date. This way you can plan production for the whole year if needed. Production plans create planned
inventory. At any given time you can then select the production plans you actually want to allocate
into production and for which you'd want to check for missing inventory so you can procure it.
The app will tell you which plans can be built, if partially, in full or not at all (i.e. not enough parts to build a single unit). You can also see which exact parts are missing and in which quantities.
A single production build can be created from several production plans for the same product and revision. If it's possible to build a fraction of the desired quantity without having to procure parts, the app will create two builds: one that can be built as soon as possible, and another one that will have to wait for parts now being procured.
Procurement itself is also done automatically: the app will tell you which missing parts will be added into purchase lists or, in case of sub-assemblies, for which parts production plans will be created. On the other hand, you can also see on the production builds which parts have been automatically procured.
You can read more about this in the documentation website. If you still have questions, please get in touch!
[fix]
Chance for cannot read property type of undefined
error when starting the app[fix]
Not able to finish a project build (MAKER plan only)
[fix]
Chance for inventory move between locations to fail[fix]
Inventory not being imported along with parts[fix]
Project revisions on drop-down boxes sorted by creation date instead of alphabetical order[fix]
Chance for Stock
to show up as 0 in the BOM table [fix]
BOM view selector not visible in the Pricing & Availability
table [fix]
Storage: chance for inventory not to show up when (no storage)
is selected (inventory in storage locations that have been removed won't show up) Designators
has its own search box yielding more accurate results when compared to the fuzzy searchdeliveryDate
can be passed on /sales_orders
write endpoints[fix]
Going to part whenever adding a new Part through the Part Finder dialog [fix]
Chance for closed items in a purchase list to still show up as planned inventory[fix]
Don't show quote issues for closed items in a purchase listDELETE
method added to /projects
endpoint[fix]
When bulk exporting barcode labels into PNG or PDF, chance for barcodes not to be present in the image[fix]
Unable to manually add inventory of a specific revision to an in-house part [fix]
CSV import: reset mappings when file is reloaded[fix]
Pricing & Availability table setting different quotes when repeatedly auto-assigning quotes (chance for picking quotes with invalid MOQ or without stock)[fix]
Table not scrolling into item when going-to it in a page other than the first one[fix]
Unable to edit price on a price break[fix]
Chance for Tolerance
not to be filled in when using the auto-completer on Parts[fix]
Chance for infinite loop in Suppliers > Quotes
tableCart
for Mouser
uses commas as delimiters (previously, the pipe operator |
was used)Lot
gets a reference for inventory that belonged to it but no longer exists[fix]
Unable to check/uncheck combo-boxes in parts group edit dialog [fix]
Printing barcode labels: if using a custom PDF print command
, don't check if a default printer has been setin-progress
state whether inventory for at least one part has been reserved or when at least one part has been assembled[fix]
Barcodes: chance for the configuration button not to be visible, when the search field text, when set, is too longManufacturer
field can be set for all part types except generics
[fix]
Quotes: when Lowest price quotes
is set in settings, chance for a valid quote not to be picked[fix]
Chance for default value not to be set on check-boxesViews
can now be reordered (drag-and-drop) in the Views selectorFilters
are now remembered when restarting the app. This way, if a currently selected table View
uses filters, that view is also preserved.[fix]
BOM: Rev
value not being correctly exported into CSV[fix]
Filters: not working properly for fields with modifiers (i.e. =
, >
, etc) once the clear filters
button is pressed[fix]
When editing a field of type AppElement
, default value not being displayed [fix]
Chance for table headers order not to be saved after reordering them[fix]
Chance for crash when removing projects with in-house parts (when project Details tab is open) assign first match
setting added. By default, when importing a BOM the app will only assign a part if it finds a single matching one, otherwise it presents you with all possible parts that can be assigned to a row. By enabling Assign first match
the first matching part is always assigned, regardless of how many other parts were also matched.Storage
[fix]
Default value not set when editing a boolean custom fieldUnit Price
can now be edited (previously, only the Total Price
). When editing the unit price, the total price is automatically updated according to ordered quantity. Likewise, when updating the total price the unit price is also automatically updated according to ordered quantity.[fix]
API: usePartAttrition
not honed when creating a project build[fix]
Crash when displaying the Alternates
table on Part details[fix]
Unable to edit number
cell values[fix]
Ctrl+A
(select all rows) not working if caps lock is active[fix]
BOM: row numbers getting out of order after restarting the app (only when importing the BOM via CSV file)[fix]
Production: unit cost of generic parts not being taken into account when estimating production's unit costSub-assembly
Clear all filters
buttoninventory removed
logs display how / where it was removed from (e.g. during production)[fix]
Some filters on the Parts Finder dialog not working[fix]
View selector not saving filters in the Production
tab[fix]
Production: sorting by Assembled?
not working as expected[fix]
Unsaved changes dialog popping up after saving Notes on a project revision or project build[fix]
Parts: when manually creating parts and changing the part's type, unset previously set fields that don't exist on the currently selected typeDesignators
is no longer a mandatory fieldSupplier PN
can be defined, if the part doesn't exist on the selected supplier yet[fix]
Purchasing: received on
and ordered on
being set to today's date by default when importing a purchase order[fix]
Pricing: quotes for generic parts not being correctly sorted by price[fix]
Documents: not able to change Category[fix]
Tooltips hidden under modals[fix]
Chance for Team Workspaces not to re-render data as it gets updated/syncedBOMIST_API_CORS
, with multiple hosts separated by a comma (e.g. BOMIST_API_CORS=http://localhost:3000,https://mywebsite.com
)[fix]
BOM: not able to pick inventory revision for in-house parts that don't have a project[fix]
Production: stock not being updated for alternate parts when marking items as assembled[fix]
Storage: empty values when grouping inventory by Storage
[fix]
Auto-updater: popup with Install now
button not showing up[fix]
Finding parts dialog: Add
button always disabled[fix]
BOM: when auto-assigning parts, Package
and Value
on the BOM not being overwritten by the assigned part's Package
and `Value[fix]
Production: when reserving/unreserving a generic part, stock wasn't being updated for the chosen alternate part[fix]
Production not showing up[fix]
BOM: issues not being displayed once the table is rendered[fix]
BOM: chance for importer to fail matching parts when CSV file uses non-UTF8 encodingsales-only
, this can be useful to share your own prices with a potential customer in one of those formats.Supplier PN
is now optional. An example file that can be imported is available here.[fix]
API: /search
not working when IDs were passed[fix]
Team Workspaces: several offline detector messages stacked up when resuming the app back from idle/sleep modeAvailability
column is now available on Purchase Lists as well (before, only on Projects > Pricing & Availability)[fix]
Failing to import a workspace for which a custom Company Logo has been set[fix]
Go-to Sales
[fix]
Unable to export table that includes the Alternates
field and parts with alternates[fix]
Purchasing: when auto-assigning quotes, chance for not picking the cheapest one[fix]
Generic parts: on Parts > Details > Inventory
hovering an alternate part would show info about the generic part itself and not the alternate oneAvailable
, Allocated
, Planned
, In-production
, Stock Balance
Lots
Lot
, but since that might lead to traceability loss a warning is displayed and a comment must be provided briefly explaining the adjustmentStock On-hand
(instead of Stock Available
)The biggest change in this release is the addition of new stock/inventory types to track its specific usage and/or requirements.
Allocated
: inventory that is required in a project build or sales order. It represents a need for it, regardless of if you are able to fulfil it or not. On-hand
and Available
: what was before called on-hand
inventory has been renamed to available
and now the Stock On-hand
represents all the inventory that you in fact have on-hand (i.e. either Available
or already Reserved
for project builds and sales orders)Planned
: this represents all the inventory included in open purchase lists and purchase orders.In-production
: this represents inventory that is in-production (i.e. the project builds and their batch sizes)Except for the Available
inventory, all other types of inventory are generated automatically by the app. For example, when creating a project build, in-production
inventory is created for the in-house part the project build refers to and allocated inventory
is created for all the parts that are used in its BOM and according to the project build's batch size
. Stock Available
remains the only type of inventory you can manually adjust.
Before, the parts Stock
field would represent Stock Available + On-order
whereas now it represents Stock Available + Planned + On-order + In-production
. Essentially, it represents the stock that you have currently available plus the one that is incoming. In a similar fashion, the `Stock Allocated" represents outgoing inventory.
Additionally, Stock Balance
represents all the stock that is available and incoming (planned, ordered or in-production) minus the stock that has been allocated. This should provide you with a useful insight on whether you are stocking more inventory than you need (overstocking) or the opposite (understocking).
Team members can now be invited to or removed from a Team Workspace through the app (before, only through the website).
Through this dialog you can also set the company's logo which will be set globally for all the team members using the app. If you currently use a custom logo, you'll have to re-upload it though.
Parts with missing description, package or value? You can now autocomplete them in two clicks:
So far Lot
could have been created either when received parts on a purchase order or when finishing project builds. You can now create custom Lots
which are not associated with any specific entity in the app. Custom Lots
can be created either manually (through the UI) or by importing parts with a Lot
field defined.
[fix]
Filters: chance for the fuzzy search not to show all results that are valid[fix]
Settings: not able to unset default printer[fix]
API: not able to delete data[fix]
API: when moving inventory, if moving the entire quantity into a new storage location, don't create a new inventory; instead, only the storage location is updated [fix]
API: when adjusting inventory, remove the inventory itself if quantity is reduced to zero[fix]
API: items not being created when creating a project build[fix]
API: part not being correctly assigned when creating a project build[fix]
Multiple row selection not working properly when data is grouped by a field[fix]
Unable to change Rev
for BOM entries[fix]
Chance for empty inventory lines on the Storage > Inventory
table[fix]
When exporting barcode labels, grouped rows not being ignored[fix]
Cloning parts: some fields not being cloned[fix]
Chance for being unable to manually edit BOM designators[fix]
When manually changing BOM designators, update the Quantity field so the correct value is returned by the API (irrelevant for data displayed on the UI)[fix]
API: data returned by the API containing the :
character being scrambled[fix]
Chance for inventory data not to be deleted when removing the parts they refer to Part Number
has a go-to link on tables so you can simply click it instead of hovering it and clicking Go to Part
Lots
can now be grouped by Reference
[fix]
API: chance IDs passed on a request's payload not being parsed correctly[fix]
Tables: Copy > Cell
adding quotes to copied text[fix]
API: unable to set BOM entry designators[fix]
Chance for crash when a value in the Prefixes
column on a BOM table is invalid[fix]
API: part not found when creating a project or assigning a part to a BOM entryStock
. It's not possible to remove more stock than the only available though (i.e the app prevents negative stock). Owner
field can now be passed along with Storage
. The Customer #
should be used to identify the owner. Whether the Storage
already exists or it's created during the import process, the storage's owner is set to the passed one, if found.Rev
can now be set for in-house parts included on sales orders[fix]
Chance for custom quotes created through Sales not to be added into a sales-only
supplier[fix]
Inventory table: Customer
column renamed to Owner
[fix]
When importing parts, prevent stock to be set for generic parts[fix]
Prevent generic parts to be imported on purchase orders$doc
added into the custom PDF print command, which is replaced by the full document instead of simply its dataStatus
(reserved
or on-hand
)[fix]
Wrong IDs on data passed to custom PDF print command ($data
wildcard)[fix]
Chance for barcode to disappear when barcode max. width
is set to an invalid value [fix]
Unable to export inventory value report into PDF[fix]
Chance for data not to be removed (most noticeable on Team workspaces)Projects
and Production
)[fix]
BOM failing to export[fix]
BOM: keep items order / row numbers when generating a project build [fix]
Copy to clipboard
failing when exporting a table[fix]
Reserved inventory not being unreserved when removing sales orders or sales order items[fix]
Storage: inventory table showing the Worth
for the total stock and not for the quantity available in the corresponding inventory locationCustomer
field renamed to Owner
Value
is defined but it's an invalid SI value, the app tries to match parts also ignoring it [fix]
API: id
not being included on GET /labels
response[fix]
Pick alternate part's dialog: some columns not being displayed[fix]
Projects: when reverting a project build, chance for the app not to find the previous resulting inventory, when it should as it hasn't moved since then[fix]
macOS-only
Shortcut ⌘ + Y
(instead of ⌘ + H
) to go-to HistoryCreated by
, Modified by
, Created at
and Modified at
columns[fix]
API: part
must be passed when creating a purchase order item[fix]
Workspace settings: dialog scrolling to top once a setting was changed [fix]
Labels: create a label under another with the same name as an existing one[fix]
Importing trees (e.g. labels): consecutive imports failing[fix]
Chance for context menu not enabling some itemsrestrictions.customer
can now be set on /storage
reserved
inventory (before, only on-hand
) [fix]
Inventory report value: chance for wrong value when using inventory restrictions [fix]
Unreserve inventory whenever removing projects or project revisions with project builds in progressassembled
to in-progress
[fix]
Project builds: chance for reserved inventory not to be consumedAlt-A
shortcut Unit Cost
can now be editedSupply Chain
tab is now available, showing available quotes for all parts listed under the Alternates
tab of that generic part[fix]
Purchase lists: quote being unset on currently selected item and when switching tabs[fix]
Scroll on tables not being savedFilters
can now search for data on those sub-rows[fix]
Sub-assemblies being automatically expanded (flatten view) on BOMs when Multi-level
is selected[fix]
Inventory barcodes not going-into inventory[fix]
Context menu using previously selected items[fix]
Sales orders: stock not being updated on reserved items after marking the whole sales order as deliveredStorage > Inventory
table you can now move partial quantities[fix]
Context menu incorrectly disabling some menu items[fix]
API: part.alternates
, part.forSale
and part.sellingPrice
can now be updated[fix]
Purchase order: total and unit prices not updated if quantity is set to zero[fix]
Parsing USD prices including the dollar sign[fix]
API: POST /parts/{part_id}/inventory
, storage, lot and rev not being correctly parsed[fix]
Issues: not able to copy cell containing message [fix]
Sales: chance for infinite loop[fix]
Chance for a RangeError: Maximum call stack size exceeded
error when using the context menuStorage
can now have custom fields[fix]
Parts: auto-completer not showing up when manually adding parts[fix]
Settings > Workspace > Labels
table scrolling into the just selected item1P
from ANSI MH10.8.2-2016 format is automatically parsed without having to enable one-shot
scanning modeValue
(before, Package
must be defined if Value
was also defined for the app to come up with a part match or suggestions)Unit Cost
can now be defined for generic parts and used if the generic part doesn't have any Alternates yet. In other words, this Unit Cost
works as a fallback value so you can price BOMs containing generic parts, even if these generic parts don't have their own Alternate parts yet.[fix]
Chance for picking an alternative part without selecting one, effectively picking some undesired part[fix]
Chance for database not to sync once a computer is back from sleep mode[fix]
Filters: search text saved when switching tabscustomer
, meaning the project belongs to that customercustomer
associated with it (i.e. its owner). Inventory in storage locations restricted to a given customer can only be used in projects and sales orders that are associated with the same customer.[fix]
Barcode scanning: searching on own tables
with vendor-barcodes[fix]
Project builds: items being reordered after replacing a part or changing assembly quantityMove to...
and Barcode label
actions to be used for multiple storage locations at once.[fix]
Autocomplete popup showing up when editing a part [fix]
Chance for editable widget not hiding after saving or cancelling (e.g. when changing quantity on a purchase order item)Add to...
context menu added to project build's table/search
endpointPOST /search
{
"selector": {
"type": "history",
"history.refDoc.sid": "pa_N4Un4YfmtcAKTBRKuPFEun"
}
}
[fix]
Barcodes: basic
and minimal
formats being exported with wrong margins[fix]
Custom quotes: wrong currency showing up in the Custom Quote dialog [fix]
BOM: part matching not working correctly when using non-text custom fields as fields to match (BOM preferences)[fix]
BOM: view type (single/multi-level) selector not showing up[fix]
Sales: update sales order delivery date whenever sales order is marked as suchbelongs_to
field added to elements that belong to other elements in the app (e.g. project revisions belong to projects)[fix]
Parts: when manually creating a part, copy-pasting text and selecting an option from the autocomplete popup, the text was not being saved thus not allowing to manually create a new part[fix]
Unreserve inventory from the inventory table[fix]
Part auto-complete not working when manually creating a part[fix]
Chance for initial inventory quantity to be set as text when manually creating a part[fix]
Project build not being highlighted after scanning barcode labelgo-to
things on the app. A few examples: [Link to Part](/goto:part.mpn:ATMEGA328-AU)
[Link to LOT946877843](/goto:lot.code:LOT946877843)
Adjust Inventory
when the inventory table is displayed and one inventory item is selected: Alt+I
(or Option+I
on macOS)Save...
- To folder
)[fix]
Project build details not showing up when switching tabs[fix]
Only the first alternate part showing up on BOMs[fix]
Custom quotes not showing up for generic
parts[fix]
Chance for reverting / marking as received a previously selected POApp Element
fieldURL
, number
, price
, date
and SI value
can be grouped-by by default on tablesUnit Price
and Total Price
columns available on open
purchase orders[fix]
Export: ensure part numbers and other relevant fields aren't trimmed (text larger than the column's width) when exported into HTML or PDF[fix]
Import tree-structured data: node names including spaces not being parsed[fix]
Missing info when exporting project builds into HTML or PDFProduction
tab: you can now see all project builds in a single tab, instead of having to go to each project individuallyBOM
and Project Build
table now include some statistics at the bottom (see below)production
cost is now displayed at the bottom of the table and a warning icon will show up if some of the items don't have a unit cost
defined
Add Inventory
shortcut added (Ctrl+I
or Cmd+I
), the Add Inventory
dialog shows up for the currently selected partAdjust Inventory
dialogURL
URL
(previously, only from the file system or workspace)[fix]
BOM import: data from fields that had to be manually mapped not being imported[fix]
Preferred currency falling back to EUR
[fix]
Storage not being highlighted in the tree after scanning a barcode label[fix]
Storage Move to...
parent node being selected instead of the just moved storage locationPart Number
, Manufacturer
and Internal PN
whenever the values change on the Part dialog (before, validation would occur only after pressing the save button)Search
input once filters become visibleFilters
assembled on
dateSettings > General > Export > Prices as floats
[fix]
Storage: UI freezing after using the Move to...
dialog[fix]
Purchase order: update part's stock whenever changing Order Qty
on an ordered
purchase order[fix]
API: GET /labels/<label_id>
and POST /inventory/<inventory_id>/adjust_qty
endpoints[fix]
Export barcode labels through right-click > Barcode Label
dialogShow/hide specs
link was renamed to +/- specs
and to display additional fields a similar link, +/- fields
, was added
[fix]
Export barcode labels into PDF[fix]
Not being able to edit custom fields of project buildsoutsourced
. While outsourced
parts are considered unique given its Part Number
+ Manufacturer
pair, other types are checked for uniqueness though its Part Number
only (case-sensitive)[fix]
Error on exporting tables into CSV[fix]
Not being able to clear an option (custom fields)Sales management
: you can now keep track of sales orders and customers through the app. The workflow should feel familiar when compared to other elements of the app and with project builds in particular. Similarly to project builds, inventory must be first reserved on a sales order before it can be marked as delivered. When a sales order is fully delivered, stock is automatically removed from your inventory. Parts can now be marked as for sale
and a fixed selling price
can be defined. You can also create sales-only
suppliers to define price breaks for those parts. Quotes listed under sales-only
suppliers are available only in sales orders
Other costs
: you can define other costs in sales orders (e.g. shipping, one-time fees, etc)Sales-only suppliers
: you can now define custom quotes under custom suppliers that are used only on sales-ordersStock Reserved
column addedManufacturer PN
has been replaced by Part Number
: this is to avoid confusion as this same field is used to define the part number of in-house
, generic
and asset
parts, which might not have a manufacturer (or rather, there's need to specify one)Filters
: data can now be filtered by issue type (error, warning, info or none) - whenever availableImporting CSV files
: the CSV file can now be reloaded or replaced by another one when importing data[fix]
Scroll to item whenever "going to" it[fix]
Filters: boolean fields not workingSupplier PN
is now required when importing custom quotes[fix]
Row on main table sometimes not being highlighted whenever clicking on an issue it refers to[fix]
Remove duplicates when listing all available supplier namesglobal
)right-click > Clear selection
[fix]
Filters: filter being cleared whenever searching for parts in the Find Parts
dialog[fix]
API: OpenAPI/SwaggerUI path parameters added[fix]
API: endpoint /storage/(storage_id)/inventory
always returning an empty array[fix]
Export tables containing due-date Date
fields[fix]
Row numbers in the part match suggestions table[fix]
Chance of infinite loop whenever Filters would come up as visible (e.g. manually assigning a part in a BOM)[fix]
Unable to resize some tables columns (e.g. documents table)[fix]
Popovers showing up on top of dialogs when they should instead disappearauto-assigning quotes
. The lowest price quotes are now picked by default. If the price is the same among different suppliers, the quote from the most preferred supplier is picked. Previous behaviour (picking the lowest price quote from the most preferred supplier, if available) can still be enabled by unchecking the Settings > Workspace > Lowest price quotes
. The criteria to pick the best quote also changed: it will first try to pick a quote that has stock available on the supplier, then proceeding to the ones without enough stock but where target quantity is within MOQ, and at last falling back to the cheapest quote (if) available. This kind of sorting can be verified through the Available Quotes
widget.[fix]
Assigning quotes: quote being removed just after being set[fix]
Shortcuts: zoom-in (Ctrl-+
) on US keyboard layouts[fix]
Issues: reference to row numbersFilters
on pretty much all the tables on the app (i.e, where they matter)Filters
can now be filtered themselves, so you don't have to look for the exact one you want to use
Tolerance
the value is now cleaned so it can include other characters besides the number and still be correctly parsed into a numberAdd to...
context menu added to PLs and POs. This can be useful to "duplicate" PLs, by adding parts from another list into a new one.[fix]
Tables: jumping scroll[fix]
Lot: barcode labels wrong expiry date (set as current date)[fix]
API: export barcode label (custom data)[fix]
Purchase orders: save custom fields when importing a POlinux-only
[fix]
Unable to open workspaceTable views
. Tables can have a lot of columns. You can even add your own through custom fields
. This might result in too much data on the screen and you might end up toggling which columns you want to set as visible quite often. Table views allow you to save the current table configuration so you can easily switch between them. A table view contains info about visible columns, columns order, columns width, sort by and group by settings and also filters
. Views that include filters will have an icon next to it indicating so.Low stock
filter added to part Filters
, under the Stock
field. This lists both out-of-stock and low-stock items. Non-stocking parts are ignored.
Sources
column is now exported into human-readable text (instead of text representing JSON data)[fix]
API: IDs passed when updating data (PUT
endpoints) are now correctly set[fix]
Update BOM pricing whenever custom quotes (price breaks) are updated[fix]
Editing actions on grouped rows are now disabled[fix]
Reorder columns on large tables: last columns couldn't be reordered[fix]
Shortcuts: zoom-out / decrease tables font sizeSettings > Barcodes
, can now include the $data
wildcard. This is useful when using custom scripts to generate your own barcode labels, where $data
is replaced by base-58 encoded data of the object (part, storage or lot)Ctrl +/-
or Cmd +/-
. Row height increases/decreases with font size.Manufacturer PN
. This is useful to find out parts that have the same Manufacturer PN
but different Manufacturer
. The API would also be useful for such a task though.[fix]
Part Usage quantities and group by Project Revision[fix]
Scroll orientation on Filters and Available Quote has been set to horizontal instead of vertical. Improvements on macOS
.[fix]
Tables: content overlaps column's width from a certain width. When increasing a column's width, the next columns are now pushed further to the right. The table will still try to fill up all the available horizontal space whenever possible.[fix]
When renaming a Project Revision, re-render dropdown box[fix]
Project builds: missing stock of parts used in multiple rows[fix]
Ensure workspace is closed when closing the app (this was preventing other computers to open a workspace previously used in a different computer)[fix]
API: error whenever the server or any endpoint is run[fix]
History log's description not being displayed inline[fix]
Prevent inventory being added to a Lot when Lot Control
is disabled[fix]
Ensure Column Selector
is visible on hover (some edge cases fixed)[fix]
Go-to inventory on the Lot items table[fix]
Some data not showing up (e.g. when receiving items on a purchase order)There's now a new type of Lot: custom
. Before, Lots were created only when receiving items on a purchase order or by finishing a project build. Custom Lots are meant to be used whenever manually adding or importing inventory (through Parts). On purchase orders, items received at different times can now be added into the same Lot. A given Lot, whenever referenced by a purchase order or project build, cannot be used for by anything else though.
single-level
(same as before) and multi-level
(the parts a sub-assembly is composed of are also listed in an hierarchical way). The multi-level view also allows to get a flatten list by grouping data by Manufacturer PN
[fix]
Column selector not showing up on first mouse hover[fix]
Remove purchased
inventory when reverting a purchase order from ordered
status[fix]
When adding inventory, if a storage location is not selected, add it to "unallocated" instead of an existing inventory[fix]
Storage: some parts not being listed under the "unallocated" node[fix]
When removing storage locations, ensure inventory's storage location is set as "unallocated"[fix]
Welcome screen: sign-in by pressing enter[fix]
Prevent crash in case most recent workspace can't be accessedThe API got a significant update: you can now use it to create and edit things on the app! Documentation is still served by the app but now it can also be seen here:
Searching capability is also improved as you can now pass filters through most GET endpoints. A few examples:
GET /parts?part.manufacturer=Microchip&limit=10 # get 10 Microchip parts
GET /parts?part.stock={"$lt": 50} # get all parts that have less that 50 units of stock
This is also a first step on a bigger goal: a plugin system
. By making the API more permissible and powerful will allow to create plugins that will bring additional value to the app.
The API and barcode labels now use shorter IDs. For barcode labels, shorter text means lower density, which in turn results in easier to scan barcodes.
For the API, it keeps things cleaner, as these short IDs are now also "fixed" strings. Before, they were encoded strings, and as such, always different even if pointing to the same thing once decoded. To keep backward compatibility, the current API still accepts older/longer/encoded IDs.
The app ships with SumatraPDF on Windows. This is used to print your barcode labels which are first converted into PDF files. Even though for the most part this has been working fine, there have been also a few issues with it, namely poor printing quality and scaling issues on some printers or specific label sizes. To overcome this, you can now override the command the app uses to print PDFs, through Settings > Barcodes > PDF print command
.
This allows you to use third-party software such as Adobe Acrobat or Foxit Reader to print PDFs through the app. In order to do so, you'd set a command like this in the settings:
"C:\Program Files\Adobe\Acrobat DC\Acrobat\Acrobat.exe" /s /o /h /t $filePath "$printerName"
Each PDF software also comes with its own shortcomings though. Adobe Acrobat will always open its GUI which might be inconvenient. Foxit Reader will happily run on the background but will add some margins to the labels. Each software also has its own way to configure printing settings (e.g. scaling etc). These settings cannot be passed on the command line, so you'll have to use the app's GUI to print a label first so it will then remember them whenever using the command line later on.
[fix]
Inventory table: on-order
inventory not showing up for partially received items on a Purchase Order[fix]
Project Pricing & Availability: show available quotes for current target quantity[fix]
Infinite loop when generic part is set as alternate of itself (this would be only possible in earlier versions)[fix]
Generic part showing out-of-stock icon when it's not[fix]
When adding documents through the Details
panel, don't go to the Document itself[fix]
Barcode settings: default printer not being displayedb
(bits), B
(bytes)[fix]
Parts stock not being updated after importing/deleting a PO (this doesn't affect any other stock calculations in the app)[fix]
Purchase lists: change item's quantity, editable widget being displacedreceived on
can be set for items when receiving them[fix]
Barcode scanning: no need to add a line feed/carriage return at the end of the scanned string[fix]
Purchase orders: Received?
field doesn't show up on exported PDF[fix]
Purchase orders: when creating a LOT when receiving items, use the code written by user and not the default one[fix]
Custom field String
enabling fuzzy search by default even if that option wasn't checked[fix]
Lot usage: not displaying data[fix]
Change workspace's name (crash)[fix]
Change project build item's revision (not working)Sample
workspace with access to all features. Previously, full features would be available only on the Team Workspace
a user belongs to, other workspaces requiring a subscription to get rid of limits[fix]
API: inventory/move_qty
history log missing locations (moved from/to)[fix]
Copy BOM: project revisions alphabetically sorted[fix]
Not being able to vertically scroll some tables after the first renderin-house
parts (the Type
column must be mapped). This option is enabled by default. Similarly, when manually creating an in-house part, the user can opt to create both the project and part or just simply the part itself.Type
field added to Storage > Parts
table[fix]
Parts: add alternates[fix]
Importing data through CSV files (prevent crash)inventory changed
events created through project builds now include links to the project and project revision they are created from (before only for the project build itself)revert history
no longer available[fix]
Storage > Parts
table: Sock On-hand
and Stock On-order
displaying incorrect values[fix]
Project: ask for a part's name (existing/new one) when creating a project[fix]
Custom fields: showing today's date when due date
is not definedinventory reserved
events can now be reverted (if inventory is still reserved)[fix]
When syncing data at start-up (TEAM plan) there was a chance of projects being deleted[fix]
API: POST endpoints not workingParts > Supply Chain
[fix]
Project Pricing & Availability: enable create purchase list button when purchase criteria is if needed
[fix]
Sort by due dates[fix]
API: GET /purchase_order/{id}/items
[fix]
Project build handle parts that don't exist anymore[fix]
Project builds: unable to create project build whenever items didn't have production cost defined (not relevant for project build creation)Manufacturer PN
column (through the popup shown when hovering its value)suppliers
, purchase_lists
, purchase_orders
and lots
[fix]
Project builds: "cannot read property id of undefined" crash when DNP items are present in BOM[fix]
Purchase orders: some columns not displaying data[fix]
Purchase orders: update on-order stock when reverting received itemsInternal PN
, Label
and Stock On-hand
columns added to tableGET labels/{id}
endpoint added[fix]
Project build: re-render table with up-to-date stock levels when items are reserved, assembled or reverted[fix]
BOM: when locked, the quantity of items without designators shouldn't be editable[fix]
Project build: Qty /unit
recalculated when Assembly Qty
is overwrittenAvailable Quotes
instead of having to go through the Suppliers
tabV
, A
and W
units are now case-insensitive[fix]
Custom fields: not being able to set a custom date
[fix]
Purchase list: change quote one after another[fix]
Filters: when changing the search modifier from range
to something else, filters would stop working[fix]
Some elements not being re-rendered when saving dataPurchasing
, Suppliers
and History
date
#
column and without any sorting. All items are now sorted by quantity, ensuring that items that have less stock requirements are fulfilled first.generics
and assets
can now be imported (as long as the appropriate part Type
is passed in the CSV file)Received
even if some items weren't received yetReceived
to Ordered
)[fix]
Filters in projects: use Part name in fuzzy-search[fix]
Context menu: options reflecting the previously selected item and not the current oneYou can now define custom fields for pretty much every element in the app. A custom field can be one of these types: string
(i.e, text), number
, SI value
(e.g. 200mV), Date
, Boolean
, Option
. All custom fields can be searched/filtered by directly through the app.
When filtering by a date field, you can also specify a date range
, besides the other already available search modifiers (equal, less than, greater than)
Internal PN
or Manufacturer PN + Manufacturer
is now fasterFilters
for easier navigation[fix]
Filters: clear all filtersdate
. A date field can also be marked as a due date
. In case a date is a due date
, a warning icon will show up if the date is approaching (7-days remaining) or it is past due. Custom fields can be set for Parts through Settings > Workspace > Part custom fields
.#
column) in FIFO (first come first served) orderQty /unit
column added[fix]
Import parts: when parts already exist, overwrite only mapped fields[fix]
Parts Usage: group quantities by Project Revision[fix]
Parts Usage: clickable Project Revision[fix]
Similar parts warning when editing a partRevert...
. This is useful when items are marked as received/assembled by mistake. On project builds, items can only be reverted if the project build itself hasn't been finished yet.[fix]
Export PDF: prevent error when some cells don't have anything to render[fix]
Preserve date and time format (Settings > General) - it remains the same after restarting the appAssemble Qty
on planned items can now be changed and reset to original one. Once the item has been assembled or inventory is reserved, Assemble Qty
cannot be changed anymoreEnforce quote selection
is enabled (Settings > Workspace), items on a Purchase List without a quote will result in an error instead of a warninginventory reserved
, inventory unreserved
and inventory consumed
Edit
action (if available)[fix]
Project Builds: prevent inventory to be decremented twice when assembling items from reserved inventory[fix]
Project BOM: allow using -
on BOM reference designators when not using it as a range (e.g C1-9
)[fix]
Don't generate history log when adjusting inventory with zero quantity[fix]
Create Purchase Order when Enforce quote selection
is disabledPreviously, a single part could be assigned to a single BOM item only. This is not convenient, specially if later on a project build one part is replaced by an alternate one which happens to be already assigned to another item. Being able to use the same part in multiple BOM items is then essential.
This affects how availability is calculated though. Taking the example below:
In total we need 900 units but we only have 509 on-hand, so only the first item, that requires 300, can be assembled (or inventory can be reserved for). Items that have availability only partially cannot be assembled nor inventory can be reserved for.
You can now change the Assembly Qty
on items that don't have any Sources
defined yet (whether because inventory has been reserved or because those items have been assembled already). Once changed, the quantity can also be reset to its original value.
When looking through the History table of a part, it could be hard to interpret some apparent "gaps" on inventory. This is because when inventory is reserved it's no longer on-hand
, but reserving/unreserving inventory hasn't been logged in history. So, on the next inventory changed
event you'd see an initial quantity that wouldn't match the quantity on the previous inventory changed
event for that same storage location.
For this reason, there are now 3 additional events: inventory reserved
, inventory unreserved
and inventory consumed
. While the first two directly affect your on-hand
inventory by decreasing and increasing it, respectively, the last one as no effect but allows us to see that inventory previously reserved was at some point consumed (i.e. assembled in a project build).
On top of this additional information, events are now also coloured so they can be visually identified more easily.
Also, the inventory moved
history log now includes the original and current quantities on each location.
Low Stock
value can be imported[fix]
Export history table[fix]
Storage locations tree: context menu not showing up when right-clicking not on a nodeSettings > Workspace
: enable/disable unique internal PNsProduction
column are displayed vertically[fix]
Purchase List table crashing on a locked PL (Cell not returning anything)Manufacturer PN
but different Manufacturer
) before proceeding so the user can confirm it's not a duplicatereceived
state[fix]
Create inventory on-order
when an purchase order is imported on ordered
state[fix]
Sort by on Stock
, Stock On-order
, Stock On-hand
, and Value
(only in BOMs) fieldsBy default BOMIST uses thumbnails and a default datasheet from data it gets through Octopart. From now on, you can also override or set those through Documents added to a Part.
For several reasons you might end up with unallocated inventory (i.e. inventory without a storage location assigned). Through the table on Storage > Parts
, you could select multiple inventory items and move them in bulk to another single location. However, it might be also useful to individually pick a location for each one of the selected inventories. This way you can tell where you want each of these items to be moved to, whether to a storage location where it already exists or to a new one.
BOMIST checks for parts equality through their own Manufacturer PN
and Manufacturer
. However, sometimes the Manufacturer name can have some variants (e.g. "Analog Devices", or "Analog Devices Inc."). For this reason, whenever manually adding Parts, the app will check for similar parts (i.e. parts with the same part number but different manufacturer) and, in case it finds some, it will ask you to confirm if you still want to add it, thus preventing a duplicate.
[new feature]
Generic partsordered/received on
can now be editedin-house
renamed to on-hand
Stock
- for combined on-order and on-hand, Stock On-hand
and Stock On-order
)Delete
shortcut removed[fix]
Barcode scanning when caps-lock is active[fix]
API not startingYou can now create and use generic parts.
A generic part is not a physical part but it represents, or groups, parts that can be used interchangeably - this is specially useful for resistors and capacitors for which you might not be concerned about their manufacturer as long as they have the same or equivalent specs.
They can also be used to postpone the decision of which part to use. For example, you might assign a generic part to a BOM item but decide which real part to use later on during production.
The parts that can be used in place of a generic part are listed through Part Alternates
.
In project builds, when picking inventory to reserve/assemble, the Sources
column will display which parts were used:
Ω
character from the value (if present)[fix]
Export BOM into PDFThe inventory value report can now be generated for specific storage locations. Similarly to inventory restrictions on Projects, the inventory to be included in the inventory value report can also be restricted.
[fix]
Assigning a Part when the BOM item's value has no unit (e.g. 10k
)[fix]
macOS-only
Shortcuts use ⌘
key instead of Ctrl
Manufacturer PN
on every table (except the main one) show additional info about that partMultiple
field deprecated (a new PL should be created whenever necessary)[fix]
Purchase Orders: sorting/grouping by Supplier[fix]
Purchase Lists: show multiple issues for the same row[fix]
Inventory restrictionsTo avoid going back and forth in between different tabs, you can now see additional info about a part and to easily access its datasheet simply by hovering its Manufacturer PN
. As with every tooltip, wait around a second while hovering the field until the tooltip finally shows up.
[fix]
CSV export (empty values being filtered out)Through the Inventory Restrictions menu you can now also allow or disallow unallocated inventory to be used and also to set storage locations restrictions as inclusive
or exclusive
. Inclusive restrictions meaning you can only pick inventory from selected storage locations and exclusive meaning you can pick inventory from all storage locations except from the selected ones.
[new feature]
Inventory restrictions[fix]
Filter out expired lots when selecting inventory sourcesYou can now define inventory restrictions. This allows you to tell that for a given project you are only allowed to source inventory from selected storage locations or that only inventory that as a Lot assigned can be used. This setting applies to the whole Project. Errors and warnings reflecting "insufficient inventory" will take these restrictions into consideration. Also, on project builds, inventory that has been previously assigned (reserved or picked for assembly) without inventory restrictions will ignore them (i.e. you won't get any errors or warnings for those).
This feature is available on professional plans.
When selecting inventory sources on a project build (to reserve or assemble), you can now set a default sorting order. This setting applies to the whole workspace. There are 5 sorting options available:
Smallest Quantity
: inventory with the smallest quantity shows up firstLargest Quantity
: inventory with the largest quantity shows up firstFIFO
: inventory created first shows up firstLIFO
: inventory created most recently shows up firstRecently Used
: most recently used (created/updated) inventory shows up first[fix]
trial plans only
Unable to sign-in (cannot read plan of undefined)[fix]
Export BOM table into CSV (invalid column's data)[fix]
TEAM
Show sync spinner also for pushed changesThis goes a bit beyond the scope of the app, but it wouldn't make sense to use another software to keep track of assets that aren't necessarily electronic parts or items for which you don't necessarily want to assign a Manufacturer PN
and Manufacturer
pair. For this reason you can now create Asset
parts. These can be keyboards, chairs or whatever items it might make sense for your use-case.
Something worth mentioning is the current lack of Units of Measure
, which would be useful for Assets too. This way you could keep track of fractional quantities such as length (for cables) or volume (for liquids), for example. This will be implemented later on.
[fix]
Allow to edit name of in-house Part[fix]
Supply chain: prevent caching empty or invalid results (e.g. quotes)[fix]
Revert inventory with lot[fix]
macOS-only
Select all rows in a table using ⌘+A
Until now, the Available Quotes
would filter out all invalid quotes. A quote would be considered invalid if the minimum order quantity would be greater that the order quantity or if the supplier didn't have enough stock (i.e. no availability). From now on, and depending on the case, the MOQ and availability can be ignored so those quotes are still shown and might be selected.
When using the Projects > Pricing & Availability to estimate the production costs of a project, both MOQ and availability are ignored and all quotes can be selected. This makes it easier to ensure all items in a BOM have a quote assigned so an estimate of production costs (even if a rough one) can be calculated.
On the other hand, when viewing a Purchase List, quotes with insufficient stock (i.e. available stock on supplier is lower than order quantity) will still be filtered out but the ones with MOQ, even if invalid, are shown. Also, even though you can see quotes with MOQ greater than the order quantity, in order to create a Purchase Order all selected quotes must be valid. This means in order to create a PO you might have to increase the order quantity so it meets the MOQ. Invalid quotes can be easily identified by their dark grey background (instead of purple).
From now one you can define Equivalent parts. Two parts are considered equivalent when both are alternates of each other. An alternate part is not necessarily equivalent to another one (e.g. a "100nF 20V 0603" capacitor might be used in place of a "100nF 6.3V 0603" one, but not the other way around).
An info column was also added to the Alternate and Similar Parts tables so additional info about each part can be easily accessed making it easier to decide which parts should be considered as alternates and/or equivalent.
[fix]
BOM Part Matching: show suggestions when value and package are defined even though additional data is not available[fix]
Inventory sources picker: filter out sources with qty = 0[fix]
Suppliers: add offer[fix]
Barcode settings: set default printer name on combo-box[fix]
macOS-only
Don't maximize window when activating the app through the dock[fix]
Crash "cannot read prefix of undefined"You can now create custom fields (through Settings > Workspace > Part custom fields
) representing SI values (i.e. values that have a SI prefix). Why is this important? Let's say you want to create a new field called "Rated Voltage" where you'd use values represented in Volts. If you'd use a custom field of type String
you'd lose searching capabilities as a string can contain any kind of text. With an SI Value
the app will parse the values and is then able to tell that 200mV
are the same as 0.2V
.
[fix]
API: not starting[fix]
Lots table exported data[fix]
Select project after creation[new feature]
Lot control[fix]
CSV import: clear column mapping[fix]
Parts import: import part stock only if mapped[fix]
Sort by storage namesThis new feature brings increased traceability to BOMIST. With it you can assign a lot to items you receive from a Purchase Order or to inventory resulting from Project Builds. This way, whenever you use inventory belonging to a lot you can track its origin.
You can now pick multiple inventory sources when reserving inventory or assembling items on a project build. This way, if you need 100 units but you have 50 in one storage location and 60 in another one, you could use specify both locations in the desired order. You can easily reorder selected inventory sources by drag and drop them.
When assembling items, if inventory was previously reserved you'll have to use that one. In case you'd want to use other inventory sources you'll have to unreserve inventory and then reserve/assemble the items.
Reserving inventory is particularly useful to generate pick lists (e.g. by exporting the table into PDF), so you know where to get inventory from, and to prevent other project builds or manual inventory adjustments from using stock that is meant to be used in a specific project build.
So far, to see active project builds (i.e. planned
or in-progress
) you'd have to click through a given project and its own revisions. You can now have an overview of active project builds through the main Projects table. The tags under the Production
column will tell you how many builds you have in each state, and by hovering these tags you'll see the corresponding project build codes which you can click to immediately look them up.
You can now filter inventory in the Storage tab, pretty much the same way you filter parts in the Parts tab. An important difference here is that on top of being able to filter by global stock of a given part, you can also filter by its quantity on a given storage location, for example.
Previously, items on a purchase list could be added either manually, through the purchase list itself, or by creating a purchase list through Projects > Pricing & Availability
. You can now add parts to purchase lists directly from tables available on the Parts, Storage and Suppliers tab. This is useful because sometimes these tables give you the right view over your inventory from which you'll decide whether to purchase or not these parts. This way, you can for example filter inventory in a specific storage location in the Storage tab and select the parts that don't have any stock or have low stock to be purchased.
A single purchase list can originate several purchase orders. That's the case when you order parts from several Suppliers. You can now track those purchase orders through the purchase list itself. This list shows you all purchase orders in which the selected purchase list is being referenced on.
enforce quote selection
and only use preferred suppliers
is now checked by defaultItem #
column removedUsage
for in-house Parts (previously only on outsourced Parts)Supplier
[fix]
Sorting parts by value[fix]
Attrition quantity formula[fix]
Table header scrollbar padding (failed to detect scrolling)[fix]
Table minimum width when visible columns change[fix]
Issues table jumping selection[fix]
Copy cellWhen importing a BOM along with additional data so Parts can be matched, you'll get a warning when no parts were matched and suggestions of parts to be assigned if more than one were matched.
You can also double check the data used for parts data matching and even edit it.
Previously, the estimated cost presented on the Projects > Pricing & Availability
table considered only the Purchasing costs. This way, if purchasing criteria was set to if needed
, the estimated cost would represent only the units that needed to be purchased which makes it hard to estimate the overall production cost.
From now on, the production cost is calculated taking into account each part's Unit Cost
, in case those parts don't need to be purchased (i.e. they exist in your inventory already) or the price of the selected Quote, and corresponding quantities. When looking up the Unit Cost
, if it's not available, the Order Price
will be used instead if available, and vice-versa. The production cost is the sum of the purchasing cost and your inventory cost (the Unit Cost
of each part available in your inventory multiplied by the required quantity)
Receive
and Assemble
dialogs fill in one option by default. Options are also sorted by last time used
(most recent to oldest). Rendering improved.[fix]
Printing (Windows only)You can now partially mark items as received on a purchase order. This is useful for backordered items, when let's say you order 5000 units but only 2500 are initially available to be shipped. When receiving items, if quantity is not passed the whole quantity is assumed to be received. To mark an item as partially received, enter the quantity received. To set a partial quantity, items must be received individually (i.e. Storage method
should be set to Individual
instead of Single location
).
When aggregating data on rows with grouped fields, the app attempts to display a unique value by default but if that's not possible an asterisk will be displayed instead. This doesn't apply to fields that have their own aggregation formula (e.g. sum, average), such as is the case of prices and quantities.
C1-3
instead of C1, C2, C3
)Account
; by default uses BOMIST's logo)Manufacturer
and Type
can now be grouped[fix]
PDF export: sorting order and grouping, break page after row[fix]
Prefix
column on project's build table[fix]
Printing: printer name with whitespaces (Windows only)[fix]
ComboBox: prevent overflow (ensure it's visible on the screen)[fix]
Move inventory (MAKER plan only)Item #
column added to BOMsManufacturer PN
can be disabled/enabledUnit Price
is now displayed with 3 decimal placesSettings > General
(affects how prices are displayed)[fix]
Insufficient stock warnings[fix]
Sorting of prices/storage/<id>/inventory
Stock
(in-house and on-order inventory) and On-hand
columns added to project tables[fix]
Quotes with MOQ > 1 not showing up on Available Quotes
[fix]
Adjust inventory when quantity surpass plan's limit (FREE plan only)[fix]
Prevent moving a storage location to itself[fix]
Clearable combo boxes[fix]
Assembling items when some items without inventory were selected too[fix]
Project BOM: manually assign parts[fix]
Swagger UI[fix]
Purchase orders: receive items with the same Manufacturer PN
and Manufacturer
but with different Supplier PN
[fix]
Project builds: when assembling items with reserved inventory, set default inventory on the ComboBox[fix]
Go-to and scroll to table row[fix]
Memory leak related with prices displayed on tables making the app slower[fix]
Parts filters: Value filter missing[fix]
Parts: set storage location when creating a new part[fix]
Price columns with paywall tag on professional plansopen
, ordered
or received
) can now be defined when importing purchase orders[fix]
Some rows missing when grouping some columns[fix]
Aggregated data on some grouped columnsOpen
state can be merged[fix]
CSV and JSON table export: arrays and internal idsYou can now copy a project revision's BOM from another project revisions's BOM. This is especially useful for Models/Variants: different projects that have a very similar BOM, ofen the difference being on the parts that are (not) to be populated (DNP).
A purchase order always keeps track of purchase lists that originated them. When merging two purchase orders, the resulting purchase order might contain duplicate parts, each one coming from a different purchase list. By grouping the table by Supplier PN
you get to see not only the rows corresponding to each purchase list but also the aggregated value on top. If, for example, you want to export into a CSV file only the aggregated values, you simply collapse the grouped row.
To merge purchase orders, they have to have the same supplier and to be in the Open
state.
Auto-assign quotes
now works with selected items (instead of all items in the table)Auto-assign quotes
and Unassign quotes
now have its own button[fix]
Custom quotes not foundUnit Cost
, On-hand
(in-house stock), Worth
[fix]
Chance of intermittent read-only mode in team workspaces[fix]
Part finder: filter parts[fix]
Ensure workspace has a name upon its creationYou can now easily check how much is your inventory worth. This is accomplished through a new field in Parts: Unit Cost
. This value can be manually set or imported along with new Parts. But the best thing is that it's also automatically updated whenever you use Purchasing, so whenever a Purchase Order is received, or imported, the unit cost for each part will be updated.
The inventory value report can be exported into CSV, PDF or HTML and is available on professional plans.
[fix]
Import parts without storage assigned: not listed as unallocated[fix]
Table columns re-ordering (drag and drop)[fix]
Custom fields: respect fuzzy search option[fix]
Extra re-render after workspace initialization[fix]
API: swagger documentation[fix]
Import purchase order: purchase orders are set as "received"[fix]
Storage: tree node is updated after editing storage[fix]
Unselect project build when current project revision changes[fix]
Barcode reader buffer flush timeout increased[fix]
Project revision finder dialogWhen importing a BOM, parts would be automatically assigned to each BOM entry if a part on your workspace would match the Man. Part Number
and Manufacturer
or simply the Man. Part Number
. From now on, you can set which fields should be matched. Custom fields can be leveraged to match parts to a custom ID for example or any other value you might find useful. Multiple matching fields can be set.
If more than a part is found for a given match, the part won't be automatically assigned.
[fix]
Printing issues (file not found), open printer preferences (windows-only)[fix]
Error dialog at startup[fix]
Import purchase orders: fetching the wrong parts when the Supplier Part Name contains dots[fix]
Multiple row selection when Issues table is open[fix]
Available quotes: filter out quotes with stock < order qty[fix]
Alphanumeric sorting for Label and Storage columns[fix]
Projects > Pricing & Availability: order qty updated according to batch size[fix]
Import purchase orders: wrong column mapping when using pre-defined CSV parser[fix]
Prevent race conditions on the database[fix]
filter part by value with Ohm unit[fix]
Part dialog, ensure inventory location ComboBox is visible[fix]
reset page index when new data is set on table[fix]
table resizers over tab selection's ComboBox (UI-only)[fix]
import Parts with storage field empty/inventory/<id>
endpoint addedsource
included on project build items[fix]
reserved inventory source shows up on the Project Builds table (after restarting the app)[fix]
save table's current page index[fix]
import workspace (too many files; notifications added)You can now easily see inventory changes for any given Storage location. The history table will list the history for all parts that are in the selected storage location.
[fix]
on Projects > Pricing & Availability, when purchase criteria is set as "if needed", estimated costs are updated accordingly[fix]
when assigning a part to a BOM entry, value and package fields are updated accordingly[fix]
trees are now sorted alphanumerically (e.g. Storage)Custom fields allow you do extend fields available on Parts and can be defined through Settings > Workspace > Parts custom fields.
A custom field can be a string
, number
, boolean
or an option
. Custom fields show up on parts Filters, on the Parts dialog when creating a new part and also on the Parts Group Edit dialog when editing multiple parts at a time.
Columns on all tables can now be reordered. All you need to do is to drag-and-drop them into the desired location.
NRFND parts can't be assigned to project BOMs. This is useful when a part becomes obsolete.
On the other hand, non-stocking parts can be used normally but low stock and out of stock warnings won't be displayed. Non-stocking parts have a "NS" suffix on the stock column.
[fix]
offline/read-only notifications incorrectly showing up on the FREE planBOMIST can now automatically backup your workspaces. You can define a backup interval (daily, weekly, monthly - or never, in case you want to disable it), the folder the backups should be stored at and how many you want to keep. This can be configured through Settings > Backups.
As these backups are kept on your file-system, we recommend you to put them in a folder that can sync with some cloud storage service (e.g. Dropbox). This way, if for some reason you stop being able to access the computer you have the app installed on, you can still access your backup files on the cloud.
Each backup file consists of a Workspace dump file (.bomist_dump) which includes all the data available on your workspace.
To automate the creation of Workspace dump files you can also use the API.
[fix]
read-only mode incorrectly showing up on TEAM workspaces[fix]
unreserve reserved inventory[fix]
reserved inventory[fix]
missing Octopart offers on Parts Supply Chain[fix]
BOM table displays not only the grouped designator prefix but also the designators for each BOM row[fix]
create purchase lists for BOMs that include in-house parts (do not add the part itself to the list)Previously, in order to create a purchase order (PO) the user was required to pick up a quote from an available supplier. This can be inconvenient as available quotes might be outdated, showing as "not available" when the part is in fact available on a given supplier, or it would require the user to setup custom quotes in the supplier tab.
Selecting quotes is now optional and can be disabled/enabled through Settings > Workspace > Enforce quote selection. When disabled, all it takes to create a PO is to have a supplier defined, which will be picked from the Part's data or from the global preferred suppliers. In this case, the user is responsible for making sure the part is available on the given supplier.
[fix]
unable to select hidden workspace file in macOS[fix]
custom supplier not showing up on available quotes[fix]
Storage column refreshed after being changed through the inventory tableYou can now import purchase orders and parts directly from purchase orders placed on your favourite distributor. All you need is a CSV file that you can normally generate through the online distributor.
By importing a purchase order, if the parts included in it are not yet available on the app they will be created as well. Not all part fields need to be defined and BOMIST will try to autocomplete most of them for your convenience.
The importer includes a CSV template for purchase orders generated from Digi-Key and Mouser, meaning appropriate CSV settings and field/column mappings will be set by default.
[fix]
preserve sortBy and groupBy table properties[fix]
hidden rows when grouped columns get hidden[fix]
scroll row into view when selecting adjacent rows through keyboard arrow keysTo make sure the most important table get the most space on the screen, some tables can now be collapsed.
You can now adjust the font size used in tables and trees through Settings > General
.
[fix]
data importer column index starts from 0BOMIST can now launch a local web server that exposes a REST API. Through this API you can then retrieve and process your data the way you want by creating your own scripts. This feature is available on all plans.
Once the server is running, you can test it by simply opening your web browser at http://localhost:3333
(or on any other hostname
and port
you started the server at).
Documentation is provided at http://localhost:3333/_swagger
.
Endpoints to retrieve data and to interact with the UI are available.
This is a major version update and, as the app was re-written from scratch, it brings a lot of UI and UX improvements. Legacy app will no longer be distributed nor supported.
You might want to read this blog post too.
For more info about each feature please visit the Learn section.
Legacy workspaces are not compatible with the new version but can be partially converted using this tool: pypi.org/project/bomist-utils/. If you need help converting your workspace, please get in touch