Parts: how a product is calculated
How parts work in Allmoxy: part attributes and formulas, supplies on parts, output pages, part summations, text output, the weight formula, and fixing a part on one order.
A part is one piece of a product: a stile, a rail, a panel, a pair of hinges. Each part carries formulas that work out its sizes and quantity from the customer's answers, the supplies it uses, and the output pages it prints on. Parts are what cut lists, labels and exports are built from, and pricing can use their numbers too. You build them on the product's Parts tab.
Applies to: every shop with its own catalog. You need the Manage Catalog permission.
In this article
- What a part is made of
- Part attributes: the formulas
- Output text from a part
- Supplies on a part
- Part summations: totals across a group
- The weight formula
- Fix a part on one order
- Things to know
What a part is made of
Open a product and click the Parts tab. Each part is a collapsed card; click the arrow to open it.
- Part Display Name: what the part is called on output pages. Allmoxy makes a Part Formula Name from it (lower case, underscores), which is how formulas refer to the part, for example
panel.Width. - Part Export Formula and Choose Exporter: how this part's data is written into an export file, such as a cabinet software order. See the exporters articles.
- Precision: how the part's numbers are rounded, from whole numbers down to 1/10000. If you leave it, the attribute's precision or the shop default applies.
- Output Pages: tick each output page this part should print on (Show on Invoice, Show on Packing Slip, Show on Fronts List, and so on). The page has to be a parts-list type, or have parts turned on in its settings.
- Allow customer to see this part: shows the part's values to the customer on their documents.
- Part Attribute rows: the numbers this part works out. See the next section.
- Part Supply rows: the inventory this part consumes. See below.
Add Part adds another part. Parts you remove from the form are deleted when you save, so discontinue a product rather than deleting parts you might need again.
Part attributes: the formulas

A part attribute is one value the part works out, such as its width, length or quantity. Each has:
- Attribute name: shown on output pages.
- Output Page Width: how much room it takes on the page.
- Attribute Formula: the calculation, written with the variables in the sidebar: Order Variables, Group/Item Variables (the customer's answers), Attribute/Part Variables (other parts' values), Proxy Variables and Functions. Click a variable to insert it.
- This attribute measures the quantity of part needed: tick it on the one attribute that counts how many of the part there are. Allmoxy then multiplies it by the item quantity. Don't also put the
quantityvariable in that formula, or it's multiplied twice. - Hide attribute on the output page: keeps the value for formulas and exports but off the printed page.
Formulas can refer to another part's values as part_name.Attribute_name, which is how a panel's size can follow the stile and rail widths.
Part formulas save first and are checked afterwards, so a broken formula is kept and the error shows when you reopen the tab. Fix it before the product goes on sale.
Output text from a part
A part attribute can output words instead of a number, for a note on a cut list or an export. Put the text in text(...) with no space before the bracket:
text(these are my words)
Combine it with a condition to choose the words:
(width < 10 ? text(slim) : text(wide))
A formula can output text or a number, not both. A real example that prints "none" when a door is too narrow for an inside profile:
(width < door_style.min_width ? text(none) : door_style.inside_profile)
Comments work in part formulas too: wrap your note in /* */.
Supplies on a part
Supplies tell Allmoxy what inventory a part uses, which feeds purchasing and inventory. Click Add Supply on the part. Each supply row is either:
- linked to a dropdown attribute (Supply Link), so the supply comes from whichever option the customer picked, using the supply association set on that option; or
- a fixed supply item.
Each row has a Supply Formula for the quantity used. If you rename a supply association on the attribute, every part using it updates.
Part summations: totals across a group
A part summation adds up a part value across all the items in a product group, such as total lineal feet of stiles and rails for a job. Build them on the Part Summations tab:
- Give it a Sum Name and choose the Sort Order (Ascending or Descending).
- Add Part for each part value to include.
- Add Group to total by a dimension, such as width, so you get one line per width.
- Tick the Output Pages it should show on.
- Use the modification formula to adjust the result, for example divide by 12 to turn inches into feet.
Summations total within each product group, not across the whole order. They print under the item totals on the output page.
The weight formula
The Weight tab works like pricing: named formula sections, added together, using the same variables and part values. Allmoxy uses the result wherever it needs a product's weight, such as shipping. A weight formula that fails its check won't save, and the error shows on the tab.
Fix a part on one order
When a single order needs a part cut differently without changing the product, open the order, click the Order Override tab, expand Parts, find the part and click the plus icon to add a replacement with the right dimensions. The product itself is untouched.
Things to know
- Each tab saves separately. Save the Parts tab before you move to Part Summations or Weight.
- Precision stacks. A part's own Precision wins; otherwise the attribute's precision, then the shop's default from Order Level Settings.
- Opening the Parts tab can tidy old supply rows. Supply links from older setups get their association name filled in and saved when the tab loads. That's expected.
- Big products take a moment to open. Each formula editor loads as it scrolls into view. Editors grow to 30 lines, then scroll; Expand editor opens one fully.