PartsBox User's Guide


What is PartsBox?

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.

Inventory Management

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.

BOM Pricing

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.

Production Management

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.

Lot Control

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.

Design Philosophy

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:

  • Linked Parts are for components with manufacturer part numbers (MPNs). If a part has an MPN and you can find it online, choose this option. You will instantly get a description, a datasheet link, a link to the manufacturer's site, part specifications, a thumbnail image, and PartsBox will be able to get pricing and availability information about this part from distributors.
  • Local Parts are for everything else: generic and no-name components, PCBs, custom parts, mechanical parts, and anything that does not have an exact part number.
  • Meta-parts group parts that are interchangeable (exact substitutes for one another).
  • Sub-assembly parts are the result of building a project and correspond 1:1 to projects.

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:

  • They indicate what needs to be ordered.
  • They allow you to track pending orders.
  • Your projects (BOMs) may use parts that you don't physically have in stock, but your manufacturer will.
  • They allow you to import BOMs from CAD tools in the future, automatically matching BOM entries to parts.

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:

  • Name: A unique identifier for the lot, typically related to the source or date of acquisition.
  • Description: Additional details about the lot, such as supplier information or specific characteristics.
  • Attachments: Relevant documents, such as datasheets, certificates of conformity, or invoices.
  • Tags: A lot can be tagged, so that lots can later be filtered for display or when selecting part sources for builds.

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.

Storage Locations

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:

  • Datasheets for electronic components
  • 3D CAD models of mechanical parts
  • Invoices and packing slips for orders
  • Quality control documents and test reports
  • Product photos and images
  • Application notes and reference designs
  • Certificates of conformance (CoC) and material safety data sheets (MSDS)

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:

  1. Open: When an order is first created, it starts in the "Open" state. In this state, you can freely modify the order, adding or removing line items as needed. This allows you to gradually build up your order before submitting it to the vendor.
  2. Ordered: Once you have finalized your order and placed it with the vendor, the order transitions to the "Ordered" state. This indicates that the order has been submitted and you are now waiting for the vendor to process and ship your parts. In this state, the order can no longer be modified.
  3. Received: After the vendor has shipped your order and you have received all the parts, the order automatically switches to the "Received" state. This transition happens when you mark all line items on the order as received in PartsBox. The "Received" state signifies that the order is complete and all parts have been added to your inventory.


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:

  1. Building devices: When you are ready to manufacture a device, you can create a build from the project. This allows you to track the production process, manage stock levels, and ensure that you have all the necessary components on hand.
  2. Cost estimation: PartsBox allows you to price the BOM associated with a project, giving you an estimate of the total cost of the components needed to build the device. This is useful for making informed decisions about product pricing and managing production costs.
  3. Sub-assemblies: A project can also correspond to a sub-assembly, which is a part of a larger device or system. When you build a project, the resulting stock is added to the corresponding sub-assembly part, which can then be used in other projects as a component.


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.

Purchase Lists

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.

Organizations (Companies)

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.

Access Rights

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:

  • Admin: Users with admin access have full control over the system. They can read and write database data, manage user access, modify billing information, delete all data, and cancel the subscription. Admins have the highest level of responsibility and should be carefully assigned.
  • Read/Write: Users with read/write access can view and modify database data, such as creating and updating parts, storage locations, projects, and builds. However, they cannot manage user accounts, billing information, or the subscription. This level is suitable for users who actively work with the inventory and need to make changes.
  • Read Only: Users with read-only access can view the database data but cannot make any modifications. This level is appropriate for users who need to access information for reference purposes but do not require the ability to make changes.

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.

Audit Trail

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:

  • A precise timestamp of when the modification occurred
  • The user account responsible for the change
  • Detailed data describing the specific nature of the modification

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.

Part Attrition

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

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.

BOM Substitutes

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.

Combining Substitutes

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.

Using PartsBox

Adding Storage Locations

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:

  1. Single Location: This method is used to create a single storage location with a specific name. It is suitable when you need to add just one location, such as a single box or a shelf. Enter the desired name for the location and click 'Create'. You can also mark the location as being for a single part only.
  2. Row: The Row method is used to create a linear array of storage locations, labeled with numbers or letters. This is useful when you have a series of boxes or compartments arranged in a row. Specify the prefix for the location names, the starting and ending numbers or letters, and click 'Create'. For example, entering a prefix of "box", starting number of 1, and ending number of 5 will create locations named "box1", "box2", "box3", "box4", and "box5".
  3. Grid: The Grid method allows you to create a two-dimensional array of storage locations, using letters or numbers for rows and columns. This is handy for organizing storage in a grid-like structure, such as a shelf with multiple rows and columns. Enter the prefix, the row and column labels, and click 'Create'. For instance, with a prefix of "shelf", row labels of "A,B" and column labels of "1,2", the following locations will be created: "shelf-A1", "shelf-A2", "shelf-B1", "shelf-B2".
  4. 3D Grid: The 3D Grid method extends the Grid concept to create a three-dimensional array of storage locations. This is suitable for complex storage setups, like multi-level racks with rows and columns. Specify the prefix, the level, row, and column labels, and click 'Create'. As an example, a prefix of "rack", level labels of "1,2", row labels of "A,B", and column labels of "1,2" will generate storage locations such as "rack-1-A1", "rack-1-A2", "rack-1-B1", "rack-1-B2", "rack-2-A1", and so on.

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.

Adding Parts

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.

Creating Parts

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:

  • 'Linked part': Use for components with a unique manufacturer part number (MPN).
  • 'Local part': Use for generic components and anything else that needs to be tracked.
  • 'Meta part': Use when you need to create a virtual part that represents several equivalent part options (substitutes).

Creating Linked Parts

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:

  1. Match exact component name (MPN): The beginning of the part name must match (prefix search). For example, 'TPS40210' will match 'TPS40210DGQ'. This is the preferred method for matching components.
  2. Search: This is a fuzzy search, useful for queries like 'adafruit 1063'.

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.

Creating Local Parts

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.

Creating Meta Parts

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:

  • Name
  • MPN (Manufacturer Part Number, if different from the name)
  • Manufacturer
  • Description
  • Footprint
  • Part notes
  • All custom fields

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.

Applying Filters to Tables

To filter the data in a table, follow these steps:

  1. Locate the filter icon in the top right corner of the table you wish to filter.
  2. Click on the filter icon to open the filter configuration screen for that table.
  3. Add filter conditions using the "Add Condition" or "Add multiple conditions" buttons. You can combine multiple conditions using logical AND/OR operators.
  4. For each filter condition, select a field, choose a condition, and enter a value.
  5. Once you have defined your filter conditions, click the "Apply filters" button at the bottom of the screen to apply the filters to the table.

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.

Defining Filter Conditions

Filter conditions are the building blocks of your filters. Each condition consists of a field, a condition, and a value:

  • Field: Select the field you want to use for filtering from the list. The available fields will vary depending on the table and the data it displays. For example, "[Storage] Tags" represents tags assigned to a storage location.
  • Condition: Choose a condition that matches your filtering requirements. The list of available conditions depends on the selected field type. For instance, if you select "[Storage] Tags", you'll see conditions like "contains all of these tags", "contains any of these tags", and "does not contain any of these tags".
  • Value: Enter the value that the condition should match. This could be a list of tags for a tag field, a text string, a number, or a number range (interval).

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.

Entering Numerical Values

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:

  • T: tera (1012)
  • G: giga (109)
  • M: mega (106)
  • k: kilo (103)
  • d: deci (10-1)
  • c: centi (10-2)
  • m: milli (10-3)
  • u or μ: micro: (10-6)
  • n: nano (10-9)
  • p: pico (10-12)
  • f: femto (10-15)

Managing Filter Presets

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:

  1. Use the "Load Preset" button to apply a previously saved filter preset to the current table.
  2. Click "Save Preset" to save the current filter configuration as a new preset. Choose whether to save it as a personal preset or a company-wide preset.
  3. Click "Manage Presets" to access additional preset management options:
    • Delete unwanted presets
    • Duplicate existing presets
    • Copy or move presets between your personal presets and company presets

Selecting and Deselecting Parts

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:

  • Add/remove tags: This option allows you to edit tags for the selected parts. You can add new tags or remove existing ones in bulk, making it easier to categorize and organize your parts.
  • Add to project: If you want to add the selected parts to a specific Project/BOM, use this option. It will prompt you to choose the target project and add the parts to it.
  • Add to meta-part: Meta-parts are used to group interchangeable parts (substitutes). By selecting this option, you can add the selected parts to an existing meta-part or create a new one.
  • Add to purchase list: When you need to purchase the selected parts, use this option to add them to a purchase list.
  • Set low-stock levels: Low-stock levels help you maintain an adequate inventory of parts. This option allows you to set the low-stock threshold for all selected parts at once.
  • Set part attrition: Part attrition refers to the expected loss or wastage of parts during the manufacturing process. Use this option to set the attrition parameters for the selected parts.
  • Download as CSV: If you need to export the list of selected parts for use in a spreadsheet or other external tool, choose this option. It will download the part data in CSV (Comma-Separated Values) format.
  • Delete: Exercise caution when using this option, as it will permanently delete the selected parts from your PartsBox database. A confirmation prompt will appear to prevent accidental deletions.
  • Deselect all: If you want to clear the current selection without performing any operations on the selected parts, use this option. It will deselect all parts, allowing you to start a new selection.

By using the selection checkboxes and the 'Selection' menu, you can efficiently perform bulk operations on multiple parts in PartsBox.

Scanning Barcodes

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.

Barcode Scanning Methods

PartsBox supports two methods for scanning barcodes:

  1. External Barcode Scanner: Using a dedicated barcode scanner is the recommended approach for regular, high-volume operations. External scanners offer faster and more reliable scanning performance. Refer to the 'Barcode Scanners' section in this manual for details on supported scanners and setup instructions.
  2. Built-in Camera: If you don't have an external scanner, you can use your computer's built-in camera to scan barcodes. While not as fast as an external scanner, this method is convenient for occasional scanning needs.

Scanning Process

To start scanning barcodes, click on the 'Scan' menu button in PartsBox. Depending on your scanning method:

  • If using an external scanner, PartsBox will wait for input from the scanner.
  • If using the built-in camera, PartsBox will display a live camera feed for you to position the barcode in front of the camera.

After a barcode is successfully decoded, PartsBox analyzes the data and takes one of the following actions:

  1. Existing Part: If the scanned part already exists in your PartsBox database, you will be presented with options to add stock, remove stock, or move stock for that part.
  2. New Part: If the scanned part doesn't exist in your database, PartsBox will prompt you to create a new linked part. It will provide a list of matching online parts to choose from. Once you select a match and create the part, the 'Add Stock' dialog will appear, allowing you to add the newly received stock for the newly created part.

Supported Barcodes

PartsBox supports a wide range of barcode formats commonly used by electronic component distributors:

  • 2D Barcodes:
    • DataMatrix and PDF417 barcodes containing ANSI MH10.8.2 data encoded using ISO/IEC 15434:2006 (used by DigiKey, Würth, and others distributors moving to 2D barcodes).
    • QR codes from some distributors (LCSC and TME).
  • 1D Barcodes:
    • Barcodes from DigiKey, Mouser, Farnell, RS Components, and most others that encode the Manufacturer Part Number (MPN) in the barcode.

If the scanned barcode includes quantity information, it will be automatically prefilled in the 'Add Stock' dialog.

DigiKey Orders

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.

Adding Parts to a Project

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:

  1. Adding Multiple Parts from the Parts Table
    • Navigate to the parts table, which displays a list of all parts in your inventory.
    • Select the desired parts you wish to add to your project by clicking on the checkboxes next to each part.
    • Once you have selected all the necessary parts, click on the 'Selection' menu located above the parts table.
    • From the dropdown menu, choose the 'Add to project…' option.
    • A dialog box will appear, prompting you to select the target project from a list of existing projects and allowing you to adjust the quantity for each part.
    • Choose the appropriate project and click 'Add' to include the selected parts in the project's BOM.
  2. Adding a Single Part from the Part Info Screen
    • Locate the specific part you want to add to your project using the search or filtering options in the parts table.
    • Click on the part to open the detailed 'Part Info' screen.
    • On the 'Part Info' screen, you will find an 'Add to project' button.
    • Clicking this button will present a dialog box where you can select the target project from a list of existing projects and set the quantity.
    • Choose the desired project and click 'Add' to include the part in the project's BOM.
  3. Adding a Part from the Project BOM Section
    • Open the project to which you want to add parts.
    • Navigate to the BOM section of the project.
    • Click on the 'Add part' button located within the BOM section.
    • A dialog box will appear, allowing you to search for and select the part you wish to add.
    • Use the search and filtering options to find the desired part.
    • Once you have found the part, click on it to select it and then click 'Add' to include it in the project's BOM.

Using Tags in PartsBox

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.

Applying Tags

Tags can be added to objects in different ways, depending on the object type:

  • For storage locations, projects, orders, lots, and builds, tags are added and managed through their respective editing screens.
  • For parts, tags can be assigned either from the part info screen or by selecting multiple parts and using the 'Add/Remove Tags…' option from the 'Selection' menu.

When adding tags, simply enter the tag name without the leading # character. An object can have any number of tags attached to it.

Searching with Tags

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.

Auto-Tags for Parts

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.

Setting Part Attrition Parameters

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:

  1. Percentage-based attrition: This parameter represents the percentage of components that are expected to be lost or wasted during the manufacturing process. Typical attrition rates range from 0.1% to 3%, depending on the component type and the specifics of your production process. For example, if you set the attrition percentage to 1% for a part, and your project requires 1000 units of that part, PartsBox will calculate an additional 10 units to account for the expected loss.
  2. Quantity-based attrition: This parameter allows you to specify a minimum number of extra components that should always be reserved, regardless of the percentage-based calculation. This is particularly useful for components that are supplied on reels or tapes, where a certain length of leader material is required to feed the component into the placement machine. By setting a quantity-based attrition, you ensure that you always have enough components to cover this minimum requirement.

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:

  1. In the parts table, select the checkboxes next to the parts you want to modify. You can also use the selection checkbox in the table header to select all parts currently displayed in the table.
  2. Once you have selected the desired parts, open the 'Selection' menu and choose 'Set part attrition…'.
  3. In the attrition settings dialog, enter the percentage and/or quantity values that you want to apply to the selected parts.
  4. Click 'Apply' to update the attrition parameters for all selected parts.

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.

Importing a BOM

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.

Handling Altium Designer CSV Export Issues

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:

  1. Remove Double Quotes: One approach is to open the generated CSV file in a text editor and manually delete the double quotes from within the fields.
  2. Double Up Double Quotes: Another method is to prefix each double quote within a field with another double quote. According to the CSV standard, this signifies that the double quote is part of the field value and not a delimiter. This method preserves the original data while making the CSV file compliant with expected formatting standards.

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.

BOM Substitutes

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.

Pricing Projects

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.

Pricing Options

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:

  • 'Preferred distributors only' checkbox will exclude offers from distributors that are not on your preferred list (one rarely buys from distributors on the other side of the globe). You can modify the list of preferred distributors in Settings.
  • 'Authorized distributors only' will only consider offers from distributors who are authorized by the manufacturer to resell a part.
  • 'In-stock only' will only consider offers where the distributor said the part is in stock.
  • 'Check stock levels' goes a level deeper, and actually checks the number of parts that the distributor has in stock. Some distributors do not provide exact in-stock information, so checking this will exclude their offers.

Pricing Table

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:

  • Batch Qty: This column shows the number of parts required to build a specific quantity of a project or BOM. It takes into account the attrition parameters set for each part. If attrition is configured, the Batch Qty may be higher than the number of units you are building, to account for expected losses during production.
  • Qty Bought: This column indicates the actual quantity that needs to be purchased, based on the sourcing options selected. For example, if 100 parts are needed for a build, but you have 25 available in local stock and have chosen the 'Use local stock, then buy if needed' option, the Qty Bought will be 75.
  • Best Offer: PartsBox automatically selects the best offer for each part based on your preferences and vendor rules. This column displays the currently selected best offer.

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.

Offer Selection

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:

  • Price breaks, which vary for each offer
  • Availability and stock information
  • Minimum Order Quantities (MOQs)
  • Order multiples
  • Multiple currencies

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:

  • Packaging
  • Quantity on order
  • Estimated time of arrival (ETA) for orders
  • Factory lead time
  • Factory order multiple

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.

Adding Local Offers for Custom Pricing and Discounts

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:

  1. Directly from within the project pricing table
  2. From the part info screen for a specific part

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:

  • Order reference or number
  • Offer date
  • Comments
  • Expiration date

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.

Currency Handling

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.

Building Projects

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:

  • FIFO (First-In First-Out): uses the oldest lots (sorted by acquisition date) first
  • LIFO (Last-In First-Out): uses the most recent lots (sorted by acquisition date) first
  • Last accessed: uses the most recently accessed lots first
  • Largest lot first: uses lots with the most components first
  • Smallest lot first: uses the smallest lots first

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.

Single-stage Builds

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.

Multi-stage Builds

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.

Build Configuration History

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:

  • Components that were excluded or marked as 'do not populate' for the specific build
  • Stock requests generated from the build, detailing which parts were used from specific locations, or in the case of lot tracking, the exact lot (identified by serial number) used for the production run

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.

Using Sub-assembly Parts

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:

  1. Navigate to the project's info screen.
  2. Click the 'Create Sub-assembly Part' button. This action only needs to be performed once per 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:

  • Select the storage location where the build will be stored.
  • Enter pricing for the produced sub-assembly (automated pricing will be implemented in a future release).
  • Add comments related to the build.

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.

Tracking Individual Devices with Serial Numbers

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:

  1. Open Orders: These orders are in the initial stage and can be freely modified. You can add or remove parts, adjust quantities, and make any necessary changes before finalizing the order. Open orders provide flexibility during the planning and budgeting phase.
  2. Ordered: Once an open order is placed with a distributor, it transitions to the "Ordered" state. This indicates that the order has been submitted and is awaiting fulfillment. An expected delivery date is associated with ordered items, allowing you to track when the parts are scheduled to arrive.
  3. Received: When all the items from an order have been successfully delivered and processed, the order is marked as "Received". This signifies that the purchasing process for that specific order is complete, and the received parts are now available in your inventory.

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:

  1. Order Receiving Interface: This interface allows you to efficiently receive all or a portion of the parts from an order into a single storage location with just a few clicks.
  2. Add Stock Dialog: When viewing a single part, you can use the Add Stock dialog to receive items against a specific order. The dialog pre-fills the quantity and price based on the order details.
  3. Barcode Scanning: Depending on the capabilities of the distributor, scanning a barcode can either display the Add Stock dialog with pre-filled quantity, or in the case of barcodes that incorporate the PartsBox code, directly receive the part against a specific order, automatically populating the quantity, pricing, and order information.

Purchase Lists

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.

Publishing Your Parts Database

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.

Setting Up Your Public Page

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.

Selecting Parts for Publishing

PartsBox offers three options for selecting parts to be made publicly visible:

  1. Nothing: Choose this option if you do not want to publish any parts. Your public web page will not exist.
  2. Parts that match filter conditions: Use the "Edit filters" button to create filters based on part data. Only the parts that pass the filtering criteria will be published. A common approach is to use tag-based filtering. For example, you can set up a filter to publish only parts that have the tag "public".
  3. All your parts: Select this option to make your entire parts database available publicly.

By carefully selecting which parts to publish, you can control the information that is shared with others while keeping your other data private.

Other Equipment and Software

Barcode Scanners

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.

Supported Scanners

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.

Known Issues and Limitations

  • If you use a non-US keyboard layout, additional scanner setup is required. After scanning the PartsBox setup barcode, scan the regional code for your keyboard layout from the manual provided with your scanner.
  • Scanning may not work reliably in Firefox on Windows. Using an alternative browser, such as Chrome or Edge, is highly recommended.


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.

Control your inventory, ordering and production

Try the demo

Plans & pricing