A used-gear business, rebuilt as one Magento system.
US Camera Pro buys and resells used cameras and lenses. IWD folded their separate quoting, pricing, and eBay app into a single Magento store, with a used-gear pricing engine driven by live eBay comps, customer trade-in quotes, two-way eBay sync, and in-admin shipping labels.
US Camera Pro
US Camera Pro buys pre-owned cameras, lenses, and photography gear from customers and resells it across its storefront and its eBay store. Every acquired unit is unique, graded by condition with its own serial number and shutter count, which makes both pricing and inventory unusually complex, the kind of catalog our Adobe Commerce experts are built for.
Running a used-gear business across two separate apps doesn't scale.
So we engineered it into one Magento system.
Two apps became one
The separate quoting, pricing, and eBay app folded into Magento as native extensions, no more sync layer.
A used-gear pricing engine
Buy prices computed from live eBay sold comps and condition-grade formulas, refreshed daily.
Trade-in quotes, self-serve
A Sell Gear tool and My Quotes turn the internal pricing engine into an online offer.
Condition-graded inventory
Catalog templates spawn unique salable units, each with its grade, serial, and shutter count.
Storefront and eBay in sync
Two-way sync keeps both channels aligned from one catalog, no double listing.
Labels printed in-house
USPS and FedEx labels generated in the Magento admin, with customer tracking.
Engineered,
not assembled.
A used-gear marketplace with unique, graded inventory and live market pricing doesn't fit off-the-shelf Magento. So we built the system that does.
Nine systems. One platform.
Marketplace, payments, shipping, and the custom pricing and quoting engines, wired straight into the one Magento store, not bolted on as a separate app.
PlatformMagento 2The single system the whole business now runs on
MarketplaceeBayIdentity, scraper, selling, and trading APIs
MarketplaceM2E ProTwo-way Magento and eBay catalog syncPaymentsStripeCard payment processing
PaymentsBraintreeSecond card gateway
ShippingFedExIn-admin FedEx label generation
ShippingUSPS (Stamps.com)In-admin USPS labels and postage
PricingPricing EngineeBay-comp-driven used-gear valuation
Trade-inQuote ManagementAdmin and storefront trade-in quoting
Built in phases.
US Camera Pro wasn't a single launch. It moved from two apps to one, then to a self-serve trade-in storefront, to in-house shipping labels, to a front-end refresh, each phase shipped without losing the layer beneath it.
- Phase 01Two systems into one
Migrated the quoting engine, pricing engine, catalog, and eBay services out of a separate app and into Magento as native extensions, plus the admin Quote Management tooling and a bulk catalog import, so the business runs on one platform.
- Phase 02Storefront & trade-in
Shipped the customer Sell Gear quote tool and My Quotes, B2B-versus-consumer pricing, quote PDFs and email with holiday-aware expiry reminders, two-way eBay sync via M2E Pro, and a theme upgrade.
- Phase 03Labels in-house
Added USPS and FedEx shipping-label generation directly in the Magento admin, with configurable handling fees and customer tracking, ending the dependence on eBay to create labels.
- Phase 04Refresh & maintain
A storefront refresh across the homepage, category, and product pages with Core Web Vitals work, plus ongoing platform upkeep as the catalog and channels grow.

One system, not two.
The hard part wasn't any single feature. It was taking a business that ran as two synchronized apps, a custom quoting and pricing engine on one side and a Magento storefront on the other, and folding it into a single Magento system the team can run and grow from one place.
- Pricing on live comps. An eBay sold-listing scraper feeds a valuation engine that prices every unit.
- Unique, graded units. Each acquired camera or lens is its own item with grade, serial, and shutter count.
- One catalog, two channels. Two-way eBay sync keeps the storefront and the eBay store aligned.
Faster offers,
one system to run.
The build was never the point. This is what changed day to day for US Camera Pro's buying desk and storefront.
Get this for your storeInstant, data-backed offers
The pricing engine turns recent eBay sold listings into a buy quote in seconds, so staff stopped hand-pricing every trade-in against comps and buyers get a consistent, defensible number.
Custom builds. Engineered for a used-gear marketplace.
Buying gear from customers, pricing unique graded units against live market comps, and selling across a storefront and eBay is not what stock Magento is built for. So we engineered the quoting, pricing, inventory, sync, and fulfillment layer the business actually runs on. Every build is owned by US Camera Pro.
PlatformCentral-to-Magento Consolidation
What it doesThe business originally ran as two systems: a separate custom app that held the quoting engine, pricing engine, catalog, and eBay services, plus a Magento storefront. We migrated that logic into Magento as native extensions so the whole operation runs as one system.
Why from scratchKeeping two synchronized apps in step was fragile and slow to change. Folding everything into Magento removed the sync layer and put the business on a single, maintainable platform.
PricingUsed-Gear Pricing Engine
What it doesA valuation engine that computes a buy price and buy percentage from formula tables (condition grade, grade ratios, price settings, shutter-count ratios) fed by real eBay sold-listing data, with a daily cron that refreshes a current price for every catalog item.
Why from scratchPricing used gear is judgment-heavy and never fit a generic markup formula. The engine encodes how US Camera Pro actually values gear so an offer is fast, consistent, and grounded in live market comps.
DataeBay Price Scraper
What it doesA scraper that pulls eBay sold and completed listings to source comparable pricing, with carefully encoded queries (a stray + vs % changed result counts dramatically) and a weekly cron that refreshes the comps table behind the pricing engine.
Why from scratchThe pricing engine is only as good as its comps. Scraping real sold prices, accurately, is what makes each quote reflect what gear is actually selling for.
Trade-inQuote Management
What it doesA Quote Management area in the admin: quote lists, create and edit forms, and line-item grids carrying grade, serial number, shutter count, discount reason and percentage, buy price, buy percentage, and retail price, with statuses through the buy workflow.
Why from scratchBuying gear from customers is a workflow Magento does not ship with. Quote Management models the whole trade-in process the buying desk runs every day.
StorefrontSell Gear & My Quotes
What it doesA customer-facing Sell Gear quote tool and a My Quotes area in the account, plus a synonym-aware quote search (so f2.8, f/2.8, and f28 all match) and a quote bonus or adjustment that recalculates each line.
Why from scratchSellers want to see what their gear is worth without a phone call. The storefront tool turns the internal pricing engine into a self-serve quote.
CatalogCondition-Graded Inventory
What it doesA model where the Magento catalog acts as a template (custom attributes for pricing title, quote title, eBay category, price bounds, identifiers) and each acquired unit becomes its own salable item with a condition grade, serial number, and shutter count.
Why from scratchNo two used units are identical. The model treats every camera and lens as a unique graded item while still pricing it against a shared template.
B2BB2B vs Consumer Quote Pricing
What it doesA B2B customer group that sees the exact buy price and full discount and retail detail, while consumers see a price range (one grade above and below), with an admin toggle between range and flat pricing for non-B2B buyers.
Why from scratchTrade partners and walk-in sellers need different levels of detail. Group-based pricing shows each audience the right view of the same quote.
Trade-inQuote PDF & Email Workflow
What it doesGenerated quote PDFs for customer and internal printing, email-a-quote to one or many recipients with automatic account creation, and automated expiry reminders that skip weekends and public holidays and fire a set number of working days before a quote lapses.
Why from scratchQuotes move through email and print, not just the cart. The workflow makes a quote a shareable document and nudges sellers before it expires.
MarketplaceeBay Two-Way Sync
What it doesOngoing two-way synchronization between Magento and the eBay store via M2E Pro: new eBay products pull into Magento and Magento products push to eBay, and an eBay store category feeds the homepage clearance and savings sliders.
Why from scratcheBay is a primary sales channel. Two-way sync keeps both channels current from one catalog instead of listing each unique unit twice.
ShippingIn-Admin Shipping Labels
What it doesUSPS (via a Stamps.com account) and FedEx label generation directly from the Magento admin, replacing rate-only carrier methods, with configurable flat or percentage handling fees, customer tracking in My Account, and tracking details in notification emails.
Why from scratchThe team had been depending on eBay to create labels. Generating USPS and FedEx labels in-house put fulfillment back inside the store, with tracking the customer can see.
SearchTuned Catalog Search
What it doesA MySQL-based catalog search tuned for the used-gear catalog: an all-words, any-order match across product, pricing, and quote titles, admin-managed stop words to filter noise, and quote-search synonyms.
Why from scratchThe catalog could not run Elasticsearch in this environment, so we tuned the MySQL queries and added stop words and synonyms to make search behave the way buyers and staff expect.
DataBulk Catalog Import
What it doesMagento's CSV import extended for the custom catalog attributes for a large template catalog, with validation that caught real data issues (blank prices importing as zero and breaking the scraper's price ranges).
Why from scratchA template catalog this large can't be entered by hand. The extended import loads it cleanly and protects the pricing engine from bad data.
UXCore Website Refresh
What it doesA front-end refresh across the homepage, category, and product pages, layered on the functional build, with Core Web Vitals performance work.
Why from scratchOnce the engine worked, the storefront needed to match. The refresh modernized the buying and selling experience and tightened performance.
Got a store that doesn't fit off-the-shelf?
Consolidate, integrate, and scale. We engineer Magento and Adobe Commerce stores for retailers with custom pricing, marketplace sync, and complex inventory, and we stay for the long run. Tell us what you're up against.


