The #1 Software Provider in Precious Metals Market

We're Here To Help

Check out our tutorials, technical guides, and API documentation.

Try nFusion software free for 14 days.

Meet our happy clients

Financial institutions, dealers, and wholesalers alike benefit from our powerful visualizations for both real-time and historical data.

How Can We Help?

Our dedicated support team is here to assist you with any questions or challenges you may face. Whether you need technical guidance or help navigating our services, we’re just a click away to provide the solutions you need.

Where do you get your spot prices?

At nFusion Solutions, our spot prices are sourced from a curated network of trusted global providers, including leading global exchanges and financial institutions like SIX-Group (Swiss Stock Exchange), Morningstar, UBS, Saxo Bank, Morgan Stanley, AFX, and BNP Paribas. We continuously monitor these real-time feeds using a proprietary confidence-scoring system to ensure the most accurate, timely, and reliable data.

Our system calculates a best bid and offer (BBO) by selecting the most trustworthy quotes and filtering out anomalies. From there, we derive a clean midpoint and construct balanced bid/ask prices tailored to current market conditions.

Want a deeper look at how it all works? Read our full guide on precious metals spot prices ›

Why are my spot prices not updating?

If spot prices do not appear to be updating, it may be because the market is closed. Market hours for precious metals correspond to CME Globex hours for metals futures

How can I customize my company's spot price?

To configure custom spot pricing for metals:

  1. Log in to your nFusion Dashboard as an administrator.

  2. Navigate to the “Metal Price Configuration” section on the home page.

  3. Enable Custom Overrides by toggling the switch at the top of the section. Once enabled:

    • You’ll have the option to set an “Expires On” date. This determines when your custom pricing will expire and automatically revert to the global spot price.

  4. Configure Spot Prices for Individual Metals:
    Below the toggle and expiration date, you’ll see a table listing each supported metal:
    Gold, Silver, Platinum, Palladium, Rhodium, and Copper.

    For each metal, you can:

    • Set a Fixed Bid and/or Fixed Ask value to lock in a specific price.

    • Apply a Bid Adjustment or Ask Adjustment to automatically increase or decrease the spot price.

    For example:
    To set a fixed Ask price for Gold at $1,215.75, click the pencil icon for Gold, enter 1215.75 in the Fixed Ask field, and save.
    To adjust the price dynamically instead, enter 0.5 in Ask Adjustment and -0.5 in Bid Adjustment to increase your Ask by 50¢ and decrease your Bid by 50¢ relative to the live spot price.

  5. Edit Metal Pricing:
    Click the pencil icon next to the metal you wish to configure. This will open an editing dialog where you can enter your desired values for the appropriate metal.

Why does the change value (price, bid, ask, etc) on our site not match site Y?

There are a number of factors that affect how spot prices are calculated and how they are displayed.

  1. Site Y may be using a different data source. If they are using a different data provider their spot prices will almost certainly be slightly different due to variations in calculations, delivery, caching and timing.
  2. Site Y may be applying adjustments to the global spot price in order to affect how their site displays pricing data.
  3. Site Y may have difference from your site such as speed, latency, delivery, caching, polling intervals and code.
How can I get spot price data in XML or JSON?

To access spot price data in either XML or JSON format, first log in to your nFusion Dashboard. From the dashboard:

Go to the Connections page and scroll down to the API Keys section.

Click the “View” button in the “Documentation” column for the corresponding Market Data API key to access detailed usage instructions, including supported formats and endpoints.

By default, API responses are returned in JSON. If you prefer XML, you can set the appropriate Accept header in your request (application/xml) or use the format query parameter (e.g., ?format=xml). We recommend using JSON (application/json) for most use cases due to its widespread compatibility and performance.

How do I integrate catalog data (APIs)?

To access the nFusion Solutions APIs, you’ll need one or more API tokens, depending on your use case. To find your API tokens:

  1. Log in to your nFusion Dashboard.
  2. Navigate to the Connections page.
  3. Locate the API Keys section to view your token(s) and access the appropriate documentation for full implementation details.

Your API tokens are sensitive credentials and should be kept secret. Never expose them in client-side code (e.g., JavaScript running in the browser), as this can allow others to view and misuse your token. Instead, route requests through your own server using a secure proxy, such as:

https://yoursite.com/proxy/metals/spot

This server-side proxy can safely call nFusion APIs using your token while keeping it hidden from the public.

To improve performance and reduce redundant API calls, we strongly recommend implementing caching on your proxy server. This ensures that multiple client-side requests don’t result in a 1:1 call ratio to nFusion APIs.

When making API requests, use the following HTTP headers as appropriate:

  • Accept: Recommended value is application/json. For XML, use application/xml.
  • Accept-Encoding: Use deflate,gzip for compressed and faster responses.
  • Content-Type: For POST or PUT requests with a body, use application/json.
  • User-Agent: We recommend setting this to your customer ID for identification.

For further guidance, refer to the API documentation linked from your Dashboard.

Why do some of my API calls return HTTP code 403?

An HTTP 403 (Forbidden) response with substatus 502 typically means your API requests have exceeded the rate limit. This happens when you make too many calls in a short period of time.

To resolve this, reduce the number of API requests you’re making per second. Implementing caching on your server or delaying certain requests can help stay within the allowed limits.

For high-frequency use cases, consider batching or aggregating your requests where possible to optimize efficiency and stay within allowed limits.

Why are the widgets on my site not loading?

There are a number of reasons that widgets may fail to load on a page.

  1. If you are receiving responses with status code 401 (unauthorized), it may be that your subscription has expired or you have a domain mismatch.
  2. You may have added the script code to your page incorrectly. Double-check the included instructions you received.
  3. There is a javascript error on the page. Check your browser developer panel for errors.
  4. There is more than one widget on the same page with matching IDs. This is causing a conflict with the widget scripts. To remedy this error, see our tutorial below on how to add multiple instances of one widget to the same.
How do I send messages to alert users?

Sign in to the Alerts Services portal using your admin email address. Once you have logged in as the admin to the admin URL, you’ll see the following options:  

  • Set marketing message for alerts emails
  • Send a promotional message now to all users
  • Export user list
  • Manage Email templates

Click on the second option—send a promotional message now to all users. This option allows the admin to push a message at any time to all users who have opted in to receive news and promotional messages. After clicking on the second option, you will be directed to a new page containing a text entry box where you may add your desired message.   Once you have finished creating your message, simply click the Send button. Subsequently, a page will display the results of your message. These results contain information regarding the message. For example, you will be shown how many notifications were sent out with further detail pertaining to whether or not they were push or SMS notifications. This allows you to understand how many people your message is reaching and how it is reaching them, therefore allowing you to enhance your marketing strategies.

What currency plugins are compatible with your Precious Metals Automated Product Pricing plugin?

We have tested and confirmed compatibility with the three most popular multi-currency plugins in the WordPress plugin store. These plugins will work out of the box with our plugin as of version 2.9.9. If you are not using at least version 2.9.9 of our plugin, currency switching plugins may not be compatible. Please note the version with which they have been tested.

  1. CURCY – Multi Currency for WooCommerce
  2. WOOCS – Currency Switcher for WooCommerce
  3. Currency Switcher for WooCommerce
Why does my currency plugin not work with your Precious Metals Automated Product Pricing plugin?

If you are not using one of the plugins that we have confirmed to be compatible in the list mentioned here, there are a couple of things to look for. Our plugin depends on the get woocommerce_currency() function which returns the current WooCommerce currency code. If your currency switcher plugin is not updating the WooCommerce currency then our plugin will not update the product prices with the new currency. The other thing that may be causing your plugin to not work properly is the priority at which the woocommerce_product_get_price filter is set. As of version 2.9.9, our Product Catalog plugin is setting the priority of the aforementioned filter to 10000 in an attempt for our hook to be run last. If the priority of said filter in the currency plugin is higher than 10000, it may be overriding the price that is being returned from the Product Catalog.

Can I modify the functionality of your Precious Metals Automated Product Pricing plugin?
If our free plugin does not support your specific desired behavior, you can modify your local copy of the plugin to have custom behavior if you choose. Please keep in mind the following cautions if you do decide to modify the plugin:
 
1. We do not offer support for modified versions of our plugins. Once you have modified the code from its public source all development support for that plugin is out of scope for our team.
2. If you modify your local copy and don’t disable auto-updates for that plugin, then the next time we release a new version your local changes will be overwritten and lost.
3. If you do disable auto-updates and modify your local copy you will no longer receive upgrades when we release them. This means you will not receive the benefit of future bug fixes and/or feature enhancements. It may be possible for your developer to examine the code in the public repository and merge in the changes, but our team can provide no support for the merge, nor for any of the code of your customized plugin.
How do I get my widgets to be displayed in the currency set by my currency switcher plugin?

To do this, you must be using one of our supported currency switcher plugins. If you are using a supported currency switcher, you have two options:

1. Use our WordPress Charts & Widgets Plugin
As of version 1.2.4, our widgets plugin will work out of the box with any of the aforementioned supported currency switchers

2. Use our currency helper script
The currency helper script is implemented in a very similar fashion to our default widget scripts. You simply need to paste a script into the page where you would like to display the widget. If you would like to use this option, please visit our tutorial on how to implement the currency helper script.

How to customize widget styling using the Dashboard

You can now personalize the styling of your widgets effortlessly through our new Dashboard app! To get started, follow these steps:

Access the Widgets Page: Log in to your nFusion dashboard and navigate to the widgets page.

Edit a Widget: In the widgets page, locate the widget you want to customize, and click the ‘edit’ pencil icon in the actions column. This action will take you to the widget’s editor screen.

Customization Sections: On the widget’s editor screen, you’ll find two main sections:

  • File Upload Section: This section allows you to upload files, such as CSS and (JS, available only in the advanced widget package), as well as an image file.
  • Widget Settings Section: Here, you can configure specific widget settings. In this guide, we’ll focus on the file upload section and explore how to upload a custom CSS file.

Before You Begin:

Before uploading your custom CSS, we highly recommend reviewing our CSS best practices documentation to ensure that your styling is applied without any conflicts.

Uploading Custom CSS:

To upload your custom CSS file, follow these steps:

  1. Click the ‘upload’ icon button under the ‘Upload CSS’ column. This action will open a file explorer, allowing you to select the CSS file you wish to upload.
  2. Once you’ve selected a CSS file, you’ll receive a confirmation message confirming that your CSS file has been successfully uploaded.

Preview Your Changes:

To see your customizations in action, return to the widgets page and click the ‘preview’ button for the widget you’ve just edited. This will open a widget preview page where you can view your new CSS styling.

Troubleshooting CSS Application:

If you find that your custom CSS is not being applied, consider the following solutions:

  • Clearing Cache and Hard Reload:
    • Open the Developer Console using Control+Shift+I (Windows/Linux) or Option+Command+I (Mac), or via Tools > Developer > Developer Tools, or by right-clicking and choosing Inspect.
    • Press and hold or right-click the Refresh Icon.
    • Choose “Empty Cache and Hard Reload” from the dropdown.
  • Check CSS Specificity:
    • Open the Developer Console and inspect the element you want to style. In the “Styles” panel on the right-hand side, ensure that your CSS rule is not crossed out. If it is, this indicates a different CSS rule may have higher specificity.
  • Verify CSS Selectors and File:
    • Check for typos in your CSS selectors and their order.
    • Ensure the CSS file you uploaded is the correct one by using the Developer Console’s “Network” tab and finding the CSS request corresponding to your custom CSS file.

If none of the above solutions work, please contact our support team at support@nfusionsolutions.com. When reporting your issue, be sure to include all the steps you’ve taken to resolve the problem before reaching out. This will help us provide the quickest possible solution to your customization needs.

How to add multiple instances of one widget to the same page

To do this, each widget must have a unique ID so that when they are loaded into the page, there are no javascript errors or conflicts. Therefore, when you are adding multiple instances of the same widget to a single page, you need to change the ID of the DIV element so that it is unique within that page; then, modify the src attribute within the script by adding “/your-id” to the end of the root domain. By changing the ID and modifying the src, you are telling the script which DIV element to load the chart into. For example, here is a default chart widget script that has been copied from the preview page:


<div id='c528ee05-722d-4762-a635-213197f7b8b4' style='width:100%;height:100%;'></div>
<script>
    (function () {
        var t = document.getElementsByTagName('script')[0];
        var s = document.createElement('script');
        s.async = true;
        s.src =
            'https://widget.nfusionsolutions.com/widget /script/chart/1/32796899-2cc3-4454-ac51-2c95c78799af/c528ee05-722d-4762-a635-213197f7b8b4';
        t.parentNode.insertBefore(s, t);
    })();
</script>

Now say you wanted to add another chart on the same page (maybe to change the selected symbol for example). Here is what it would look like to add a second instance of the same widget to a single page:


<div id='my-custom-id' style='width:100%;height:100%;'></div>
<script>
    (function(){
        var t = document.getElementsByTagName('script')[0];
        var s = document.createElement('script'); s.async = true;
        s.src = 'https://widget.nfusionsolutions.com/widget/script/chart/1/32796899-2cc3-4454-ac51-2c95c78799af/c528ee05-722d-4762-a635-213197f7b8b4/my-custom-id';
        t.parentNode.insertBefore(s, t);
    })();
</script>

Notice how everything is the same except for the DIV element ID and the end of the src attribute.

How to have external buttons that manipulate the iframe
To do this, you must connect the two elements, both the button and the iframe, via javascript. This tutorial will use the example of creating a button that changes the selected symbol of a chart. First, start by adding your desired event listener. In this example, since we are using a button we would add a click event. Once you have added the event listener to the button element, create a function that will manipulate the iframe and call it from within the click event. Now, this function will run every time the button is clicked. Next, you will need to get access to the iframe element. Once you have access, you may then manipulate its attributes. In this example, we will be manipulating the “src”. Once you get the src of the iframe, you simply need to replace or override that src URL with the new desired src URL.
 
For example, a default chart src URL looks like this: “https://widget.nfusionsolutions.com/widget/chart/1/fya3e32-e870-adf20-a9f3-c88c636f7s8d/188e705d-23afa-45dd-fce21-09c8298af4f2”
 
If you want to change the symbol when the button is clicked, the src URL would look like this: “https://widget.nfusionsolutions.com/widget/chart/1/fya3e32-e870-adf20-a9f3-c88c636f7s8d/188e705d-23afa-45dd-fce21-09c8298af4f2?selected=silver”
 
When you replace the src URL in the javascript the chart iframe will then update and display the new src URL.
Below is an example code snippet using jQuery to switch the charts selected symbol to silver:
 
let button = $('.sample-button'),
    widget = $('#188e705d-23afa-45dd-fce21-09c8298af4f2');
button.click(changeSymbol());

function changeSymbol() {
    widget.children("iframe").attr("src", "https://widget.nfusionsolutions.com/widget/script/chart/1/6e98ae99-d878-43a2-81f0-a2528bd3d47e/5444e580-e249-426f-b07f-d23c19049c08" + "?selected= silver");
}
How to reset your product catalog password

If you are logged in and want to change your password:

While logged in to the product catalog, navigate to the menu item in the upper right-hand corner of your screen within the navigation menu and click on the item that displays your username. Once you have clicked your username, a dropdown will appear with four options. Click on the second option, “password”. From here, you can simply create a new password. Enter the old password for the specified user and then enter the user’s new password. Last, confirm the new password to assure that it is correct. Once you have filled out all of the required fields in order to reset your password, click the submit button at the bottom of the form and it will submit your changes. Your new password will then take effect immediately.

If you are not logged in and have forgotten/lost your password:

Try to utilize the password reset functionality. At the login screen click on “can’t access your account”, then choose “work or school” account, then complete the prompts to initiate a password reset. If you are still unable to log in contact our support team.

How to implement widgets using the currency helper script

To implement your widgets using our currency helper there are two simple steps.
1. To ensure that the helper script is available before attempting to use it, you must add the following script within your header:


<script src="https://widgetcdn.nfusionsolutions.com/asset/static/1/common/1/js/currency-interop.min.js"></script>

2. Now that the script is available to use, you can add a widget to the page by using code similar to the following:


<div id='YOUR-WIDGET-ID' style='width:100%;height:100%;'></div>
<script>
    (function(){
         nFSCurrencyHelper.init('YOUR-WIDGET-SCRIPT-SRC-URL');
     })();
</script>

Simply replace “YOUR-WIDGET-ID” in the above script with the ID that is in your widgets preview page script. Then similarily, replace the “YOUR-WIDGET-SCRIPT-SRC-URL” with the url being assigned to the s.src variable that is in your widgets preview page script.
This script is very similar to our default widget scripts, with the exception that you need to use the “nFSCurrencyHelper.init” function and pass the function the widget’s src.

How to log into dashboard and catalog using a third party social provider

Open your web browser and visit either your nFusion Dashboard at https://dashboard.nfusionsolutions.com/ or your nFusion Catalog at https://nfusioncatalog.com/account/login?tenantalias={your_tenant_name}&scheme=AzureAdB2C. If you are not already logged in, you will be presented with the login page.

As you step into the nFusion Cloud of solutions, you can tap into the power of your existing Google, Microsoft, Apple, or Facebook accounts. For instance, if the email you received your Dashboard invite on is linked to a Google or Gmail account, a simple click on the Google button gets you authenticated in a snap making logging in a breeze!

Should your email address lack association with any of these four providers, there’s an alternative option. Just click “sign up now” at the top, and you can easily create a new account using your email address, alongside a password of your preference. This empowers you with the ability to establish a new account with ease.

How to switch to new catalog authorization

In one of our latest releases to the Product Pricing Catalog, we’ve added an SSO (Single Sign On) feature that allows you to log into your Product Pricing Catalog and the Dashboard using the same user account! This will help streamline the process and minimize the time you spend logging into your nFusion applications!

To switch to this new way of Authentication, you need to navigate to the Users page of your nFusion Dashboard by visiting: https://dashboard.nfusionsolutions.com/en/pages/users

Here you’ll see a table of users that currently have access to your Product Catalog. To add your user record to this table, click the “Add user” under the users section of the page. Then enter your name and the email address to which you received your nFusion Dashboard invitation. Under “Role” select the role you would like to provide this user account with. The “Administrator” role allows both read and write access to products, product families, etc. whereas the “Sales” role is essentially a read-only view of the product catalog for those users who only need viewing access to the products within the Catalog. Once this information has been entered, click “Submit” towards the bottom left-hand corner of the page.

The user you’ve just added can now log into the catalog and you should have received an email to help you do so. To accept your invitation to join the Product Catalog, navigate to https://nfusioncatalog.com/account/login?tenantalias={your_tenant_name}&scheme=AzureAdB2C. Here is where you can tap into the power of your existing Google, Microsoft, Apple, or Facebook accounts. For instance, if the email you received your Dashboard invite on is linked to a Google or Gmail account, a simple click on the Google button gets you authenticated in a snap making logging in a breeze!

Now that you’re logged in using your new user account that is utilizing your personal social authentication method, you no longer need to log into the Dashboard using the old admin and or sales emails that were previously provided to you.

How to install and configure Shopify app

To use the nFusion Shopify app, you must have an active subscription to the nFusion Product Pricing Catalog service. If you don’t yet have a subscription, please contact our sales team.

App Setup Instructions:

1. Install the App

  • From the Shopify App Store, install the nFusion Shopify App
  • Accept the requested permissions to complete installation.

2. Configure App Settings:

Once installed, open the nFusion app from your Shopify admin and configure the following settings:

  • Catalog Subdomain
  • Catalog Sales Channel
  • Catalog API Key

You can retrieve your API Key and available Sales Channels from within your nFusion Dashboard.

3. Set Up Your Sales Channel

You can either use an existing sales channel or create a new one (e.g., “Website”) within the nFusion Dashboard. This sales channel determines which products are synced to Shopify.

To learn how to assign products to a sales channel, please see the Sales Channel Assignment Setup Guide.

Important: The SKU for each product in the nFusion Dashboard must exactly match the corresponding product SKU in Shopify. Mismatched SKUs will prevent price updates.

4. Complete the Integration

Once all settings are configured, email support@nfusionsolutions.com to finalize the integration.

How to install and configure WordPress plugin

To use the nFusion plugin with WordPress/WooCommerce, you must have an active subscription to the nFusion Product Pricing Catalog. If you do not yet have a subscription, please contact our sales team.

Plugin Setup Instructions:

1. Install and Activate the Plugin

2. Configure nFusion Settings

  • After activation, go to Settings → nFusion Settings in the WordPress toolbar.
  • Enter the required configuration details:
    • Catalog Subdomain
    • Catalog Sales Channel
    • Catalog API Key

You can find this information in your nFusion Dashboard

3. Create or Select a Sales Channel

You can either use an existing sales channel or create a new one for this integration (e.g., “Website”) within the nFusion Dashboard.

To learn how to assign products to a sales channel, please see the Sales Channel Assignment Setup Guide.

Only products assigned to the selected sales channel will be eligible for automatic price updates.

4. Link WooCommerce Products to Catalog SKUs

  • In your WordPress admin, go to Products.
  • For each product you want to sync, open the Edit Product screen.
  • Find the WooCommerce product SKU field.
  • Enter the exact SKU as it appears in your nFusion Product Catalog.

Important: SKUs must match exactly between WooCommerce and the nFusion Catalog. Otherwise, price updates will not apply.

Once these steps are complete, your plugin should be fully integrated with the nFusion Product Pricing Catalog, and your WooCommerce products will begin receiving price updates automatically.

How to enable product re-indexing for WordPress

Our Product Catalog Plugin for WooCommerce will automatically enable product re-indexing if the Action Scheduler plugin is installed and active on your WordPress website.

Action Scheduler:

The Action Scheduler plugin is a scalable, traceable job queue for background processing large queues of tasks in WordPress. Designed for distribution in WordPress plugins – no server access required. Action Scheduler is developed and maintained by Automattic (the developers of WordPress & WooCommerce) with significant early development completed by Flightless.

How to install & activate:

  1. Download the .zip archive of the latest stable release
  2. Go to the Plugins > Add New > Upload administration screen on your WordPress site
  3. Select the archive file you just downloaded
  4. Click Install Now
  5. Click Activate

Or clone the Git repository into your site’s wp-content/plugins folder.

Usage:

Once the Action Scheduler plugin is installed, the Product Catalog Plugin will utilize its functionality to asynchronously re-index your products within WooCommerce.

How to setup eBay integration

Below is a step-by-step process for how to set up eBay integration with the Product Pricing Catalog.

  1. Create a sales channel that will be used to group all products you want to integrate into eBay. You may skip this step if you already have a sales channel you would like to use.
  2. Add any product(s) you want to integrate with eBay to the eBay sales channel.
    1. You can add products individually to a sales channel by clicking on the arrow icon to the left of a product’s SKU on the main Products tab. This will expand the row and you can then click on the Sales Channel tab and then click the pencil (edit) icon to add that product to one or more sales channels.
    2. You can add All Products to a Sales Channel by clicking on the top navigation Config / Attributes and then scrolling down to the Sales Channel section. From here, pick the Sales Channel you want to add all products to and click the Add All Products button on the right-hand side.
  3. Click on the top navigation Integration / eBay then go to the eBay tab in the catalog. Go to where it says “eBay API Authentication Token”. There is a link there “[To issue a new authorization token for your eBay integration click here]”. Click that link and issue a token to nFusion Catalog to allow it to update your eBay listings.
  4. Click the link that says “[To refresh your eBay listings manually before the next scheduled interval click here]”. You do not need to do this every time, as it will auto-update once the integration job has been scheduled. If you have any active or scheduled Fixed Price eBay listings they should now appear in the table.
  5. Map eBay listings to catalog products. To do this go to each row in the table, click edit, then in the column “Catalog Product” select the SKU of the product to map.
  6. Create your eBay listings markups. If markups are applied to eBay listings they are applied to the “retail ask” of that product in the catalog. There are several options for pricing eBay listings:
    1. Apply a markup to the sales channel used for eBay listings. This will apply a consistent markup to all listings (i.e. 10% above retail ask).
    2. Apply markup in each row of the eBay listings mapping table. This allows you to specify different markup amounts for each listing.
    3. Combine options a & b. Sales channel markups are applied first, then mapping level markups.
  7. Once your initial setup is complete notify nFusion Solutions so that your integration can be started.
  8. Keep in mind that as you create new listings, or existing listings expire or are renewed (if eBay creates a new listing id) you will need to perform the mapping step again.

A few things to note during this process:

  • Only Fixed Price listings can be updated on eBay
  • Listings cannot be created in eBay from the catalog, only updated
  • Only the price field is updated on eBay
  • The catalog does not take into account inventory levels
  • Zero prices are not pushed to eBay, they are skipped
  • eBay integration job can not run more often than every 10 minutes. (This is because of limitations enforced by the eBay API)
  • Does not support tiered pricing
  • Only supports US instances of eBay listings
How to setup your catalog for the first time

The Product Pricing Catalog (PPC) is a dynamic pricing calculator and product pricing management dashboard that incorporates real-time spot prices, currency rates, unit weight, user-entered markups, and performs on-demand calculations, which are integrated into your e-commerce system via APIs. Our platform allows you to set all of your product pricing exactly how you would like it in your management dashboard and then automatically pull that live dynamic pricing into your website, mobile app, custom invoicing page, ERP, etc. Once logged in to the Product Pricing Catalog (PPC) you will see some demo products already set up. You can use these example products, modify them, or add new products as needed. You can edit a product to adjust the markups and get the pricing exactly how you need it, applying dollar or % values or both. You can set your Ask (sale prices) as well as your Bid (buying prices) in this same view. Keep in mind the product SKU (unique primary key per product) and the Sales Channel are required for product prices to properly update within your E-Commerce software. In addition, the Product Pricing Catalog (PPC) has a series of APIs that you can access once you are logged in. In the upper right-hand corner under your username, there is a dropdown menu that has the API documentation in it. You can also access your PPC API token in this drop-down menu.

How to change my company name

Send a request to support@nfusionsolutions.com with your current company name and new company name including address if changed.

How to create a new sales channel

Follow these steps to create a new sales channel:

  1. Log in to your nFusion Dashboard.
  2. Navigate to the Products page.
  3. Click the “Product Actions” (hamburger menu) button in the top right.
  4. Select “View Product Attributes” from the pop-up menu.
  5. In the Product Attributes page, scroll to the Sales Channels section.
  6. Click the “+ Sales Channel” button.
  7. Enter a name for your sales channel and configure any desired markups.
  8. Click Save.

That’s it! You’ve successfully created a new sales channel. You can now begin assigning products to it using either individual edits or the bulk update method.

How to assign products to a sales channel

To get started, sign in to your nFusion Dashboard. From there, there are two ways to assign products to a sales channel:

Option 1: Add Products Individually

  1. Navigate to the Products page.
  2. Find the product you want to include.
  3. Click the edit (pencil) icon.
  4. Navigate to the Sales Channels tab.
  5. Select the desired sales channel and click Save.

Option 2: Add or Remove Products in Bulk

  1. Navigate to the Products page and click the “Product Actions” (hamburger menu) button.
  2. Select “View Product Attributes” from the pop-up menu.
  3. On the Product Attributes page, go to the Sales Channels section.
  4. From there, you can add or remove all products from a specific sales channel in bulk.
API best practices

API Best Practices

Following these best practices will help you get the most reliable, secure, and efficient performance when working with nFusion APIs.

Use HTTPS

All API requests must be made over HTTPS, using TLS 1.2 or higher. Unsecured (HTTP) requests are not supported.

Authentication & Security

To access the nFusion APIs, you will be issued one or more API tokens, depending on your use case. These tokens are sensitive credentials and should be treated like passwords.

  • Never expose your API token in client-side code (e.g., JavaScript that runs in the browser), as it can be easily viewed and misused.
  • Instead, make API requests from your server-side code via a secure proxy. For example: https://yoursite.com/proxy/metals/spot
  • Your server can securely call the nFusion API using the token, keeping it hidden from public access.
  • Implement caching in your proxy to avoid sending a new request to nFusion for every client request. This improves performance and helps prevent hitting rate limits.
Rate Limits

To avoid throttling, limit your request rate:

  • Keep API calls under 1 call per second per service.
  • If rate limits are exceeded, you may receive a 403 Forbidden response with substatus 502.
Optimize API Efficiency

Reduce unnecessary API traffic by consolidating requests using supported query parameters.

Example: Good Practice

Instead of making these 2 calls:

Currencies/summary?pairs=CAD/USD
Currencies/summary?pairs=USD/CAD

Make a single call:

Currencies/summary?pairs=CAD/USD,USD/CAD

Another Example:

Instead of making 8 separate metal price calls by currency and metals:

Metals/spot/summary?currency=USD&metals=gold
Metals/spot/summary?currency=USD&metals=silver
Metals/spot/summary?currency=USD&metals=platinum
Metals/spot/summary?currency=USD&metals=palladium
Metals/spot/summary?currency=CAD&metals=gold
Metals/spot/summary?currency=CAD&metals=silver
Metals/spot/summary?currency=CAD&metals=platinum
Metals/spot/summary?currency=CAD&metals=palladium

Make one efficient request:

Metals/spot/summary?currency=USD,CAD&metals=gold,silver,platinum,palladium

Recommended HTTP Headers

Some of the following HTTP headers should be added to your API requests, depending on your use cases.

Accept

The recommended value for this header is “application/json”. If you prefer XML results you can specify “application/xml”, but we recommend JSON for most use cases.

Accept-Encoding

The recommended value for this header is “deflate,gzip”. This will result in compressed results that generally have better performance.

Content-Type

For POST/PUT operations that require a message body, this header should be set to “application/json”.

User-Agent

We recommend setting this to a unique value, such as your tenant ID or tenant alias/catalog subdomain, to allow for easier searching in logs if needed.

Additional Documentation
nFusion CSS best practices

Use nFusion Selectors:

Make sure that the selectors you are using are as specific as possible. This will reduce the likelihood of your CSS not overriding the default CSS.

To find the best selector to use when styling your widgets, use the Developer Console to inspect the widget elements and view the CSS rules that are currently being applied to it. This will give you a better understanding of what CSS you should add and where.

For example, the chart widget applies a default font family using a high-level selector “.nfusionsolutions-com-chart” like so:

.nfusionsolutions-com-chart {

    font-family: ‘Lora’, serif;

}

To override the default you would use the same selector and assign the font family property to the desired font family value.

.nfusionsolutions-com-chart {

    font-family: {my-custom-font}, serif;

}

Other best practices:

  • Use tools and linters to help prevent errors from going undetected and cause your CSS to not work properly. There are various tools and linters like Stylelint and CSSLint that can help you identify and fix issues related to CSS best practices in your code.
  • You can use methods like BEM (Block-Element-Modifier) or SMACSS (Scalable and Modular Architecture for CSS) to structure your CSS. Additionally, grouping related styles and using comments for documentation can help improve code organization

If you’re newer to CSS, you can find numerous online tutorials and articles on CSS best practices. Websites, blogs, and forums like MDN Web Docs, CSS-Tricks, and Stack Overflow are excellent places to start.

Supported Currencies, Metal, Indices, and Benchmarks

To see supported: 

Currencies: Visit our API documentation under Currencies and view the endpoints where the path ends in “supported”

Metals: Visit our API documentation under Metals and view the endpoints where the path ends in “supported”

Indices: Visit our API documentation under Currencies and view the endpoints where the path ends in “supported”

Benchmarks: Visit our API documentation under Metals and view the endpoints where the path contains “benchmark”

Widget types, supported configuration options and query parameters

Configurations are default values that are able to be changed and become the new default for that widget. Query string parameters are values that override the default values of the widget on a per-widget-instance basis. For example, you can use the same chart multiple times with each instance being different due to query string parameters. Let’s say that the default currency within the widgets configurations is set to USD. By adding a query string parameter to one of the chart instances src URLs we can override the currency to something different for only that instance of the chart.

Standard Configurations:

  • Currency: Changes the default currency to be displayed.
  • Unit of Measure: Changes the default unit of measure to be displayed.
  • Auto Update: Can be enabled or disabled (enabled by default).
  • Update Interval: Changes the interval in which the widget updates the prices.
  • Link: When a user clicks within the widget area they would be redirected to the provided URL
  • Timezone: Changes the default timezone to be displayed.
  • Whitelist URL(s): This controls which URLs the widget is allowed to be displayed on.

Standard Query String Operations/Parameters:

  • Symbols (?symbols): Changes the symbols that populate the widget. This operation also has the ability to reorganize the order in which the symbols are displayed.
  • Currency (?currency): Changes the currency that the prices are displayed in.
  • Unit of Measure (?unitofmeasure): Changes the unit of measure that the prices are displayed in.
  • Width (?width): Changes the width of the widget iframe.
  • Height (?height): Changes the height of the widget iframe.

Charts:

Within our chart widgets, there are two main versions, V1 and V2. The only difference between these two versions is the layout of the chart elements. In regard to functionality, both charts are capable of accomplishing the same tasks. That being said, both versions can support the following configurations and query string operations:

Configurations:

  • Display Navigation Bar: This option allows you to either display or hide the navigation bar at the bottom of the chart. (displayed by default)

Query String Operations/Parameters:

  • Selected Symbol (?selected=): Changes the symbol that the chart initially displays.
  • Selected Timeframe (?timeframeindex=): Changes the timeframe that the chart initially displays.
  • Chart Type (?charttype=): Changes the line style that is graphed within the chart area.
  •  

Use this interactive demo of our V1 chart to better understand how the query string parameters work:

Tables:

Within our table widgets, there are six versions, V1 (standard), V2 (carousel), V3(Historical Performance Table), V4 (Annual Historical Performance Table), V5 (Multi-Unit Table), and V6 (Multi-Unit Multi-Currency Table).

V1 & V2:

Similar to the V1 and V2 charts, the only difference between the V1 and V2 tables is the styling and position of table elements.

Configurations:

  • Table Fields: Displays the selected field(s)
    • Ask
    • Bid
    • Change
    • Change Percent
    • High
    • Low
    • Pr. Close
    • Open
    • Last

Query String Parameters: Supports the standard parameters.

V3 (Historical Performance Table):

Our version three table is a historical performance table that displays historical data for a single selected symbol at one day, one week, one month, six months, one year, five years, ten years, and fifteen years. Configurations:

  • Table Fields: Displays the selected field(s)
    • Ask
    • Bid
    • Change
    • High
    • Low

Query String Parameters: Supports the standard parameters.

V4 (Annual Historical Performance Table):

Our version four table displays historical ask and change percent data points for multiple currencies at one-year intervals up to forty years.

Configurations: Supports the standard parameters.

Query String Parameters:

  • Years (?years=): This allows you to determine how many years of data should be displayed
  • Currency (?currency=): A comma-separated list of currencies allows you to select multiple currencies for the data to be presented in

V5 (Multi-Unit Table):

Our version five table displays live spot prices for a single metal in multiple units of measure.

Configurations:

  • Table Fields: Displays the selected field(s)
    • Ask
    • Bid
    • Change
    • Change Percent
    • High
    • Low
    • Pr. Close

Query String Parameters:

  • Unit of Measure (?unitofmeasure=): A comma-separated list of units of measure allows you to select multiple units of measure for the data to be presented in

V6 (Multi-Unit Multi-Currency Table):

Our version six table displays live spot prices for multiple metals in multiple currencies and multiple units of measure.

Configurations: Supports the standard parameters.

Query String Parameters:

  • Unit of Measure (?unitofmeasure=): A comma-separated list of units of measure allows you to select multiple units of measure for the data to be presented in
  • Currency (?currency=): A comma-separated list of currencies allows you to select multiple currencies for the data to be presented in

Ticker:

Our spot price ticker displays real-time data points in a responsive banner-like design.

Configurations:

  • Scrolling (default): This option sets the ticker to continuously scroll from left to right
  • Fixed: This option removes the scrolling effect and displays the ticker elements in a mobile responsive layout.
  • Ticker Fields: Displays the selected field(s)
    • Ask
    • Bid
    • Change
    • Change Percent
    • High
    • Low
    • Pr. Close

Query String Parameters: Supports the standard parameters.

RMD Calculator:

Our RMD (required minimum distribution) Calculator allows users to view their estimated RMD through a user-friendly chart display based on input that is entered such as age, account balance, whether or not there is a primary beneficiary, and estimated rate of return.

Product Page:

Our product page widget utilizes the product catalog and its features including sales channels and product families in order to create a full-page display with live bids and ask prices for the desired products.

Widget Page:

Our widget page allows you to fully utilize all the features of our chart, table, and ticker widgets by encapsulating multiple widgets in a single page layout. Within the widget page, the user has the capability to change the symbol, currency, and unit of measure for every widget instance on the page, all at the same time.

Let's Connect

Learn How We Can Help

If you need technical support or have a question, fill out the form below or click on the button to call. Our support hours are Monday through Friday 8 a.m.–5 p.m. CST.

Name(Required)
Support Area (Required)

Let us help you grow your business

When it comes to quality, functionality, customization, and service, our bullion software solutions are unmatched. Let us help you grow your business.