πMigrating from Bold Custom Pricing
How Bold Custom Pricing's concepts map onto Dollarlabs, what to do with your exported data and your theme, and a cutover checklist you can run without taking the store down.
This is the article to read first if you are moving from Bold Custom Pricing: Wholesale B2B. It maps Bold's vocabulary onto ours, explains what to do with the data you export from Bold, and gives you a cutover order that keeps retail pricing safe throughout.
The short version: your customer tags carry over untouched, your per-group prices become columns in one price list, and your quantity breaks become volume tiers.
Concept mapping
Customer tag
Same thing β a tag column in the price list. Bold's tags are ordinary Shopify customer tags, so there is nothing to re-tag.
Product Pricing Group (products grouped, then discounted per customer group)
No direct equivalent, and none needed. A group in Bold existed to apply one rule across many products; here you set the resulting value on each variant row, and generate those rows with a spreadsheet formula.
Detailed Pricing (per product/variant, Complete plan only)
The default and only model β every row is a variant, every column a tag. Not gated behind a plan tier.
Percent Discount
Discount type Percentage
Price Discount (a set amount off)
Discount type Fixed amount
Set Fixed Price
Discount type Specific price (the default)
Quantity Breaks
Volume tiers, set per tag on each variant
The quantity breaks grid on product pages
The Volume Tiers theme app block
Bulk CSV import/export (Complete plan)
CSV import & export, on every plan
Auto-tagging by spend, order count, country or product purchased (paid tiers)
Not built in. Use Shopify Flow, or take applications through a wholesale form, which can tag the customer on approval.
β
Case multiples: forcing purchase in multiples of a carton size, enforced at checkout
β
Loose unit pricing: full cases at one price, leftover units at another, on the same line
β
Wholesale application forms with an approval queue
β
Payment and delivery method rules: make a tag's pricing conditional on payment method, delivery method or cart subtotal
Two differences that matter
Bold needs theme code to work. We need it only to display.
Bold's own installation guide is explicit that Custom Pricing must be installed into your theme to function, and that "updates need to be done on all theme files that output product prices on the store", typically three to five files.
Dollarlabs applies pricing through Shopify discount functions in the cart and at checkout. That happens whether or not you touch your theme. Our theme blocks exist only so buyers can see the wholesale price before they reach the cart.
The practical consequence during migration: after you remove Bold's theme code and before you add our blocks, your checkout is already correct while your product pages show retail prices. That is an expected intermediate state, not a broken one.
One price list, not layered groups
In Bold, Detailed Pricing overrides Product Pricing Groups, which override storewide customer-tag pricing. Three layers, with a documented precedence order.
Dollarlabs has one price list, in which each variant row holds one value per tag. There are no layers to reason about. If a customer carries two tags that both have a price, the lowest resulting price wins β that is the only precedence rule in the product.
Moving your pricing data
Both apps export a CSV keyed by SKU. The shapes are close, with one structural difference that matters.
Get both files
In Bold, go to Import/Export and export your pricing.
In Dollarlabs, open the price list and choose Export β Export entire catalog. This is your target shape, and it carries both
variantIdandskufor joining.
Know the two formats
Bold's export has a Price Type column whose value applies to the row. From Bold's documentation:
%β a percentage discount-β a fixed amount off the original price$β a fixed price, the new lower price
Ours puts everything in the tag's cell. The complete grammar β prices, tiers, case multiples, loose pricing and discount modes β is documented in CSV import & export. Read that first; it is the target you are converting to.
The one thing that will trip you up. Bold puts each quantity-break tier on its own duplicated row, with a Qty column holding that tier's minimum quantity. We put every tier for a variant in one cell.
So a SKU with three tiers is three rows in Bold and one row here, whose cell reads 1:10;12:9;24:7. Converting is a pivot, not a find-and-replace.
Convert it
With both formats in front of you, the conversion is a spreadsheet job: join on SKU, pivot Bold's per-tier rows into one cell per variant per tag, and translate Price Type into our discount mode.
There is no single recipe that fits every Bold setup, so we deliberately do not publish one β the number of tags, tiers and price types varies too much. Give your Bold export and our format documentation to a spreadsheet or an AI assistant and have it generate the target file, then check a sample of rows by hand before importing.
An empty cell erases that tag's pricing for that variant β it does not mean "leave unchanged". Export first, edit in place, re-import. Never import a partial file that has all tag columns present but blank.
Two more things worth knowing before you plan the timing:
Every variant needs a SKU. Bold's import requires it, and it is what you will join on. Variants with no SKU will silently fail to match.
Bold's side is slow. Their documentation puts pricing sync at about 1,000 variants per hour. On a large catalog, budget an overnight run for any Bold-side export-and-verify loop.
Removing Bold's theme code
Bold installs Liquid into your theme, and uninstalling the app does not remove it. Leftover Bold markup fighting our blocks is a common cause of doubled or flickering prices.
What to look for depends on which version of Bold's install you have.
V3 (their current install):
snippets/bold-pr.liquidIn
theme.liquid:{%- render 'bold-pr' -%}and a script tag loadingcspqb.jsfrom/tools/shappify-csp/β¦Price markup wrapped in
<span class="money" data-product-id="β¦"><script type="application/json" class="bold-product-json">after product loopsCart markup carrying
data-line-index,data-line-totalordata-cart-total
V1 and V2 (older installs):
Snippets:
bold-common.liquid,bold-includes.liquid,bold-product.liquid,bold-variant.liquid,bold-cart.liquid,bold-cart-item.liquid,bold-csp-metafield-variant.liquidIn
theme.liquid:{% render 'bold-common' %}{% render 'bold-includes' %}, and ashappify_customer_tagsvariableA script tag loading
csp.jsfromcp.boldapps.netSpans in the cart template marked
Bold-theme-hook-DO-NOT-DELETE
Searching your theme for bold-, shappify and boldapps will surface most of it.
Cutover checklist
Run both apps side by side while you verify. Dollarlabs discounts nothing until you enable the price list, so it is safe to install and configure long before you touch Bold.
Install Dollarlabs and let the initial catalog setup finish. See Quick start.
Add your tag columns, spelled exactly as the Shopify customer tags are spelled. Tags are case-sensitive.
Import your converted CSV, leaving the price list disabled.
Spot-check the grid. Search for SKUs you know well and confirm each tag column reads what you expect. Check a tiered product and a case-quantity product specifically.
Duplicate your theme. Everything from here happens on the unpublished copy.
Add our storefront blocks to the duplicate: Product Price V2, Collection Pricing, plus Volume Tiers and Validation Message if you use tiers or case quantities.
Enable the price list and test on the duplicate theme's preview link with a real tagged customer. Product page, cart and checkout should all agree.
Remove Bold's theme code from the duplicate, then re-test the same journey. Watch for prices rendering twice or flickering.
Publish the duplicate theme.
Wind Bold down. In Custom Pricing, pause your groups or clear pricing, then uninstall the app once you have watched real orders come through correctly for a day.
Test with an untagged customer too. They should see normal retail prices, with no wholesale pricing and no leftover Bold markup.
Frequently asked, coming from Bold
Do I have to re-tag my customers? No. Bold uses ordinary Shopify customer tags and so do we. Just make sure your column headers match the tag spelling exactly, including case.
What replaces auto-tagging? Shopify Flow can tag on order count or spend. For applications, a wholesale form can create and tag the customer when you approve them.
Can a customer have more than one priced tag? Yes. They pay the lowest resulting price β see how pricing works.
Will my quantity-breaks table look the same? Not identical, but the Volume Tiers block is configurable: column labels, suffixes, whether to show savings, and custom CSS. See Volume tiers & case multiples.
I have tens of thousands of variants. Fine, but import in batches and let each one finish β watch Jobs & history between batches.
Last updated