Shopify

How to charge a custom price on Shopify

Shopify was built to sell things that already have a price. Made-to-order work doesn't: the number depends on the file, the material and the finish. Here are the four mechanisms that let a Shopify store charge a different amount for every job, and the honest failure mode of each.

Updated September 2026~7 min read

The short answer

A Shopify price lives on a variant - a fixed row in a fixed list. To charge an arbitrary amount you either enumerate the possibilities as variants, abuse quantity as a multiplier, or leave the standard cart entirely and create a draft order with a line item you define outright. For a service where the price is a function of an uploaded model, draft orders are the right answer, and an app should be building them for you.

Why variants can't do it

Variants are the wrong shape for continuous pricing. Three materials × five colours × ten size bands is 150 rows you maintain by hand, and it still can't price the part a customer uploads tomorrow, because that part's weight and print time are numbers nobody has computed yet. The list also leaks into everywhere else in Shopify: inventory, reports, feeds, and the variant picker your customer has to scroll.

There is a subtler problem. Even if you could enumerate every price, you would be pricing by declared attributes - the customer's guess at size. Real cost comes from geometry: volume, surface area, wall count, how much support the shape needs. That is why costing a print starts from the mesh, not from a dropdown.

The four mechanisms

1. Variant sprawl

Enumerate what you can and round the rest into bands: "small part - up to 50 g", "medium - up to 150 g". It is legitimate, it needs no app, and plenty of shops run this way. The cost is accuracy: every band is a compromise where you overcharge the cheap end and lose money on the expensive end. Bands work when your catalogue is narrow and your parts are similar. They collapse the moment customers bring their own models.

2. The one-cent quantity hack

Price a product at $0.01 and add it to the cart with quantity 1,140 to charge $11.40. It works. It also means the confirmation email says 1,140 items, weight-based shipping rates see 1,140 units, inventory tracking is meaningless, and every report about units sold and average order value is fiction. Avoid it unless nothing downstream reads those numbers - and something always does.

3. Draft orders

A draft order is an order assembled through the admin API before the customer pays. Its line items can be custom: your own title, your own price, your own attributes, with no variant behind them. Shopify emails an invoice link; when it is paid the draft becomes an ordinary order with ordinary fulfilment, taxes and reporting. This is the mechanism purpose-built for quoted work, and it is what a quoting app uses.

Two things to keep in mind. The buyer pays through an invoice link rather than the normal cart flow, so the journey is slightly different from a catalogue purchase. And because the app computes the price, the app has to be trusted - which is why a price that arrives from a browser should always be recalculated on the server before the draft order is written. A widget that takes the client's number on faith can be edited in the browser console.

4. Cart functions

Shopify Functions can transform cart lines, including price, at checkout. It is the most native-feeling route: the customer stays in the normal cart. It also needs a custom app, a developer, and a deploy pipeline, which puts it out of reach for most single-operator print shops. Worth knowing about; rarely worth building for this problem.

Choosing between them

MechanismAccuracyReporting stays cleanNeeds a developer
Variant bandsApproximateYesNo
Quantity hackExactNoNo
Draft orders (via app)ExactYesNo
Cart functionExactYesYes

What a custom price needs to carry with it

Getting the number right is half the job. The order also has to tell you what you agreed to make, or fulfilment turns into archaeology. Put these on the line item:

  • The file - or a link to it. See letting customers upload files on Shopify.
  • The inputs that set the price - material, colour, infill, quality tier, turnaround, any post-processing.
  • The derived numbers - weight in grams, estimated print time, bounding box. These are what you check the invoice against three weeks later.
  • Your minimum order value, applied before tax, so a 4 g keychain doesn't cost you money to make.

Internal references belong in properties whose names start with an underscore: Shopify hides those from the buyer at checkout but still shows them to you in admin.

Discounts and tax on a quoted price

A quoted price interacts with the rest of your store, and this is where home-made solutions leak. Discount codes need validating against their real rules - active dates, usage limits, minimum purchase, scope - not just matched as a string. Tax-inclusive display has to be decided deliberately, because a B2C shopper in the EU expects the price they see to be the price they pay, while a B2B buyer expects net. And if you zero-rate intra-EU business orders, the VAT ID has to land on the order, which is covered in quoting B2B and bulk work.

Let the geometry set the price

Filaquote reads weight, volume, bounding box and complexity from each uploaded STL, 3MF, STEP or OBJ, applies your rates, tiers and minimum order value, verifies the price again on the server, and writes a Shopify draft order with the file and every pricing input attached.

Add to Shopify

FAQ

Can Shopify calculate a price from customer input?

Not by itself. A product's price lives on its variant, and nothing in the storefront recalculates it from what a shopper types or uploads. Anything dynamic comes from an app that either creates a draft order at the computed price or rewrites the line price with a cart function.

What is a Shopify draft order?

An order you or an app builds in the admin before the customer pays, with line items you define outright - your own title, quantity and price, not tied to a variant. Shopify can email an invoice link, and once it is paid the draft becomes a normal order with normal fulfilment and reporting.

Is the one-cent quantity trick safe?

It works and it will hurt you. Pricing a product at $0.01 and setting quantity to 1,140 gets you $11.40, but the receipt reads as 1,140 items, inventory and shipping rules see 1,140 units, and every analytics number about units sold and average order value is now fiction.

How many variants can one Shopify product have?

Far fewer than a continuous price needs, and the exact cap matters less than the shape of the problem: a variant list is a list. Three materials, five colours and ten size bands is 150 rows you maintain by hand, and it still cannot price a part nobody has measured yet.