FlashDrop
A Shopify 'crowd discount' app: shoppers pre-order by joining a drop, everyone's price improves as more people join, and orders are settled and charged only after the campaign hits its milestone.
- Crowd-priced
- price improves as more people join
- Pay on settle
- authorized at join, captured at close
- Order-edit settle
- every joiner rewritten to the real price
The problem
Group-buying — where a price drops as more people commit — is a powerful way for a small brand to run a launch, but it's genuinely hard to do correctly on Shopify: you have to hold everyone's order, work out the final discount only after the group forms, and then charge the right amount. FlashDrop does exactly that.
What it does
A merchant creates a drop campaign on a product with a ladder of milestones — each a target number of units and the discount unlocked at that level. Shoppers 'join' through a storefront widget that shows how many have joined and the next milestone; joining places a real order but authorizes payment rather than charging it up front.
When the campaign ends, the backend works out the highest milestone the group actually reached, retroactively applies that discount to every joiner's order using Shopify's order-editing API, and only then captures the deferred payment for the discounted total. A separate live mechanic can also add a free sample to a cart at checkout. It's participation-driven throughout — the price moves with how many people join, not with stock levels.
Key features
A price that improves as the crowd grows
Each new joiner moves the whole group toward the next discount tier, so shoppers have a real reason to share a drop — the more who join, the better everyone's price.
Join now, pay only if it lands
Joining authorizes payment instead of charging it, so a shopper commits without being charged for a discount that only exists once enough people join.
Settled fairly, after the fact
When the drop closes, every joiner's order is retroactively rewritten to the discount the group actually earned before payment is captured — so nobody overpays and the merchant honors the real result.
A live progress widget on the storefront
Shoppers see how many have joined and what the next milestone unlocks, so the group-buy is transparent rather than a leap of faith.
Optional free-sample bundling
A checkout-time mechanic can drop a free sample into the cart, so a merchant can sweeten a drop without a separate promotion tool.
Where it stands
Live on the Shopify App Store, currently unlisted — reachable by direct link rather than public search. Its distinctive core is the deferred-settlement group-buy flow.
Under the hood — for the technically-minded
How it's built
The work is split across two codebases. A Remix admin plus three Shopify extensions — a discount function, a cart-transform function, and a storefront progress widget — handle the merchant UI and the live checkout mechanics. An Elixir/Phoenix backend owns the real settlement engine: the campaign and pre-order data, the order-webhook intake, and the milestone-resolution job.
The heart of it is deferred settlement. Shoppers authorize a payment mandate at join time; a scheduled poller finds ended campaigns, determines the milestone the cumulative join count reached, uses Shopify's order-editing API to retroactively apply that discount to every joiner's order, and only then captures the mandate for the discounted total — a materially riskier and more interesting design than a live cart discount.
The hard problems
Charging the right amount, after the fact
The discount can't be known at checkout — it depends on how many people ultimately join. So payment is authorized but deferred, and a post-campaign job resolves the milestone, rewrites every order via Shopify's order-editing API, and captures the correct total. Reconciling order edits with deferred capture at scale is the genuinely hard part.
Crowd-driven, not stock-driven
The mechanic is purely participation-based: the price ladder is driven by how many shoppers join, never by live inventory levels. That keeps the promise simple and honest — join to improve everyone's price — rather than tying it to stock the shopper can't see.
A clean split between UI and settlement
The Remix side owns the merchant experience and the live checkout functions; the Phoenix side owns the money-critical settlement logic. Keeping the risky, stateful reconciliation in one dedicated backend service — rather than smeared across the storefront app — is what makes the deferred-charge design tractable.
Built with
- Remix
- Elixir/Phoenix
- Shopify Functions
- Postgres
Building something in this space?
Work with us →