For the complete documentation index, see llms.txt. This page is also available as Markdown.

πŸ”„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

Bold Custom Pricing
Dollarlabs equivalent

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

Rows marked "β€”" mean Bold does not document an equivalent, not that one certainly does not exist. Check your own Bold setup before assuming you are losing or gaining a behaviour.

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

  1. In Bold, go to Import/Export and export your pricing.

  2. In Dollarlabs, open the price list and choose Export β†’ Export entire catalog. This is your target shape, and it carries both variantId and sku for 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.

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.

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.liquid

  • In theme.liquid: {%- render 'bold-pr' -%} and a script tag loading cspqb.js from /tools/shappify-csp/…

  • Price markup wrapped in <span class="money" data-product-id="…">

  • <script type="application/json" class="bold-product-json"> after product loops

  • Cart markup carrying data-line-index, data-line-total or data-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.liquid

  • In theme.liquid: {% render 'bold-common' %}{% render 'bold-includes' %}, and a shappify_customer_tags variable

  • A script tag loading csp.js from cp.boldapps.net

  • Spans in the cart template marked Bold-theme-hook-DO-NOT-DELETE

Searching your theme for bold-, shappify and boldapps will surface most of it.

Work on a duplicate, unpublished theme. Bold also offers to help strip their Liquid β€” if your install is old or heavily customised, ask them before you start deleting.

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.

  1. Install Dollarlabs and let the initial catalog setup finish. See Quick start.

  2. Add your tag columns, spelled exactly as the Shopify customer tags are spelled. Tags are case-sensitive.

  3. Import your converted CSV, leaving the price list disabled.

  4. 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.

  5. Duplicate your theme. Everything from here happens on the unpublished copy.

  6. 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.

  7. 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.

  8. Remove Bold's theme code from the duplicate, then re-test the same journey. Watch for prices rendering twice or flickering.

  9. Publish the duplicate theme.

  10. 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.

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