PartsBox is a comprehensive online tool for managing electronics production, including functionality ranging from inventory management to BOM pricing, production, and purchasing. It provides a centralized platform to streamline and optimize the entire process of electronics manufacturing.
PartsBox offers a robust inventory management system that keeps track of electronic components, their storage locations, and current stock levels. It supports various types of parts, including linked parts (with manufacturer part numbers), local parts (custom or generic components), meta-parts (interchangeable parts), and sub-assembly parts (resulting from building projects). Each part can be associated with detailed information such as manufacturer, MPN, footprint, tags, and custom fields. The software also allows for the creation and management of storage locations, which can represent physical storage units like boxes, shelves, or racks.
With PartsBox, you can easily price your Bill of Materials (BOM) using up-to-date component prices from online distributors. Simply upload your BOM, and the software will automatically fetch the latest prices, taking into account price breaks, currency conversions, minimum order quantities (MOQ), and order multiples. In addition to online offers, you can add your local offers from suppliers, specifying multiple price breaks, currencies, validity periods, MOQ, and order multiples. This ensures that you always have an accurate and up-to-date estimate of your BOM costs.
PartsBox streamlines the process of building electronic projects by managing the entire production lifecycle. Projects in PartsBox represent BOMs that can be built, resulting in the creation of sub-assembly parts. When a project is built, the required components are subtracted from the inventory, and the resulting sub-assembly part stock is added. Builds can be performed in a single stage or multiple stages, allowing for flexibility in the production process. The software keeps a detailed history of all builds, enabling easy tracking and auditing.
PartsBox provides full lot control functionality, allowing you to track specific batches of parts from their source to their use in production. Lots can be associated with detailed information such as name, description, attachments, and an event log that records all activities related to the lot. This two-way traceability ensures that you have complete visibility into the origin and usage of each batch of components, enabling better quality control and compliance with industry regulations.
PartsBox was designed from the ground up to be fast, unobtrusive, and easy to use. The user interface is fast and responsive, allowing you to quickly search for parts, check stock levels, add or remove stock, and access projects. Every action happens instantly, without any noticeable delay.
One of the key features of PartsBox is its real-time collaboration capabilities. Multiple users can work simultaneously within the application, and any changes made by one user are instantly visible to all other users. This ensures that everyone always has access to the most up-to-date information, eliminating the need for manual synchronization or communication.
Unlike many traditional ERP (Enterprise Resource Planning) or MRP (Material Requirements Planning) tools, which can be complex and cumbersome to implement, PartsBox is designed to be easy to introduce and integrate into your existing workflow. It aims to cause minimal friction within a company, allowing users to adopt it quickly and seamlessly.
PartsBox is more than just a tool that you are forced to use; it is a tool that you will want to use. The intuitive interface, powerful features, and real-time collaboration make it an enjoyable and productive experience for everyone involved in the electronic parts management process. Whether you are an engineer, a purchasing manager, or a production supervisor, PartsBox will simplify your work and help you stay organized and efficient.
PartsBox is all about electronic components, so a 'part' is a fundamental concept. A part represents an electronic or mechanical component. There are several types of parts:
Note that for generic and no-name components (e.g. a no-name NE555 in a DIP package) it's usually better to use local parts. There are hundreds of versions of the NE555 and your particular version might be slightly different from someone else's. So use linked parts only for exactly matching components (for example if you have a 'NE555PWG4' from Texas Instruments, link it).
Parts are abstract: they describe the component, but until you add actual stock, they don't represent physical things. Even parts without stock are useful—for example, you can add them to projects (BOMs) to get pricing for your projects.
Linked parts have two names: the local (internal) name and the official MPN. In the free hobbyist plan, the local name must be the same as the MPN. In commercial plans, both names can be used, and the local name can be different from the MPN. The local name can be changed by renaming the part.
Meta-parts are used to group together parts that are interchangeable. This is useful for passives, where several part alternates can be added, or for any case where several parts are equivalent and any of them can be chosen based solely on price and availability. PartsBox will handle meta-parts similarly to normal parts, delaying the choice of the actual part to be used. When pricing projects, offers for all member parts will be considered.
Sub-assembly parts represent the results of building your projects. Whenever you build a project, stock gets added to the corresponding sub-assembly part. The part can then be used in other projects if needed. This provides a way to build complex products that consist of a number of sub-assemblies and parts, each produced or sourced separately.
Apart from standard attributes like a name or manufacturer, parts can also have custom fields/attributes (in plans that support this feature). Like the 'Notes' field, these can be used to store any data but in a more structured manner. Some usage examples include Distributor, Distributor Part Number, Supplier Part URL, Weight, or Container Tare Weight. Custom fields are indexed for searching.
After creating a part in PartsBox, you can add stock to represent the physical inventory of that electronic component. Stock represents the actual, tangible copies of the part that you have on hand or will have access to in the future.
A single part can have stock in multiple locations. This is particularly useful when dealing with reels of components. Often, you may want to keep a full reel in one location while storing a smaller quantity on cut tape in another. Tracking stock across different locations also proves valuable when working with contract manufacturers, as it allows you to monitor inventory that is physically located outside your office.
PartsBox intentionally separates the concepts of parts and stock. You can think of parts as containers that may hold actual components (stock). Parts with zero stock serve important purposes:
PartsBox treats stock history as a permanent record with limited editing options. You can always remove the most recent entry, but older entries cannot be deleted, and their quantities cannot be modified. This approach ensures the integrity and traceability of your stock data over time.
In PartsBox, a lot represents a specific batch or shipment of electronic components, traceable to a known source. Lot control is an optional feature that allows for more granular tracking and management of parts inventory.
When lot control is enabled, all stock for a given part is divided into distinct lots. Each lot is created when adding new stock, ensuring that every batch of components is associated with a specific lot. This allows for differentiation between seemingly identical parts that may have been sourced at different times or from different suppliers.
Lots can have various data associated with them, including:
By utilizing lot control, PartsBox enables more precise tracking of parts throughout the inventory management process. This is particularly useful for managing parts with limited shelf life, ensuring traceability in case of quality issues, or complying with regulatory requirements in certain industries.
When parts are consumed during a build or transferred between storage locations, the specific lot is recorded, maintaining a complete history of each lot's usage. This detailed tracking allows for easier identification and isolation of issues, should they arise.
The use of lots in PartsBox provides an additional layer of control and visibility over the electronic components inventory, enabling more efficient and accurate management of parts.
A storage location is a place where components can be stored. It can be a room, a drawer, a shelf, a box, a compartment within a box, or anything else you can think of. How you organize your storage is up to you. Some people throw all their parts into two or three boxes, and some use a more fine-grained approach.
You can name your storage locations anything you like, but there is a suggested naming scheme:
Start with a letter. You could use b for boxes (with compartments), but you might also have shelves (with reels), or cabinets with drawers. A two-digit number follows, that is the number of your box, shelf, cabinet or drawer. Then, if the location has sub-compartments, we use a chess-grid system: a1, a2, b1, b2, and so on, depending on the size of the grid. This results in names like 'b01-a4', which means 'box 1, row a, column 4', or 's12-l1-r2' which is 'shelf 12, level 1, reel 2'. Use whatever lets you easily find components.
Sample books with resistors or capacitors can be labeled like boxes, with no sub-compartments, because it's easy to find a particular value within a sample book.
Your storage location names can be changed at any time, but choose them carefully, as once you print your labels/stickers, changing them becomes slightly more difficult.
Companies working with CM/EMS (contract manufacturers) often prefix some of their storage locations with the manufacturer's name, so that they can easily filter locations and see what the CM has in stock right now.
CM/EMS companies, on the other hand, often prefix some storage locations with customer names, to get per-customer storage locations for consigned parts.
PartsBox allows attaching arbitrary files to parts, projects, storage locations, lots, and orders. This feature is useful for keeping all relevant information organized and easily accessible. Some common examples of files you might want to attach include:
By attaching these files directly to the relevant items in PartsBox, you can ensure that important information is always at your fingertips. There's no need to worry about naming conventions, directory structures, or remembering where files are stored on a server.
Attachments are stored securely in the cloud and can be accessed from anywhere.
When viewing the detail page for an item with attachments, you'll see a list of all attached files. Clicking on a filename will download the attachment to your computer. You can also rename attachments, or delete them if they are no longer needed.
By leveraging PartsBox's attachment feature, you can keep all essential documentation organized and connected to the relevant items in your inventory. This saves time and ensures that everyone on your team has access to the information they need.
In PartsBox, orders represent purchases of parts from vendors. Each order progresses through three distinct states:
A project in PartsBox represents a Bill of Materials (BOM), which is a list of components required to build an electronic device or assembly. Each project is associated with a specific design or product.
Projects serve multiple purposes in PartsBox:
A build represents the result of building a project. It normally corresponds to a batch of devices that have been manufactured, or are being manufactured. PartsBox supports single-stage and multi-stage builds, and a multi-stage build can be in-progress (not completed yet).
Offers from suppliers/distributors can be attached to parts, to be used when pricing projects that require the part. Offers can have multiple price breaks, as well as validity periods (expiration dates), minimum ordering quantity (MOQ) and order multiples.
A purchase list is a consolidated list of parts required to build one or more projects, based on the Bill of Materials (BOM) for each project and the specified build quantities. It represents the components you need to order to complete your planned builds.
To create a purchase list, you add projects to your shopping cart, specifying the quantity of each project you intend to build. PartsBox then combines the individual BOMs, multiplying the component quantities by the build quantities, and merges them into a single list. This process de-duplicates common components across projects, resulting in a unified list of all the parts you need to purchase.
The purchase list provides a clear overview of your purchasing requirements, making it easier to manage your inventory and plan your orders. It takes into account the current stock levels in your inventory, indicating which parts need to be ordered and in what quantities.
Once you have reviewed and finalized your purchase list, you can proceed to create vendor orders directly from the list. PartsBox helps you select the best vendors based on your preferences, such as price, availability, and lead time. You can split the purchase list into multiple vendor orders if needed, optimizing your purchasing process and reducing costs.
Reports allow you to get overview information about your data.
Like everything else in PartsBox, reports update in real-time. As an example, if you keep a 'Low Stock' report open, and somebody else removes stock (which will cause the stock for a particular component to go below a threshold), your report will be instantly updated.
PartsBox supports collaboration through the concept of organization (companies). A company or organization in PartsBox represents a shared database that multiple users can access simultaneously. This allows teams to work together on managing their electronic parts inventory, purchasing, and production.
When you create a company or organization in PartsBox, you can invite other users to join and collaborate. The number of users that can access a company database depends on your subscription plan. If you need to accommodate more users, you can upgrade your plan accordingly.
To grant someone access to a company database, they must first create a PartsBox account. Once they have an account, an administrator of the company can invite them and grant the appropriate access rights. This allows you to control who has access to your company's data and what actions they can perform.
In addition to company databases, every PartsBox user also has a free private database for personal use. This private database is separate from any company databases you may have access to. You can easily switch between your private database and any company databases using the database switcher located at the top of the PartsBox app screen. The switcher displays the name of the currently selected database.
PartsBox offers flexible access control options to ensure that users have the appropriate permissions based on their roles and responsibilities within the company. A company always has at least one 'admin' user who possesses the highest level of control and can manage billing information and grant or revoke access to other users.
For plans without Role-Based Access Control (RBAC), PartsBox provides three basic access levels:
For plans with Role-Based Access Control (RBAC), PartsBox offers a more granular and customizable approach to access management. With RBAC, companies can define any number of roles and assign them to users based on their specific responsibilities. Each role defines permissions for individual operations, such as creating parts, adding stock, or performing builds.
RBAC allows for fine-grained control over permissions, enabling companies to create limited roles with restricted access. For example, a 'Receiving' role could be defined to allow users to add and move stock but not modify projects or perform builds. This role would be suitable for employees responsible for receiving and organizing incoming inventory.
Similarly, a 'Production' role could be created to allow users to perform builds from predefined projects but not modify the projects themselves. This role would be useful for employees involved in the manufacturing process who need to assemble products based on established designs.
In larger organizations, maintaining an immutable audit trail of all database modifications is often necessary for regulatory compliance and traceability. This is particularly important for companies subject to regulations such as US FDA Title 21 CFR Part 11, which mandates strict record-keeping and data integrity requirements.
Even in the absence of legal obligations, many companies choose to implement an audit trail as a best practice for ensuring accountability and facilitating root cause analysis in case of issues or discrepancies.
PartsBox plans with the Audit Trail feature automatically record a detailed history of every change made to the database. Each audit trail record includes:
This information provides a comprehensive and granular view of the database's evolution over time, allowing administrators to reconstruct the sequence of events and understand the context behind each change.
Audit trail data can be easily exported from PartsBox in a format suitable for digital signing and long-term archival. This exported data serves as a verifiable record of the system's history, which can be used to demonstrate compliance with relevant regulations during audits or inspections.
In the process of assembling electronic devices using SMT (Surface Mount Technology) pick-and-place machines, a certain percentage of parts (components) will inevitably be lost or rejected. This is due to the inherent limitations and imperfections in the automated assembly process.
Furthermore, the mechanical design of tape feeders used in these machines requires a minimum length of tape, known as the "leader", to be present before the machine can automatically pick up parts from the tape. The parts contained within this leader tape are effectively unused and contribute to the overall part attrition.
Part attrition, also referred to as part wastage, is an important factor to consider when planning for production and managing inventory. Failing to account for attrition can lead to unexpected shortages and production delays.
PartsBox addresses this issue by allowing users to set attrition parameters on a per-part basis. This feature enables users to specify the expected percentage of part loss during the assembly process, as well as the minimum quantity of parts required to account for the leader tape.
By setting accurate attrition parameters, users can ensure that sufficient quantities of each part are available to complete the production run, taking into account the anticipated losses. PartsBox will automatically adjust the required stock quantities based on these attrition settings, helping to prevent shortages and maintain an uninterrupted production flow.
In electronics manufacturing, it's common for a part to have possible substitutes: functionally equivalent components that can be used interchangeably. PartsBox provides several ways to define substitutes, each with its own semantics and use cases.
Meta-parts allow you to group several substitute parts (known as member parts) under a single name. This name can then be used in Projects and BOMs. Meta-parts are logical groupings that provide an aggregate view of the stock for all their member parts. They also enable low-stock alerts at the meta-part level.
A good example of when to use a meta-part is for components like 'TPS61161DRVR' and 'TPS61161DRVT'. These are the same part, just in different packaging. By creating a meta-part called 'TPS61161DRV' and using that name in your BOMs, you can manage their inventory as if they were a single part. The 'TPS61161DRV' meta-part will show the combined stock for both packaging variants.
Part substitutes provide a way to indicate that a different part can be used in place of the current one. Unlike meta-parts, part substitutes do not provide any stock grouping. The stock for each part is still managed independently.
Part substitutes are particularly useful for passive components, which often have functional equivalents that you don't necessarily want to manage as a single stock item. By defining part substitutes, you can indicate that another part can be used in place of the current one in every Project, BOM entry, and purchase list entry, globally.
Sometimes, a part can be substituted for a specific BOM entry in a project, but not necessarily anywhere else. This is where BOM substitutes come in.
BOM substitutes allow you to define a substitute part for a specific BOM entry in a project. This substitution applies only to that particular BOM entry and does not affect the part's usage in other projects or BOMs.
When building or purchasing, PartsBox combines information about all the above types of substitutes to produce a comprehensive list of all possible substitutes for a given BOM entry or purchase list entry.
This powerful feature ensures that you have maximum flexibility in sourcing and using components, while still maintaining tight control over your inventory and builds.
By using meta-parts, part substitutes, and BOM substitutes, you can optimize your inventory management, reduce the risk of stock-outs, and ensure that your projects can be built even if a specific part becomes unavailable.
Storage locations in PartsBox represent the physical places where parts are stored, such as boxes, shelves, or racks. To create a new storage location, navigate to the Storage section in the main menu and click on the 'Create' button. PartsBox offers four methods for creating storage locations:
After creating storage locations, you can assign parts to them, making it easy to track the physical location of your inventory. Storage locations can be renamed after creation to better reflect their contents or purpose. However, storage locations cannot be deleted. Instead, you can archive a storage location, which will hide it from view but still retain it (along with its history) in the database. This ensures that historical data about the location and its associated parts is preserved for future reference or auditing purposes.
In PartsBox, adding parts is a two-step process: first, you create a part, and then you add stock to it. Even without stock, parts can still be useful, such as for adding them to projects (BOMs) to estimate pricing.
To add a new part, navigate to the Parts section in the main menu and use the 'Create' button to open the create part dialog.
The 'Part Type' field determines the kind of part that will be created:
For commercial users, it is possible to immediately assign a local (internal/company) part number to a linked part.
There are two methods for searching for linked parts:
After entering a search term and clicking either 'Match' or 'Search', the results will be displayed. Choose the part that exactly matches your requirements, paying close attention to small variations in naming, as they can indicate significant differences in the actual components. When you select a result, its specifications will be shown, and a datasheet link will be provided next to each component, if available.
When creating local parts, only the part name is required; all other fields are optional.
Certain plans allow for uploading and attaching datasheets, images, CAD models, and other information to parts. This is done after the part has been created.
To create a meta part, provide a name and optionally a footprint and description. The newly created meta part will be empty, meaning it will not contain any member parts (substitutes). These will need to be added later, either by using the 'Add part' button on the meta-part info screen or by selecting multiple parts in the main parts table and using the 'Selected | Add to meta-part' option.
Searching is a fundamental feature in PartsBox that allows you to quickly find the parts you need. The main search box is prominently located at the top of the Parts sections, providing a powerful tool for narrowing down the list of displayed parts.
In addition to the main search box, search and filtering capabilities are available in most tables throughout the application. These search boxes are simpler than the main parts search engine, offering exact matching functionality to help you refine your results.
The parts search engine employs fuzzy matching, which means that even if your search terms don't match exactly, relevant results will still be displayed. To help you quickly identify the most relevant matches, exact results are visually distinguished from partial matches using different background colors.
When searching for parts, the following fields are included in the search scope:
In addition to searching by keywords, you can also search using tags. To search by tag, simply enter the #
character followed by the tag name. Tags are matched exactly, and if you enter multiple tags, a component must have all of the specified tags to be included in the results.
For even greater flexibility, you can combine keywords and tags in your search queries. This allows you to create highly targeted searches that help you find exactly what you need, even in large and complex parts databases.
Most tables in PartsBox support advanced filtering capabilities, allowing you to quickly narrow down the displayed data to match specific criteria. The filtering system is highly configurable and supports complex logical conditions. This section will guide you through the process of creating, using, and managing filters in PartsBox.
To filter the data in a table, follow these steps:
To quickly remove all currently applied filters from a table, use the "Remove all filters" button. If you plan to reuse the filter in the future, make sure to save it as a preset before removing it.
Filter conditions are the building blocks of your filters. Each condition consists of a field, a condition, and a value:
You can combine multiple filter conditions using logical AND/OR operators. PartsBox supports nested conditions, allowing you to create complex filtering logic by adding single conditions or multiple conditions combined with AND/OR under each AND/OR statement.
When entering numerical values in filter conditions, you can use unit prefixes for convenience. Simply enter the prefix without the unit. For example, use "22u" instead of "22μF" and "10k" instead of "10kΩ". Note that the prefixes are case-sensitive, so "m" and "M" represent different values.
PartsBox supports the following unit prefixes:
PartsBox allows you to save your filters as presets, which can be either personal or shared within your company. This feature enables you to quickly load complex filters and define filters that are useful for everyone in your organization.
To manage your filter presets:
PartsBox provides a convenient way to select parts for various operations. Each part in the table has a checkbox next to its name, allowing you to select it individually. The application remembers your selections, so you can freely mix selecting and searching without losing your chosen parts. As you select parts, perform searches, and select more parts, your selection will steadily grow.
To select all parts in the current view, simply click the selection checkbox in the table header. This will mark all visible parts as selected. If you need to deselect everything and start fresh, use the 'Deselect All' option from the 'Selection' menu.
The 'Selection' menu offers a range of operations that can be performed on the selected parts:
By using the selection checkboxes and the 'Selection' menu, you can efficiently perform bulk operations on multiple parts in PartsBox.
Scanning barcodes is a quick and efficient way to process incoming shipments, add or remove stock, and create new parts in PartsBox. This feature improves your inventory management workflow, saving time and reducing manual data entry.
PartsBox supports two methods for scanning barcodes:
To start scanning barcodes, click on the 'Scan' menu button in PartsBox. Depending on your scanning method:
After a barcode is successfully decoded, PartsBox analyzes the data and takes one of the following actions:
PartsBox supports a wide range of barcode formats commonly used by electronic component distributors:
If the scanned barcode includes quantity information, it will be automatically prefilled in the 'Add Stock' dialog.
If you created your DigiKey order within PartsBox and copied the generated ID codes into your DigiKey cart, the barcodes on your received parts will contain PartsBox IDs. When scanning these barcodes, PartsBox will automatically identify the associated order and line item, allowing you to easily receive the parts against the order.
PartsBox offers several convenient methods for adding parts to a project, allowing you to efficiently populate your Bill of Materials (BOM). Here are the available options:
Tags provide a powerful and flexible way to categorize and organize your data in PartsBox. By applying tags to various objects such as parts, storage locations, projects, orders, lots, and builds, you can quickly find and filter specific subsets of your data.
Tags can be added to objects in different ways, depending on the object type:
When adding tags, simply enter the tag name without the leading #
character. An object can have any number of tags attached to it.
Tags play an important role in searching and filtering your data. When you enter a tag in the search box, PartsBox will limit the search results to objects that have that specific tag assigned to them.
Keep in mind that tags are matched exactly. If you enter multiple tags in the search box, an object must have all the specified tags to be included in the results.
To streamline the tagging process, PartsBox automatically generates auto-tags for your parts based on their specifications. These auto-tags are created independently from your manually assigned tags, so you don't have to worry about conflicts if you assign a tag with the same name as an auto-tag.
Auto-tags provide a convenient way to categorize parts without requiring manual effort. They ensure that parts with similar specifications are automatically grouped together, making it easier to find and manage them.
In the electronics manufacturing process, it's common for a certain percentage of components to be lost or wasted due to various factors such as handling, machine setup, or defects. PartsBox allows you to define attrition (or wastage) parameters for each part individually, ensuring that your inventory and order quantities account for these expected losses.
PartsBox provides two methods for specifying attrition:
To set attrition parameters for a single part, navigate to the part's detail page and locate the attrition settings. You can enter the percentage and/or quantity values as needed.
If you need to set attrition parameters for multiple parts simultaneously, PartsBox makes it easy with the bulk editing feature:
When you use PartsBox to build or price Projects and BOMs, the application automatically takes the defined attrition parameters into account. It calculates the total number of components required based on the project's needs and the expected losses, ensuring that you have sufficient stock or order quantities to complete the build.
Attrition cannot be set directly for meta-parts, which are used to group interchangeable components. When pricing projects that include meta-parts, PartsBox will use the maximum attrition values from all the individual parts within the meta-part. When building projects, the actual attrition will be calculated based on the specific part selected from the meta-part group at the time of the build.
PartsBox can import a BOM (Bill of Materials) from a number of CAD/eCAD packages, in CSV or TSV format.
To create a new project by importing an existing BOM, use the 'Import' button in the 'Projects' section. This will prompt for the file to be uploaded. Upload a CSV/TSV file exported from your CAD package.
PartsBox will try to parse your BOM, but most of the time you will need to select an import preset first. Presets are currently defined for:
There is also a 'Custom' setting which allows for manual mapping of CSV columns to PartsBox fields, as well as for setting the field separator.
Importing from KiCad is free for everyone, while all the other presets are available in commercial plans only.
Select the preset corresponding to your CAD package, or use the 'Custom' setting to manually map columns.
After importing a BOM into PartsBox, each line has to be matched to a specific part. If the BOM part name is the same as a PartsBox part name, this will be done automatically. However, if a part with the same name can't be found, you will need to do the matching yourself. You can either select an existing PartsBox part, or create a new one and match it to the BOM entry.
In PartsBox, BOM entries are not limited to parts. You can add services or labor, like PCB assembly, testing, or packaging. These can have offers attached just like parts, which allows for pricing of the entire production, not just the parts. Offers for service/labor BOM entries are similar to part offers: they also support multiple price breaks, MOQs, can have expiration dates, and can be in any supported currency.
Certain versions of Altium Designer are known to have issues with handling double quotes (") in the CSV files they generate. Specifically, these versions fail to correctly escape double quotes within field values. For instance, if a field contains a value like 0.156"
, the resulting CSV file will not adhere to the standard CSV formatting rules, rendering it problematic for further processing or importing.
To address this issue, users encountering problems with their CSV files due to unescaped double quotes have a couple of manual correction options:
It's important to perform these corrections with care to ensure data accuracy and integrity. Additionally, users should consider checking for software updates or patches from Altium that might resolve this issue in future releases, reducing the need for manual file adjustments.
When editing a Bill of Materials (BOM) in PartsBox, you have the flexibility to add part substitutes for individual BOM entries. This feature allows you to specify alternative parts that can be used interchangeably with the main part. When building, pricing, or purchasing, PartsBox treats the main part and all its substitutes as equally valid choices, giving you greater flexibility in sourcing components.
BOM substitutes function similarly to member parts (substitutes) in meta-parts and substitutes for individual parts. However, there is a key difference: BOM substitutes are configured on a per-entry basis within a specific project and have no effect outside of that particular entry This granular control enables you to tailor substitutes to the specific requirements of each project.
When combining BOMs for purchasing, PartsBox takes a conservative approach to handling substitutes. If there are two entries for the same part but with different sets of substitutes, PartsBox will only consider the intersection of substitutes — that is, the substitutes that are common to both entries. This ensures that only substitutes that are universally applicable to the part across all instances are used in the purchase list. To illustrate this, let's consider an example. Suppose you have one BOM where Part A has substitutes B and C, and another BOM where Part A has substitutes B and D. In this case, PartsBox cannot assume that Part A can always be substituted with B, C, or D. Instead, PartsBox will only be certain that Part A can be substituted with B, as it is the only common substitute across both BOMs.
Estimating the cost of a project is an important step in the production process. PartsBox simplifies this task by providing a comprehensive pricing feature. To access this functionality, navigate to the project you wish to price and select the 'Pricing' tab.
Upon opening the 'Pricing' tab, you will be presented with the main pricing table, which displays a detailed breakdown of the project's components and their associated costs. This table includes information such as the part name, manufacturer, MPN (Manufacturer Part Number), quantity required, and the unit price for each component.
Build/batch size is the number of units that you want to estimate pricing for. Several common quantities are provided for quick access, but any quantity can be entered in the input box.
Total per-unit price and total price are displayed in large type on the right side. The unroll button next to them allows for quickly comparing pricing for the whole range of common build quantities, without entering them manually.
If there is a red exclamation mark warning sign next to per-unit and total price, it means that PartsBox was unable to calculate the pricing, because some information was missing. The problematic parts are highlighted in red in the pricing table below.
Part sourcing options allow for choosing where the parts come from. 'Only local stock' will only consider the parts you already have, using their average purchase price for BOM pricing. 'Only buy' will ignore local stock and only use online prices and stock information. 'Use local stock, then buy' will first use up all local stock, and then if it isn't enough, consider online offers.
Note that if your stock history does not contain prices, you will not get correct pricing information if you try to use local stock in Project/BOM pricing. You can always go back and edit the stock history in order to add prices.
Offer filtering options allow narrowing down the list of offers:
The pricing table is the central component of the BOM pricing feature in PartsBox. It provides a comprehensive overview of all the parts in a project, along with their pricing information and sourcing options. This table enables you to make informed decisions about purchasing components for your project.
Key columns in the pricing table include:
The pricing table provides the ability to 'lock' a particular offer for a part using the padlock icon. When an offer is locked, it will be used to calculate the overall BOM price, regardless of any changes in pricing or availability.
Each row in the pricing table includes an 'exclude' checkbox, allowing you to quickly exclude a part from pricing calculations. This is useful when you want to see the impact of removing a particular component from your BOM.
To view more details about the available offers for a specific part, you can expand the row using the chevron icon on the left side. This will display a list of all the offers for that part, including pricing, quantity breaks, and lead times.
PartsBox automatically selects the best (least expensive) offer for each BOM entry linked to an online identity (Manufacturer Part Number). With typically 20-40 offers available for each part, the selection process is complex, taking into account various factors:
The main BOM pricing table displays only the best offer for each part. PartsBox selects this offer based on the 'Price Discarding Excess' — the price paid assuming any excess inventory purchased will be discarded. This approach ensures the most cost-effective option is chosen, even if the required quantity is below the MOQ or not a multiple of the order multiple.
For example, if 50 parts are needed but the MOQ is 100, PartsBox will consider the price for 100 parts, assuming the excess 50 will be discarded. If this price is still competitive due to price breaks, it may be selected as the best offer. It is paradoxically sometimes less expensive to buy more. Similarly, quantities are rounded up to the nearest order multiple for comparison.
The ranking of offers, and thus the best offer, changes based on the build quantity. This allows the discovery of new, unexpected part sources that become cost-effective at certain quantities.
Expanding each offer reveals additional details:
For meta-parts, BOM substitutes, or part substitutes, offers are gathered for all grouped parts. As these parts are considered interchangeable, the offers are combined and the best one is selected from the entire pool.
In addition to sourcing components from major distributors, it is common to receive custom offers from other suppliers for specific quantities, often with discounted pricing. PartsBox accommodates this by allowing you to enter your own local offers, which are then considered and ranked alongside online offers during the pricing process.
Local offers can be added in two ways:
Like online offers, local offers support multiple price breaks at any quantities, as well as a minimum order quantity (MOQ) and order multiple. These parameters are taken into account by the pricing algorithm when determining the best offers for a given project.
When adding a local offer, you can provide additional information such as:
The expiration date is particularly important, as PartsBox will automatically exclude any offers that have expired from consideration during pricing. An offer will not be considered if it has expired.
PartsBox supports all major currencies for local offers. It converts prices to your preferred display currency using up-to-date exchange rates, while preserving the original prices and currency for reference. This allows you to work with offers from various suppliers around the world without manual currency conversions.
PartsBox simplifies currency handling. Users can select their preferred currency in the settings, and all prices will be displayed in that currency throughout the application. This allows for a consistent and personalized experience when working with pricing information.
The software uses European Central Bank (ECB) exchange rates for accurate currency conversion. These rates are regularly updated. This eliminates the need for manual currency conversions and provides users with up-to-date pricing information.
When entering offers manually, you can choose from any of the supported currencies. PartsBox will handle the currency conversion automatically, displaying the prices in the user's preferred currency. This feature accommodates offers from various suppliers and regions, making it easy to compare and analyze pricing data.
Builds are an essential feature in PartsBox for planning and tracking production. They allow you to check if you have sufficient quantities of parts (including attrition), prepare your build, generate a pick list, and remove the quantities used from your stock.
Builds also provide traceability. Depending on your subscription plan, the build history shows which specific parts were used in each build, with varying levels of detail.
To access past build history, view in-progress multi-stage builds, or start a new build, navigate to the 'Builds' tab within a project.
When starting a new build, the build table displays all project parts along with their required and available quantities. For plans that support part attrition calculations, the necessary quantity includes the attrition overhead, calculated individually for each part based on its attrition settings.
The 'Stock requests' column indicates where parts will be sourced from. For parts stored in multiple locations, parts with lot control, and meta-parts, this column may show multiple sources.
You can set the planned build quantity by entering a number or using the +/- buttons. Adjusting the quantity instantly updates everything. If there is insufficient stock for a component, that row will be highlighted in red with a warning.
PartsBox uses various strategies when assigning parts to BOM entries:
You can also restrict PartsBox to use only a single part source for each BOM entry. Some plans are limited to a single source, and in other plans, it can be useful to ensure full traceability.
The default part source selection strategy determines the initial assignments, but these can be changed in the table. Each row can be expanded to show sources, allowing you to select them individually and reorder them (subject to plan limitations). You can also override the quantity used on a per-entry basis.
Each row includes an 'Exclude?' checkbox. Checking it will exclude the part from the build (essentially a DNP - Do Not Populate). No stock will be removed for excluded parts.
If there is insufficient stock for some BOM entries, PartsBox will display a warning but still allow you to proceed with the build. This can be useful if you have additional stock on hand that hasn't been entered into PartsBox, or if you want to produce partially populated boards. The maximum available quantity will be removed from your stock.
In single-stage builds, pressing the 'Build & remove stock' button (and confirming) will remove stock for all non-excluded parts belonging to the project. The build will then be marked as completed.
For multi-stage builds, check the 'multi-stage build' checkbox. PartsBox will display selection checkboxes next to each part in the build. You can use the individual boxes to select rows, select/deselect all rows, and use the search/filtering interface to mark parts to be built/placed in the current stage. The filtering interface supports tags, so entering '#smd' is a quick way to select all SMD elements, which are often placed first.
Pressing 'Build & remove stock' will process only the selected entries (same as in single-stage builds).
Performing a build stage without selecting any parts can be useful for documenting a processing step in the build history.
An incomplete multi-stage build will appear in the 'In-progress' tab of the Builds interface. Selecting it allows you to build the next stage or finish the build, marking it as complete.
A build can have any number of stages. It can also be marked as finished even if not all parts have been placed. In that case, unused entries will be marked as excluded in the build.
A multi-stage build is represented by the same ID Anything™ code throughout all stages, allowing ID Anything™ labels to be attached even to incomplete devices for quick identification and access to build information.
When managing production, it is important to maintain a record of build history. This record typically includes information such as the number of units built for a project or BOM, the date and time of the build, and any relevant comments. While this level of detail is sufficient for simple production runs, more complex builds often require additional data to be tracked.
In real-world scenarios, each build has its own unique configuration. This configuration includes supplementary information, including:
PartsBox stores all of this information as part of the build history, allowing you to easily review and verify how a particular build was configured at any point in the future.
To access the build configuration history, navigate to the 'Builds' tab within the Projects section of PartsBox. Here, you will find a list of all builds. You can choose to view the complete list or filter it to display only completed builds or multi-stage builds that are currently in progress.
Each build is assigned a unique ID Anything™ code, which can be printed on a label and affixed to the physical devices produced during that build. This code provides quick and convenient access to the build information, ensuring that you can retrieve the relevant details whenever needed, even long after the build has been completed.
Sub-assembly parts in PartsBox represent the stock resulting from building projects. When a project is built, the stock of the corresponding sub-assembly part is incremented by the build quantity. This allows complex products consisting of multiple sub-assemblies and parts to be managed effectively, with each sub-assembly produced or sourced separately.
To create a sub-assembly part for a project:
After creation, the sub-assembly part will appear in the parts list and can be managed like any other part, with one exception: the name of a sub-assembly part is always the same as the corresponding project and cannot be changed.
When building a project, the build confirmation screen includes an option to add stock to the associated sub-assembly part. If enabled, you can:
Upon confirmation, the stock of the sub-assembly part will be incremented by the build quantity. As sub-assembly parts behave like regular parts, they can be used in other projects and builds, and features such as low-stock warnings and attrition parameters can be configured.
When lot control is enabled, each build of a project results in a distinct lot of the corresponding sub-assembly part, identified by a unique ID Anything™ code. By attaching ID Anything™ labels to manufactured devices, you can quickly scan the code using a mobile device to access the associated build information.
PartsBox offers a powerful feature for tracking individual devices built from projects/BOMs. When starting a build, you can enable the option "Track each resulting sub-assembly separately". This changes the build process to generate individual lots for each sub-assembly built, effectively assigning a unique serial number to every device.
Enabling this option unlocks a wealth of possibilities for tracking the lifecycle of individual devices. Lots in PartsBox already carry a significant amount of data and have unique ID Anything™ codes assigned to them. You can attach additional data to these lots in the form of files, such as test results, repair protocols, regulatory filings, service history, or any other relevant information.
Each lot is assigned a unique ID Anything™ code, which can be printed as a QR code and physically attached to the corresponding device. This allows for easy identification and tracking of individual devices. Alternatively, devices can be identified by a combination of the build ID Anything™ code (pointing to the specific build) and an integer serial number automatically assigned within that build.
When the option to add sub-assembly part stock is enabled for a multi-stage build, PartsBox keeps track of the stock that is currently in production. This allows you to attach information about potential abnormalities in production or individual test results to each device lot as the devices are being built. Upon completing the build, the stock status changes from "In Production" to "Available".
PartsBox supports three types of orders, each representing a different stage in the purchasing process:
To create an order or add items to an existing open order, you can start by reviewing the pricing and offers for a single part or by working with a Purchase List. PartsBox allows you to add individual offers or a group of offers to an order, associating them with the corresponding vendor who provided the pricing.
When modifying quantities in an open order, PartsBox automatically retrieves the current pricing information and adjusts the total price based on the quantity and any applicable price breaks. This ensures that you always have up-to-date and accurate pricing for your orders.
Open orders can be transferred to a distributor's website through copy and paste, or they can be exported in a suitable format if a more formal printed purchase order is required.
The most efficient way to place an order with a vendor is by utilizing the 'Upload cart' feature. This allows you to copy and paste or upload a CSV file containing the order details.
When you mark an open order as 'Ordered', PartsBox prompts you to provide an expected delivery date. This information helps you keep track of when your parts are anticipated to arrive and enables the system to display the ordered stock in various relevant sections of the application.
If needed, you can cancel an order, which reverts its status back to 'Open' and removes the expected stock from being displayed.
PartsBox offers several convenient methods for receiving parts from an order:
When planning for the production of multiple electronic devices, it is often necessary to purchase components in bulk. However, determining the exact quantities needed can be challenging, especially when considering existing local stock and shared parts across different BOMs (Bills of Materials).
The presence of meta-parts (part substitutes), part alternates, and BOM substitutes adds another layer of complexity to the purchasing process. Until the moment of ordering, it is beneficial to maintain flexibility in choosing specific MPNs (Manufacturer Part Numbers).
To initiate the purchasing process, navigate to the 'Projects' section and begin adding projects/BOMs to your project shopping cart using the 'Add to Cart' buttons located at the bottom of each project card. When adding a project, you will have the opportunity to specify the quantities you intend to build.
Once you have added the desired projects to the cart, assign a descriptive name to your list and click 'Create Purchase List'. This action will redirect you to the 'Purchasing' section, where you can view all your purchase lists.
Clicking on a specific purchase list will open the familiar pricing interface, similar to the one used for Project/BOM pricing. This interface allows you to select offers, add your own offers, choose specific part alternates (for meta-parts), and limit your selection to preferred distributors.
After finalizing your purchase list, switch to the 'Group by Distributor/Vendor' view to see your parts organized into separate orders for each vendor. This view provides the same functionality as the 'All Parts' view, enabling you to modify offer choices if needed. Additionally, you can quickly add all parts to a new or existing order with a specific vendor and proceed to place the order directly with them.
While automatic ordering support has always been part of the long-term plan, its implementation remains challenging due to the complexities involved in integrating with various distributors' systems.
PartsBox allows you to make your parts database public, sharing some or all of your parts with others. This feature is useful for hobbyists who want to share their parts inventory, as well as for makerspaces that want to showcase available components.
To publish your parts, navigate to the Settings | Publishing section. Here, you can enter information about yourself or your organization, such as a brief description, a URL, and a longer description. This information will be displayed on your public page.
Note that your public page will only exist if you have selected parts for publishing. Updates to the public page are not instant and may take anywhere from several minutes to an hour.
PartsBox offers three options for selecting parts to be made publicly visible:
By carefully selecting which parts to publish, you can control the information that is shared with others while keeping your other data private.
PartsBox supports barcode scanners that generate keystrokes, which includes most USB scanners. The Zebra LS2208 is a reliable and affordable 1D scanner that works well with PartsBox. However, as component distributors are increasingly adopting 2D barcodes for their superior data storage capacity, a 2D scanner is recommended for future-proofing your setup.
To use a 2D scanner with PartsBox, you must configure it to replace special non-printable characters (ASCII codes RS, GS, and EOT) with the strings '{RS}', '{GS}', and '{EOT}', respectively. This is necessary for the scanner to work correctly with web-based applications. If you have a Zebra DS2208 scanner, simply scan the provided barcode to automatically configure it for use with PartsBox. The configuration barcode is available in small PNG, large PNG, and PDF formats.
Any 1D scanner that supports the USB HID interface (i.e., acts as a keyboard) should work with PartsBox. If the scanner's output is visible in a text editor, it is compatible with PartsBox.
2D scanners known to work well with PartsBox include:
The Zebra DS6608 (discontinued in 2007) is known not to work with PartsBox.
To use a 2D scanner with PartsBox, the scanner must support string replacements in scanned codes (known as 'Advanced Data Formatting' or 'ADF' in Zebra scanners). This is a limitation of web browsers, not PartsBox.
For the best barcode scanning experience, PartsBox recommends using a dedicated 2D scanner, specifically the Zebra DS2208. A 2D scanner can decode both 1D and 2D barcodes, ensuring compatibility with the growing trend of 2D barcodes used by distributors.
A more affordable alternative is the Barcode to PC app, which consists of software installed on your PC and a mobile app for scanning. While this solution does not currently work reliably with DataMatrix codes, improvements are expected in the future.
Due to factors beyond PartsBox's control, 100% reliability cannot be guaranteed when using a USB scanner for barcode scanning.
If a 2D scanner is not working with PartsBox, first check its output in a text editor like Notepad. Scan a 2D barcode and verify that the result contains the '{RS}', '{GS}', and '{EOT}' sequences. If these sequences are missing, ensure that the scanner is configured for the special code replacements and, if using a non-US keyboard layout, scan the appropriate regional setup code from your scanner's manual.
Please refer to the 'Known Issues and Limitations' section above to see if your problem is listed. If the scanner's output in Notepad appears correct, but PartsBox still cannot recognize the barcode, please use the feedback form to report the issue.