Does free shipping sell more mallets, even at a higher sticker price? Here is the hypothesis, the test, and how we run it.
Gongs Unlimited·August 4, 2026·Prepared for Haedar Kasem
Section 01
The Hypothesis
"Do people just see free shipping and are more inclined to buy? Some of these mallets have 18 to 20 dollars in ship cost. If we can bake that into the cost and people are more inclined to buy it, then I think it is worth a shot."
Haedar Kasem · June 16, 2026
Mallets are where this should bite hardest. Shipping is a rounding error on a gong and a quarter of the price on a mallet.
The bar is the item price. The filled portion is what shipping adds on top. On a gong nobody notices. On a mallet it is a quarter of the price, and it appears only after the customer has already decided to buy.
Mallet revenue · 12 mo
$513,336
10.3% of store revenue
Units sold
6,894
Highest volume category
Median price
$68
Across 171 SKUs
Shipping as % of item
26%
Highest in the catalog
Stated as a testable claim
Because shipping is roughly a quarter of the price on a mallet, we believe presenting that cost inside the item price instead of adding it at checkout will lift revenue per visitor on mallet pages. We will know it is true if revenue per visitor rises while conversion rate and mallet attach rate hold.
Section 02
The Test
One variable. We raise the item price by exactly what shipping costs, then set shipping to zero. Both bars below are the same length, because the customer pays the same either way. Only the split moves.
Control · Arm A$87 total
$68 mallet
+ $19 shipping
Variant · Arm B$87 total
$87 malletshipping $0
Identical totals by design. If we changed the price and the shipping by different amounts, a loss could be the price and a win could be the framing, with no way to tell them apart. Holding the total fixed means anything the test finds is the framing effect and nothing else. It also makes the test margin neutral per order, so only the order count can move.
Test parameters
Split
50 / 50, cookie based so returning visitors stay in the same arm
Duration
Four to six weeks. Minimum four full weeks regardless of early results
Primary metric
Revenue per visitor. Prices differ between arms, so conversion rate alone can mislead
Secondary
Conversion rate and add to cart rate, always split by device
Guardrail
Mallet attach rate on gong orders. Most mallets sell as add ons, and those buyers see the price in a cross sell, not on a landing page
Call it when
95% confidence on revenue per visitor, after the four week minimum, device split checked
Stop early only if
Variant conversion drops sharply and holds for a full week
Which mallets are in
Include mallets priced roughly $40 to $150, where shipping is a meaningful share of the price but does not exceed it.
SKU
Units 12 mo
Per unit
In test
Ollihess Rubber Lava Friction
373
$53
Yes
Pair of Unlimited Space Grapes
243
$34
Yes
B Love Single Flumies
209
$111
Yes
Pair of Unlimited Roller Coasters
164
$86
Yes
Paiste Gong Mallets
456
$141
Add when restocked. Sold out, and 12.5% of mallet revenue
Unlimited eGong Wands
405
$19
No. Shipping exceeds the item price
B Love Essential Spectrum
92
$304
No. Shipping is only 6% of the item
Section 03
How It Gets Built
Price testing sits on the top tier of every A/B app because the app has to rewrite the price on the fly and hold it through checkout. We avoid that entirely by making the variant a real product. Duplicate the mallets at the higher price, then just split traffic between two URLs.
Both arms are ordinary Shopify products with ordinary prices, so nothing has to be rewritten at checkout. That removes the single biggest failure mode of price testing apps, where the variant price reverts somewhere between cart and checkout.
What it costs
Duplicate products, split URLShogun Pro, or Elevate Basic $49
$39≈ $78 for a six week test
App rewrites the priceElevate Standard
$99
App rewrites the priceShoplift Advanced
$299price testing still beta · shipping not documented
App rewrites the priceShogun Unlimited · Intelligems Plus
$499≈ $998 for the same six weeks
Monthly cost of the plan that can actually run this test. Same test, same read, 92% less than the Shogun price testing tier. Shopify's own free Rollouts feature cannot do it either way, since it swaps themes only and explicitly excludes price and shipping.
Split on site traffic
A split URL test redirects a share of everyone who reaches the mallet page, so we keep full traffic volume. That matters, because the power math is already tight.
Not through Google Ads
Routing the two URLs through Shopping or PMax breaks the test. Both SKUs sit in the same feed and the same auction, and Google serves whichever it predicts converts better. That prediction is the exact thing we are measuring, so the split stops being random. Meta is valid but far too thin on mallet traffic.
Section 04
How The Free Shipping Works
With a shipping profile, not a discount code. The obvious route is the wrong one, and the difference shows up in mixed carts.
Shopify free shipping discounts apply to the entire order and cannot be scoped to products, so in a mixed cart they zero out the gong too. A shipping profile splits the cart into sub carts, prices each separately, then adds them back together. That is native behaviour and it is exactly what the test needs.
Create the profile. Settings, Shipping and delivery, new profile named Mallet Free Shipping Test.
Add only the duplicate SKUs. Originals stay in the General profile on current calculated rates, which is the control arm.
Flat rate of $0.00 on the domestic zone, named FREE Shipping. Leave Hawaii, Alaska, Puerto Rico and international on calculated rates, matching how your existing free shipping SKUs already work.
Add the badge to the duplicate pages. Shopify does not surface this by itself, and the badge is the part of the test the customer actually sees.
One quirk to expect at checkout
Shopify adds rates with the same name together. When names differ across profiles it takes the cheapest from each and shows a single merged line labelled Shipping. So a mallet only cart visibly shows FREE Shipping, but a mixed cart shows one combined line and the customer never sees the word free. Another reason this design reads the standalone shopper cleanly and the attach buyer poorly.
Section 05
Running It
Week 0
Traffic check
Go or no go on the whole project
Week 1
Build
Duplicates, profile, reviews, feed exclusion
Week 2
QA
Real test order through each arm
Weeks 3 to 8
Run · no changes
Four week minimum. No peeking decisions, no pricing or feed edits
Week 9
Read
RPV, device split, attach guardrail
Nothing gets bought before the week 0 traffic check clears.
Week 0 decides whether the rest happens
Mallet pages get 596 entry sessions a month, which powers nothing. But a split URL test reaches everyone who views the page, including the larger group arriving from gong pages and collections. Your unit volume implies roughly 6,400 views a month, which would put a 20% lift within reach in about six weeks. That is an estimate, not a measurement, and two of your GA4 exports disagree with each other by 11x on total sessions, so it needs verifying directly in the account before we commit.
The four things duplicate products cost us
Issue
Fix
Reviews do not carry over. The duplicate starts at zero, which biases against the variant for a reason unrelated to shipping
Sync reviews to the duplicate before launch. Non negotiable
Merchant Center duplicates. Two near identical products at different prices can trip duplicate product policy
Exclude the duplicates from the product feed. They only serve on site traffic
Duplicate content. Two URLs, same copy
Noindex the duplicate and canonical it to the original
Shared inventory. Two SKUs, one physical stock pool
Run on deep stock SKUs and monitor, or use an inventory sync app
The one limitation we cannot engineer away
The duplicate will not appear in cross sell and related product modules, which is where a large share of mallets actually sell. This design measures the standalone mallet shopper cleanly and tells us nothing about the attach buyer. Worth accepting at this cost difference, but a win here is a win on standalone traffic only, and cross sell needs its own rollout and its own read.
What we need from you
GA4 access
For the week 0 traffic check. Blocking.
Real shipping cost
Charged versus actual on recent mallet orders. Sets the variant price. Blocking.
Theme migration status
Complete, or scheduled outside the window. A migration mid test corrupts both arms. Blocking.