Pricing Structure – From A – Z

Pricing in PIRO Fusion — Summary

Pricing in PIRO Fusion is designed to be flexible, modular, and fully adaptable to the jewelry industry’s complex needs. It supports a wide range of pricing mechanisms across item types, subitems, services, and job workflows — with layers of customization for customer-specific markups, tax handling, and metal-specific rules.

This documentation explains how and where prices are defined, calculated, and adjusted across the system. You’ll learn:

  • How item type pricing works — including fixed, component-based, cost-based, and attribute-based price types.

  • How subitem pricing interacts with the parent item’s pricing — and when it can be overridden or excluded.

  • Where customer-level discounts and markups come into play, and how they’re configured by customer or category.

  • How services are priced and included in workflows and job orders.

  • How invoice pricing is calculated, including inline markup/discounts, tax integration, and shipping charges.

  • How metals are handled differently — with price feeds, compositions, and global markups/bank charges.

  • Which admin and group-level settings affect pricing behavior, including rounding rules, minimum/maximum price enforcement, and tax overrides.

Whether you’re troubleshooting a pricing issue or configuring new rules, this guide will help you understand how PIRO Fusion assembles and applies prices — step-by-step.



📦 1. Item Type Pricing

Item types are the foundational level where pricing begins in PIRO Fusion. Each item type must have a pricing strategy assigned, and this strategy determines how the item’s price is calculated when used across the system — whether it’s added to inventory, a sales order, job, quote, or invoice.

🧩 1.1. Sales (Wholesale) Price Configuration

This section controls how an item type’s Sales Price (also called Wholesale Price) is calculated. These prices apply by default across all documents unless overridden by customer-specific settings (e.g. retail price usage).

If your business supports both retail and wholesale customers, this is the area where wholesale logic lives.


🛠️ 1.1.1. Pricing Types

The pricing logic starts with selecting a Pricing Type, which determines how the Base Price is calculated. The following types are available:

  • Fixed:
    You manually enter the base price. The field is directly editable.

  • Component-based:
    The price is automatically calculated based on the prices of all subitems (components) added to the item type. The “Base price” field becomes read-only.

  • Attribute-based:
    Price depends on one or more selected attributes (e.g., stone size, material). Attribute values or combinations are mapped to specific price adjustments.

  • Cost-based:
    Price is derived from the Total Cost of the item, including base costs and any configured markups (if defined). Useful when working with dynamic cost inputs.

  • Market-based (for Metals or Diamonds only):
    Price is pulled directly from a connected market feed (e.g., Kitco, Apmex, Rapnet). Only available for items configured with metal or diamond data.


➕ 1.1.2. Markup

Once the base price is determined (based on the selected pricing type), you can apply a Markup:

  • Defined as either:

    • A Percentage (e.g. +25% markup)

    • A Flat fee (e.g. +$15)

  • Negative values (-) are treated as DISCOUNTS (e.g., -10%).


🧮 1.1.3. Sales Price Calculation

Sales Price = Base Price + Markup

  • If a Fixed pricing type is used, the Base Price is editable, and markup is optional.

  • If a Calculated type (Component, Attribute, Cost, Market) is used, the Base Price is calculated and cannot be manually edited.


🛠️ 1.1.4. Labor Charges

You can add labor to an item type if it involves work (e.g., setting stones, polishing). To enable labor:

  1. Check the “Includes labor charge” checkbox.

  2. Assign one or more labor types.

  3. Use the “Manage labor(s)” button to override pricing for individual labor types, if needed.

⚙️ Labor prices are pulled from the labor’s item tpye unless overridden.


🧾 1.1.5. Final Price Calculation

The Final Item Type Price is calculated as:

Total Price = Sales Price + Total Labor Charge

This is the price that appears by default on Sales Orders, Job Orders, and other documents — unless overridden by retail logic.


🛍️ 1.2. Retail Price Configuration

Retail pricing is a separate pricing structure intended for customer categories that require it. If a customer belongs to a category with “Use retail prices” enabled, this retail logic will override the sales price on documents.

Available retail pricing types:

  • Fixed: Manually entered price.

  • Wholesale + Markup:

    Retail Price = Total Price × (1 + Retail Markup %)

  • Component-based: The price is automatically calculated based on the retail prices of all subitems (components) added to the item type.

  • Attribute-based: Retail price varies by selected attributes.

⚠️ You can define both Sales and Retail pricing types independently for the same item type.

💡 Each item type can only have one pricing type selected at a time. The behavior of this pricing type cascades to how the item behaves on documents.


⚙️ 1.3. Additional Price-Related Tabs & Settings

PIRO Fusion’s flexibility includes conditional tabs and settings on the item type form:

🔐 Price Adjustment Tab

This tab appears only if the following admin setting is enabled:
Admin ➝ General settings ➝ Use Min/Max price adjustment on item types

  • Min price: The lowest possible price the item can ever have (regardless of calculated result or user edits).

  • Max price: The maximum limit the price can reach.

These limits apply across the system — including orders, job quotes, and invoices — and enforce a pricing boundary.


🔁 1.4. Group-Level Price Rounding (Item Group Settings)

Each item type belongs to an item group. From the item group detail page, two rounding settings may affect the price display and final calculation:

  • Round item type sales price to the closest [X]

  • Round item type retail price to the closest [X]

These settings define rounding logic (e.g. nearest 5, 10, 100) and apply to all item types under that group. Rounding occurs after the base or calculated price is determined.


🧾 1.5. Tax Inclusion Settings

At the item type level, the following setting determines whether the item is subject to sales tax:

  • Ignore item in sales tax calculation
    If enabled, this item will be excluded from the tax base, even if taxes are otherwise applied on the invoice or order.



🧩 2. Subitem Pricing

When an item type uses component-based pricing, its final price can include the prices of its subitems. Each subitem can follow its own pricing logic, which can either inherit from its item type or be customized.

🔧 2.1. Subitem Pricing Types

Each subitem row can have its own pricing type, chosen from the following:

  • Default pricing type
    This pulls the pricing type defined on the subitem’s own item type. For example, if the subitem’s item type uses Attribute-based pricing, the Default pricing type will follow that logic.

  • Fixed
    A static price set directly on the subitem row.

  • Attribute-based
    Uses selected attribute values and the relevant price list to calculate the subitem’s price, just like at the item type level.

  • Factor-based
    A flexible pricing method that requires the following definitions:

    • Base price of:

    • Increment factor of:

    • At market price of:

    The subitem price will be calculated based on this logic and used in the parent item’s total price if included.

⚙️ 2.2. Additional Settings for Subitems

  • Include in price calculation
    If checked, the subitem’s price contributes to the parent item’s final price. If unchecked, the subitem is excluded from the calculation.

  • Has custom markup
    Allows you to override the markup set on the subitem’s item type. A different markup percentage can be entered specifically for this subitem.

  • Is additional markup
    If this is checked, the custom markup is added on top of the markup defined at the subitem’s item type level, rather than replacing it.

  • Include labor charge
    If checked, and a Default labor type is defined, labor pricing can be overridden specifically for the subitem. This enables the subitem to have its own labor price and cost, separate from what is defined at the item type level.

📌 Note: Updating Subitem Prices System-Wide

If you want to update the price of an item type that is used as a subitem across other item types, and want this change to reflect everywhere it’s used, you have two options:

Open the item type detail of the subitem and make the required pricing changes, and either:

    • Click the “Save and update all” button.

    • Click the “Update price if used as subitem” link located just below the Pricing type selector.

These actions will propagate the new price to all item types where the subitem is used.

🔁 Exception: Metals
Metals are usually priced with the Metal-based pricing type. If this pricing type is selected, any price change (whether from live metal feeds or manually defined) will automatically update the subitem prices across all item types where the metal is used.
If a metal is not using Metal-based pricing, it will behave like any other item type, and updates must be triggered manually via the methods above.



📐 3. Attribute-based Pricing

Attribute-based pricing allows you to calculate an item’s base price dynamically, based on selected attribute values. It supports highly granular pricing, often used for items like diamonds, gemstones, or even labor where characteristics (attributes) significantly influence cost and price.


🔧 3.1. Setup Overview

  1. Assign Attributes to the Item Group – this defines which attributes are available for its item types.

  2. On each relevant Attribute, enable:

    • Allow attribute-based pricing

    • (Optional) ✅ Attribute-based pricing using intervals – allows numeric values (like weight or size) to be priced in ranges.

Once these are set up:

  • A new button appears to manage the Attribute-based Price List. This is visible:

    • On the Item Group detail page or directly from the Item Group list

    • On the Item Type detail page (if its pricing type is set to Attribute based)


🧩 3.2. Item Group vs Item Type Level

  • The Item Group level price list applies to all item types within that group — but only item types with pricing set to Attribute based will actually use it.

  • On the Item Type level, two additional buttons appear next to the Pricing Type dropdown:

    1. 🔗 View/edit Group-level attribute-based pricing

    2. ✏️ Define a Type-specific attribute-based price list

✅ If both group and item type level price lists exist, the item type level takes precedence. This allows overriding group pricing for specific item types.


📊 3.3. Attribute-based Price List Structure

The price list is a matrix that supports detailed control over pricing:

 

Field Description
Entity Either the Item Group or Item Type name (based on where the list is created)
SKU Identifier of the group or item type
Attributes The attribute values that define the price row
Base Cost The cost of the item for the selected attribute combination
Base Cost Markup % Optional markup or discount applied to the base cost
Cost Auto-calculated: Base Cost + Markup %
Change % Optional margin applied on top of the Cost to derive the Base Price. If Base Price is entered manually, this is back-calculated.
Base Price Can be entered manually, or auto-calculated from Cost + Change %
Retail Price Optional final retail price, often used for customer categories that use retail pricing

💡 All values can be manually overridden, but fields like Cost, Change, and Base Price are auto-calculated when sufficient inputs are provided.


⚙️ 3.3.1. Runtime Behavior

When an item is added to a document (e.g. Order or Quote):

  • If the cost/pricing type is set to Attribute based, and valid attribute values are selected:

    • The system looks up the matching row in the attribute-based price list

    • It then automatically pulls in: Base Cost, Cost, Base Price, and optionally Retail Price

If default attribute values are defined on the Item Type, the Base Price will already appear on the item detail page. Otherwise, it is calculated when the item is added to a document and attribute values are selected there.


🔄 3.3.2. Interval-based Pricing

If using numeric attributes (e.g. carat weight or dimensions), and the Attribute-based pricing using intervals flag is enabled, you can:

  • Define value ranges (e.g. 0.50–0.99, 1.00–1.49, etc.)

  • Assign a single price for each range

⚠️ It’s important to define intervals carefully and avoid overlap (e.g. don’t use 1–2 and 2–3). Overlapping intervals can lead to unpredictable behavior, as the system will pull the first match it finds, which may not be the intended one.

The system matches the selected attribute value to the appropriate interval.


🔗 3.3.3. Linked Attributes (Advanced)

When attribute-based priced items are subitems (e.g. a diamond in a ring), the setup can be optimized using linked attributes:

  • Attributes can be linked between parent and subitem.

  • If a user selects an attribute on the parent item (e.g. ring), the subitem (e.g. diamond) inherits that value.

  • This ensures the subitem (which has attribute-based pricing) receives the correct attribute combination automatically and prices itself accordingly.

Example: The ring and diamond both have a “Shape” attribute. Linking these means selecting the shape on the ring will auto-assign it on the diamond as well.

A similar structure can be used for labor:

  • Define a “Setting Type” attribute on a labor service

  • Attach an attribute-based price list to the labor

  • Link this attribute with the one on the item (e.g. diamond)

  • When the user selects a setting type on the item, the labor cost updates based on the price list



⚙️ 4. Metals in PIRO Fusion

Metals play a unique and central role in PIRO Fusion due to the nature of the jewelry industry. Unlike other item types, metals are treated as a special category with market-based pricing, dynamic updates, and composition-driven calculations. There are three primary metal types in Fusion:

  • Pure Metals (e.g., 24K Gold, Platinum)

  • Alloys

  • Master Alloys (used directly in items and documents)


🏷️ 4.1. Pure Metal Price Feeds

PIRO Fusion supports automated price feeds for four types of pure metals:

  • 24K Gold

  • Platinum

  • Palladium

  • Silver

Supported Market Feed Providers

  • Kitco AM/PM (up to twice daily)

  • Apmex (up to every 30 minutes, based on client needs)

Once a feed is selected and enabled, prices are automatically synced and available in:

Inventory → Metal prices

This form displays the current day’s price in:

  • OZT (troy ounce)

  • dwt (pennyweight)

  • gram

In addition, users can manually add or edit pure metal prices on this form, independently of the automatic feed. This allows full flexibility for clients who want tighter control over their pricing or don’t rely entirely on automation.


⚙️ 4.2. Master Alloys and Composition

A Master alloy (item group code: MA) is the actual material used for item building and document pricing in Fusion.

Master alloys are composed of:

  • One or more pure metals

  • One or more alloys

Composition Tab

On each Master alloy item type form, a dedicated Composition tab allows you to define the materials and their percentage contributions. For example:

  • 58.5% → 24K Pure Gold

  • 21% → Alloy A

  • 20.5% → Alloy B

The only rule: the total must not exceed 100%.

Price Calculation

Fusion calculates the price of a Master alloy as:

Master Alloy Price = (Pure Metal Price × % of Composition) + (Alloy 1 Price × % of Composition) + (Alloy 2 Price × % of Composition) + …
👉 The total % of all components must not exceed 100%.

This allows precise pricing tailored to the specific metallurgical formulas used by each client.


💰 4.3. Bank Charges and Markups

Admin-Level Defaults

In Administration → Admin settings → General settings→ Inventory / Metal pricing & markups, you can define:

  • Default markup for each pure metal (e.g., Default Gold 24K Markup)

  • Default company markup (e.g., Company markup for 24K Gold)

  • Default bank charge (e.g., Default 24K Gold Bank Charges)

These serve as global defaults for system-wide price adjustments.

Possible Overrides

In Inventory → Metal prices, per-metal, per-day pricing entries can include:

  • A flat Bank charge/OZT

This bank charge per OZT acts as an additional fee and will be combined with the values defined in Admin settings if both are set. The formula becomes:

Final Metal Price = Base Price + Admin Bank Charge + Admin Company Markup + Bank Charge/OZT (from Metal Prices form)
👉 If values are set in both Admin and Metal Prices form, all of them are added together.

⚖️ 4.4. Pricing Configuration for Metals

Pure Metals

  • Pricing type: must be set to “Market based” for automatic updates to take effect.

  • When updated (via feed or manually), their price will update everywhere they are used as a subitem — as long as those subitems also use “Market based” pricing.

Alloys

  • Pricing type: always Fixed

  • Require manual price updates.

  • Cannot be connected to any feed.

Master Alloys

  • Pricing type: must be set to “Market based” to ensure automatic recalculation.

  • Pricing depends on the composition and current prices of pure metals and alloys.


🔄 4.5. Behavior Across the System

  • If a pure metal with “Market based” pricing is updated, all instances where it is used (including as part of a Master alloy) will reflect the updated price.

  • If pricing is overridden (e.g., set to Fixed on a subitem level), the automatic update will not apply.



🧾 5. Customer Pricing Logic

Pricing in Fusion is not just about item costs — it’s deeply influenced by who the customer is. Fusion allows fine-grained control over pricing behavior through both Customer Categories and individual Customer profiles, each with its own set of rules and overrides.


🗂️ 5.1. Customer Categories

Each customer is assigned to a Customer Category, which defines shared pricing behaviors across multiple clients.

🧩 Settings on Customer Category Detail

  • ✅ Use retail prices
    If checked, documents like Job Orders and Sales Orders will use the retail price of the item type by default. Otherwise, the wholesale (sales) price will apply.

  • 🧾 Use retail prices for invoice
    If checked, invoices will show the retail price.

  • 📉 Discount percent

    • Applies to the final value of invoices as a separate line item.

    • Not shown separately on Job Orders.

💰 Markups on Customer Category Level

These are set on the Customer Categories list view:

  • Metal markup

    • Applies only to Pure metals and Master alloys.

    • Can be Relative (%) or Absolute ($).

    • Negative values = discount.

  • Item type markup

    • Applies to all other item types, including services, diamonds, settings, etc.

    • Can be defined for individual item types or groups.

    • Also supports Relative or Absolute values.

    • Negative values = discount.

All customers under this category inherit these markups automatically.


👤 5.2. Customer-Specific Pricing (Overrides & Add-ons)

Beyond the category settings, each Customer Detail page includes customizable pricing options, overrides, and tax settings.

🔁 Customer-Specific Markups

Customers can override inherited markups from their category using:

  • Customer metal markup

  • Customer item type markup

These work the same way as their category-level counterparts (Relative %, Absolute $), but they take precedence if both exist.

⚠️ Rule: Customer markups override category markups. They are not added together.


⚙️ Other Customer Pricing Settings

  • 💳 CC markup
    If the payment type on the invoice is a credit card (e.g. Credit Card, MasterCard, Visa), this markup will be added as a separate line (called Credit card fee) on the invoice total.

  • 🎁 Global discount
    A permanent discount for the customer.

    • Applies to the total invoice value.

    • Shown as a separate line item (like the Discount Percent on categories).

  • 📦 Shipping price
    Each customer can be assigned a default shipping charge.
    This is typically prefilled on Orders (sales or job) and Invoices, but can be adjusted.


🧾 5.2.1. Sales Tax Handling

Each customer can be configured with one or more of the following tax preferences:

  • ☑️ Ignore sales tax on invoice
    The customer is sales tax exempt on invoices.

  • ☑️ Ignore sales tax on sales order
    The customer is sales tax exempt on Sales Orders.

  • 📍 Calculate sales tax based on shipping address
    If checked, tax is calculated based on the shipping destination.

    • Depends on either state-level rules (set under Misc Settings > Sales Tax)

    • Or, if TaxJar integration is enabled, by local/provincial rules.



🛠️ 6. Service Pricing

Services play a key role in the jewelry manufacturing workflow. They are steps in the production pipeline—such as setting, polishing, quality control, etc.—and they may affect the final cost and price of jobs, quotes, and invoices.

Services are managed under Configuration → Services and can be customized per workflow or per service.


🧮 6.1. Service Pricing Types

Each service can have one of the following pricing types:


1️⃣ By service pricing

💲 Flat rate per service

This is the simplest method: the entire service has one fixed price regardless of any item quantities or durations.

  • Price field: $ / service

  • Example: A polishing service always costs $15 regardless of what’s being polished.


2️⃣ By service quantity pricing

📦 Variable based on editable quantity

The service cost depends on the quantity, which can be adjusted manually when the service is in progress (e.g., in the Job Detail → Services tab).

  • Editable field: Quantity

  • Price field: $ / unit

  • Example: Rhodium plating priced at $5 per unit — and the quantity is set to 3 on the job = $15

⚠️ Note: Quantity is only editable for this pricing type.


3️⃣ By items pricing (Pending confirmation)

🧱 Custom labor pricing per item type or group

While selected, the system enables:

  • ✅ A checkbox: Has custom labor price for metals

  • ➕ A button: Add labor price, which allows labor to be defined per:

    • Specific Item Groups

    • Individual Item Types

The labor price configured here will automatically apply when the associated item passes through this service in a job.

This is especially useful for assigning different labor costs depending on:

  • Metal type

  • Complexity

  • Item group/category


4️⃣ By duration pricing

⏱️ Time-based pricing – $ / hour

This method calculates the cost based on how long a job remains in this service.

  • The service starts tracking time when the job is routed in

  • The timer stops when the job is routed out

  • Price is defined as: $ / hour

  • Rounding behavior (e.g., per minute or 15-min block) can be configured globally

Useful for:

  • Polishing time

  • Repair services

  • CAD design work


🧾 6.1.1. Invoice Visibility – “Add to Invoice”

Each service includes a checkbox:

Add to invoice

  • Checked: Service charge will appear on customer-facing invoices.

  • Unchecked: Service cost is internal only (used for costing or reporting, not billed to the client).

This makes it easy to separate billable vs. internal operations.


🔁 6.1.2. Workflow-Level Overrides

A workflow is a sequence of services. Each workflow can override:

  • The pricing type for each service

  • The price (rate/amount)

This gives immense flexibility:

  • Different workflows can use different logic for the same service

  • Allows tailored pricing for specific clients, product types, or workflows

For example:

  • Casting might be priced per unit in one workflow but per duration in another.



📄 7. Document-level Pricing

In PIRO Fusion, multiple documents can include item types or inventory items. These include:

  • Price Quotes

  • Sales Orders

  • Job Orders

  • Outgoing/Incoming Consignments

  • Invoices

  • Credit Memos

  • Purchase Orders

  • Receipts of Goods

  • Accounts Payable

Each of these documents requires a customer selection. Based on the customer and their associated customer category, the price of an item type will be pulled as either the retail or wholesale (sales) price. This logic is influenced by settings like “Use retail prices” and customer-level markups/discounts.


🧾 Item Type Pricing on Documents

When you add an item type to a document using the Add item button:

  • The Base price will be automatically filled, based on:

    • Item type’s pricing type (Fixed, Component-based, etc.)

    • Customer and customer category markup/discount logic

  • Two markup fields are available:

    • Markup 1: Pulled from the item type (editable)

    • Markup 2: Optional additional markup

  • These markup fields define the Total price of the line item.

If the item type uses Fixed pricing, the Base price remains editable. For calculated types (Component-based, Attribute-based, Cost-based, Market-based), the Base price is not editable .


🔒 “Lock in the price” Option

When adding a non-fixed priced item to a document, you can check “Lock in the price”. This prevents the price from being recalculated later if the item’s attributes or subcomponents change.


📦 Inventory Items on Documents

The Add item from inventory button allows selecting from existing inventory items, pulling their saved prices from previous inventory movements. These are typically finished goods or physical stock.

The following documents do NOT support adding inventory items (i.e., no “Add item from inventory” button):

  • Incoming Consignments

  • Credit Memos

  • Purchase Orders

  • Receipts of Goods

  • Accounts Payable


🔁 Price Retention and Document Conversion

Once a price is saved on a document, it will not update even if the item type or customer pricing changes later. This ensures consistency and traceability.

Documents can often generate or convert into other documents:

  • Sales Orders ➝ Job Orders, Purchase Orders

  • Job Orders ➝ Purchase Orders, Invoices

  • Price Quotes ➝ Job Orders, Sales Orders, Outgoing Consignments

  • Incoming Consignments ➝ Accounts Payable

  • Receipts of Goods ➝ Accounts Payable

  • Invoices ➝ Credit Memos

When converting documents, prices are carried over automatically.


💬 7.2. Special Document Behavior

📋 Price Quotes

Price Quotes serve to estimate future orders and offer a dedicated Costs & Prices tab:

  • Sections: Services, Items, Total

  • Each shows both Cost and Price

  • Gives visibility into:

    • Service cost/price from workflows or individual services

    • Item cost/price from components, pricing types

    • Total cost vs. Estimated total (final price)

Additional features:

  • Apply discounts to all items or overall quote total

  • The Cost markup (%) field is automatically calculated based on the difference between the item’s cost and price. However, it is fully editable—if you modify this value, the system will automatically recalculate the item’s price based on the new markup.

🧾 Invoices

Invoices represent the final, billable document in PIRO Fusion and include several pricing behaviors that impact the final amount the customer pays.

✅ Bulk Adjustments

You can select multiple lines of invoices within the invoice list and:

  • Apply a markup or discount to the total amount
    (Note: This affects the invoice total, not individual item prices)

📆 Payment Terms with Discounts

If a payment term like “2% Net 30” (or similar) is selected:

  • A 2% discount will be applied to the invoice total

  • The discount is automatically included in the total as long as the due date hasn’t passed

  • ⏱️ If the invoice is not paid by the due date, the system removes the discount automatically



💱 8. Multicurrency Support in PIRO Fusion

PIRO Fusion provides robust multicurrency capabilities, allowing businesses to manage customers, documents, and pricing in various currencies while maintaining centralized financial accuracy using a system default currency.


⚙️ 8.1.1 Enabling Multicurrency

To enable multicurrency support in your system:

  1. Navigate to:
    Administration → Admin Settings → Currency Settings

  2. Check the box labeled:
    System supports multiple currencies

Once enabled, this setting allows you to configure and use multiple currencies throughout the system.


➕ 8.1.2. Adding and Managing Currencies

After enabling multicurrency:

  • Click the “Add new currency” button to configure a currency. You can:

    • Select from a list of pre-defined standard currencies, or

    • Create a custom currency if it’s not already in the system.

🔁 Currency Pair Logic
The system always requires defining currency pairs with the system default currency (e.g., USD ↔ EUR, USD ↔ GBP).
❌ You cannot convert directly between two non-system currencies (e.g., EUR ↔ GBP) without first converting through the system currency.

This ensures consistent and accurate exchange rate calculations.


🏦 8.1.3. Setting the System’s Primary Currency

The default currency of the system can be set in two places:

  • Admin Settings → Currency Settings: check “Used as primary” next to a currency.

  • Admin Settings → General Settings → System’s primary currency dropdown.

Changing the primary currency from either location will automatically update the other.


🔁 8.2. Managing Exchange Rates

For each currency pair (System Currency ↔ Secondary Currency), you have two options:

  1. Fixed Conversion Rate

    • The client can provide the conversion rate, which will be added to the system by FUSION team.

    • This rate can be updated on a regular basis (monthly, quarterly, etc.), depending on client preferences.

  2. Dynamic Conversion Rate via API

    • The system can fetch daily exchange rates automatically.

    • This ensures up-to-date pricing and consistent conversions across documents.


👤 8.3. Customer Currency Setup

On the Customer Detail Form → Financial & Shipping Settings, set the Currency Used field.

  • If set to a currency different from the system default, this customer’s documents will support multicurrency features.

  • If set to the same as the system currency, multicurrency features will not be shown for this customer’s documents.


📄 8.4. Document Behavior (Sales Orders, Price Quotes, Job Orders, etc.)

If the customer’s currency ≠ system currency:

  • The system will:

    • Show the current exchange rate

    • Display item costs and prices in both currencies (customer and system)

    • Let the user toggle and choose which currency the item should be priced in

If the customer’s currency = system currency:

  • Multicurrency features will not appear

  • Prices will only be shown in the system currency

  • No currency toggle or rate info will be visible


🛠️ Job Order: Exchange Rate Override

On Job Orders, the system provides job-level exchange rate overrides.

  • Navigate to Job Order Detail → Prices Tab → Exchange Rate section

  • You can manually adjust the exchange rate for that job

📌 Only visible if the job’s customer uses a different currency than the system default

Rules:

  • Jobs must be in New status

  • If updated after items are added, the system will recalculate all item prices accordingly


🧠 Summary Logic Table

 

Customer Currency System Currency Exchange Rate Displayed? Currency Toggle?
Different Default ✅ Yes ✅ Yes
Same Default ❌ No ❌ No