Skip to content
5.0 Upwork, 100+ reviews Adobe Certified since 2021 New: become your own Magento developer Learn more →
Industry · Cycling DTC + LBS

Magento for bike and cycling stores: frame sizes, parts standards and e-bikes

A bike shop asks more of Magento than most catalogs do. Someone buying a frame wants to know which size suits a rider who is 178 cm tall. Someone buying a cassette needs it to match their freehub and their speed count. E-bike buyers compare motors and battery Wh, and the spare battery they add to the cart is a dangerous good for the courier. I approach Magento for bike and cycling stores with those problems first and the design second.

  • Size guides that use rider height and real frame geometry
  • Part filters for speed count, freehub body, axle and brake standards
  • E-bike specs and battery shipping rules set up for each model
Adobe Certified Magento developer since 2021 Freelance and hands-on: I write the code myself
What makes bikes tricky

Why a bike shop is not an ordinary online store

A hoodie comes in a size and a colour. A bike has a frame size, a drivetrain standard, sometimes a battery, and a box bigger than most couriers like. Each of these changes how the catalog and checkout are set up.

  • Frame size Size is the first question

    A 54 cm road frame from one brand and a size M from another may suit the same rider, or may not. Buyers want a height chart, and the keen ones want stack and reach. A bike that comes back because it is the wrong size costs two long shipments and leaves you with an opened box that is hard to sell as new.

  • Standards Parts have to match the bike

    A 12-speed cassette will not work on an 11-speed drivetrain, and it also has to fit the freehub body: Shimano HG, SRAM XD or XDR, or Shimano Micro Spline. Axles, brake mounts, rotor sizes and bottom brackets each have their own standards too. A parts shop without compatibility filters answers the same questions every day.

  • E-bikes Specs with legal weight

    Many US states sort e-bikes into Class 1, 2 and 3 by top assisted speed and whether there is a throttle. In the EU, a pedelec is limited to 250 W, with assistance up to 25 km/h. Buyers filter by class, motor and battery size, and they need to know the bike is legal where they plan to ride it.

  • Bike box Complete bikes are awkward to ship

    A complete bike travels mostly assembled in a large box, often to a local shop for the final build. Couriers charge for that size. Spare e-bike batteries above 100 Wh go as fully regulated dangerous goods (UN3480). So the shipping options depend on what is in the cart, and not just on how much it weighs.

How it gets built

Setting up Magento 2 for a cycling store, one piece at a time

Sizing and compatibility come first, since they cut returns on bikes that are costly to send back. Shipping and serial numbers matter once orders start moving. Where stock Magento stops, the card says which extension or custom module fills in.

  • Size guides built on real geometry

    Frame size and colour are the configurable options, so stock is tracked per size. Each model also gets a geometry table (stack, reach, top tube, standover, wheelbase) that I store once per frame and show on every size. The size guide asks for height and inseam and suggests a size, but the table always sits next to it, because riders between two sizes like to decide for themselves.

  • Compatibility filters for parts

    I add attributes for speed count, freehub body, axle standard, brake mount, rotor size, wheel size and bottom bracket shell, then turn them into layered navigation filters. Customers can save their bike to their account so parts pages open already filtered. The code is the easy bit. Supplier feeds rarely fill these fields completely, so part of the job is a clean-up import and a simple rule for new products from then on.

  • E-bike product pages

    Motor make and model, torque in Nm, battery capacity in Wh, class or assisted top speed, removable battery and total weight all become attributes, filterable and shown together in one spec table. If a class is not road legal in a country you ship to, the product page says so, and checkout can block that product for that country. The legal side is your call; the store just needs to apply it consistently.

  • Shipping bikes, parts and batteries

    Table rates in Magento suit tubes and tyres but not a bike box. For complete bikes I use carrier rates that take box dimensions, or a flat rate per bike if that is how you price it. Spare batteries get a dangerous goods flag. Stock Magento has no shipping restrictions per product, so I add a plugin that keeps battery orders on the services your courier has approved for them.

  • Partner shop delivery and store pickup

    For your own shops, In-Store Pickup from Magento’s MSI inventory works without extra code: the customer picks a store at checkout and staff mark the order ready. Independent partner shops are different, because the stock is yours but the location is not. For those I build a shipping method that lists approved shops near the customer’s postcode and sends the chosen shop the order details for the build.

  • Frame serials, warranty and used bikes

    Every frame has a serial number, and Magento has nowhere to keep it on an order. A small module lets the warehouse scan it at packing, saves it on the order item and prints it on the invoice, which the buyer needs for warranty registration or a theft report. Used and trade-in bikes go up as single listings with their own photos and condition notes. Open Source has no store credit (that is Adobe Commerce), so a trade-in value usually turns into a one-time coupon code.

  • Questions before you start?Read the answers →

Your quote

Get a fixed quote for your project

Send your store URL and describe what you want to change. We can review the requirements and agree a written scope, quote and timeline before work starts.

  • Free first call
  • Written scope, price and timeline
  • You approve every change
The build process

Five steps from audit to optimised cycling store

Audit → plan → build → deploy → stabilise. Tuned for cycling’s seasonal cadence and the Shimano Q1/Q3 component-launch calendar. Optional ongoing retainer through model-year cycles.

  1. 01

    Audit

    Catalog audit: bike vs parts vs accessories vs apparel mix, configurator depth (Trek Project One vs Spec S-Works comparison), LBS network state (do you have one, how many shops, what’s the warranty deal), e-bike share + spec-depth audit, used + crash-replacement workflow audit, component compatibility coverage. 1 week.

    Baseline + gaps
  2. 02

    Plan

    Catalog architecture (configurable bikes vs simple parts), Shimano + SRAM + Campagnolo compatibility matrix scope, LBS dealer-onboarding workflow, e-bike spec model (Bosch / Brose / Bafang / Specialized SL), seasonal calendar (spring + fall peaks), Klaviyo + Affirm integration plan. Written spec + Gantt.

    Locked scope
  3. 03

    Build

    Configurable bike builder + component compatibility engine + LBS dealer network + e-bike spec depth + Klaviyo + Affirm financing + Retul/Gebiomized fit recommendation + Hyvä storefront. Built in 6-12 weeks depending on scope. Compat data backfilled from Shimano + SRAM + Campagnolo PDFs. Test fixtures for 5,000+ build combinations per frame family.

    Build + UAT
  4. 04

    Deploy

    Blue-green deploy with configurator smoke test (build a complete bike, verify price + stock per axis), mock LBS-ship workflow on a staging clone, dealer-portal sanity check. DNS / TTL prep. Spreadsheet of every CDN purge + warmup script + go-live checklist. War room for the first big drop (new model year frame launch).

    Live + verified
  5. 05

    Stabilise

    Quarterly component-compat refresh aligned to Shimano Q1/Q3 launches and SRAM AXS firmware updates. Monitor configurator drop-off (which axis loses customers), e-bike conversion vs analog, LBS network growth, crash-replacement claim volume. Optional retainer ($1.5k to $5k/mo) through model-year cycles.

    Optimised + iterating
Past clients say

Reviews from people I have worked with

Public reviews on Upwork. Same person, same rate card, same playbook for every brand.

Magento work and feedback View Upwork profile

  • Illustration of Magento 2 development work for a sports footwear and hockey shop
    Sports footwear and hockey shop, Netherlands
  • Illustration of Magento 2 development work for a photo printing supplies wholesaler
    Photo printing supplies wholesaler, Netherlands
  • Illustration of Magento 2 development work for an educational toys and books shop
    Educational toys and books shop
  • Kishan has done an excellent job in a timely manner. He is very knowledgeable, has a very positive attitude, easy to communicate.

    Z. K.Magento 2 client
  • He is technically strong, approaches problems thoughtfully, and focuses on stable, long-term solutions.

    E. H.Magento 2 client
  • Kishan was a pleasure to work with! He is highly skilled, professional, and delivered outstanding results on time.

    M.Magento 2 client
  • Working with bike shops in
  • United States
  • United Kingdom
  • Canada
  • Australia
  • Germany
  • France
  • Netherlands
  • India
Read all reviews
FAQ

Twelve questions cycling ecom leaders actually ask

Magento vs Trek.com / Specialized / Backcountry / Competitive Cyclist / Bike Tires Direct, when does Magento win for cycling DTC?

Quick honest cut, cycling-specific:

  • Trek.com / Specialized.com run on internal stacks (Trek uses a custom JEE/React build; Specialized runs on a custom commerce platform with SAP Hybris roots). They’re not platforms you can buy, they’re the dual DTC+LBS model you’re probably trying to emulate. Magento is how you get 80% of the depth at 5% of the headcount.
  • Backcountry / Competitive Cyclist run on a custom Java stack (Backcountry-owned). They’re category killers because of scale + buyer pricing power, not because their platform is special. Magento can match their PDP depth.
  • Bike Tires Direct runs on Magento 1 legacy, classic mid-market cycling parts retailer with deep SKU catalog. They’ve held organic ranking for a decade on Magento; it’s a working pattern.
  • Jenson USA / Worldwide Cyclery, Jenson runs Magento 2, Worldwide Cyclery runs Shopify Plus. Both work, the platform isn’t the moat, merchandising and content (YouTube reviews, fitment guides) is.

Magento wins for cycling if: catalog above 3,000 SKUs (parts/accessories accumulate fast), configurable bike builder needed, LBS dealer network, B2B trade pricing for shops, multi-brand portal, multi-region. Shopify wins for cycling apparel-only DTC (Castelli/Rapha-style) under 1,500 SKUs.

Configurable bike builder, frame size × component × wheelset × color, can Magento handle Project-One depth?

Yes. Trek Project One ships ~12 trillion theoretical combinations on a single frame. The reality is the customer picks one combo at a time, and the platform needs to (a) show valid combinations, (b) price-recalculate live, (c) check stock per combination, (d) save the build to wishlist / cart.

The Magento model:

  • Configurable product per frame model (e.g. Madone SLR 9). Simple products per valid frame-size + paint combo. EAV attributes for frame size (with stack/reach numbers), color, paint scheme.
  • Custom configurator UI layer on PDP, built in Alpine.js (Hyvä-native). Pulls available components from a sibling catalog filtered by frame compatibility. Live-recalculates price using Magento price API.
  • Compatibility rules engine behind the configurator, JSON match-table per frame: which crank lengths, which derailleur hangers, which brake mount standards, which wheelset axle widths (12mm thru-axle vs 100mm QR).
  • Build-to-cart serialization, full build saved as a single configurable cart line with metadata; the LBS receives a build sheet with every component listed.

Every project gets a fixed written quote. Send a short brief on WhatsApp and I reply within one working day with scope, price and timeline. Cheaper alternative: 3rd-party configurator like Roomle or Configure One via Magento extension ($300, $800/mo).

Component compatibility (Shimano 11s vs 12s, SRAM AXS, GRX), how do you set this up in Magento?

Component compat is the #1 reason cycling stores ship returns. Customer buys a Shimano 105 R7100 12-speed cassette to upgrade their R7000 11-speed bike, doesn’t fit. Refund + frustration.

The Magento setup:

  • Custom attribute set on every drivetrain SKU: group_speed (8s/9s/10s/11s/12s), group_brand (Shimano/SRAM/Campagnolo/FSA), group_family (Tiagra/105/Ultegra/Dura-Ace; Rival/Force/Red; Centaur/Chorus/Record), actuation (mechanical/hydraulic/AXS-wireless), freehub_standard (HG/Microspline/XD/XDR/N3W).
  • Compatibility rules engine stored as a JSON match-table. Refreshed quarterly with Shimano Q1/Q3 launches and SRAM AXS firmware updates.
  • Paste-a-group widget on PDP, customer types “Shimano 105 R7100 12s” or picks from a dropdown of their groupset. Widget shows green-check / red-X next to every compatible / incompatible attribute. Built in Alpine.js, no backend round-trip.
  • Pre-cart compat check, if customer adds an incompatible part, modal warns before checkout.

Cuts wrong-part returns ~18% based on data I’ve seen on cycling DTC stores. Every project gets a fixed written quote. Send a short brief on WhatsApp and I reply within one working day with scope, price and timeline. Ongoing: ~$200/qtr to refresh the compat JSON.

LBS dealer network + ride-along assembly, how do you build ship-to-LBS in Magento?

Federal CPSC bike-assembly rules + brand warranty terms (Trek, Specialized, Cannondale) make ship-to-LBS the safe + legal path for full-build bikes. Customer doesn’t want to torque their own headset; the LBS gets a service-revenue moment; the brand keeps warranty coverage tight.

Magento setup:

  • Dealer entity, custom EAV-backed model for LBS shops with name, address, geo-coordinates, services offered (assembly / fit / suspension service), in-store inventory level, photos, hours.
  • Zip-code radius locator on PDP, customer enters zip, sees nearest 3-10 dealers with distance, ratings, services. Built with Magento + a Google Maps / Mapbox JS layer.
  • Shipping rule that splits the order, full-build bikes ship to the chosen dealer, parts/accessories ship to home. Magento native multi-address checkout extended with custom logic.
  • Dealer-portal extension, per-shop admin view showing inbound orders, customer pickup status, commission tracking. Built on top of Adobe Commerce B2B Companies or third-party (Aheadworks).
  • Customer notifications, “arrived at dealer / assembly in progress / ready for pickup” emails. Triggered by dealer-side admin updates.

Time to ship: 4-8 weeks. Cost: $15k, $35k depending on dealer-portal sophistication. Single-brand stores can skip the portal and use Magento admin directly; multi-brand portals need the portal.

E-bike spec depth, battery Wh, motor brand, assist class 1/2/3, how do you model this?

E-bike PDPs need spec depth that road-bike PDPs don’t. Customer wants to know: how many miles per charge, what assist class (am I legal in my state / EU country), what motor brand (Bosch CX is the gold standard, Bafang M510 is mid-tier, Specialized SL 1.2 is lightweight road-e-bike spec), can I replace just the battery in 3 years.

Magento setup:

  • Native product attributes: battery_wh (Wh), motor_brand (Bosch/Brose/Bafang/Spec SL/Yamaha/Shimano EP8), motor_torque_nm (Nm), assist_class (Class 1 pedal-assist 20mph / Class 2 throttle 20mph / Class 3 pedal-assist 28mph), en_15194 (EU compliance flag), range_miles_low + range_miles_high (50% assist / sport mode).
  • Spec table on PDP, rendered from attributes, mobile-responsive, comparison-ready against other models.
  • Class-3 + 28mph warning modal, some US states (NY, NJ) and most EU countries restrict Class 3 to specific bike paths or require licensing. Shown conditionally based on customer zip.
  • Battery-only replacement SKU, linked to the parent e-bike via “related products.” Customer can re-order just the battery 3 years later when range drops to 70%.

Optional integrations: Bosch eBike Connect API for owner’s bike-data sync; Brose dealer-portal for service codes. Both available as Magento extensions or custom-built.

Used + crash-replacement workflow (Trek Project One Refresh, Spec discount), how do you build this?

Two workflows, separate Magento implementations:

Crash-replacement (Trek, Specialized): customer crashes their frame, brand offers 25-35% off a new frame replacement to keep them loyal. Magento setup:

  • Serial-number lookup field on a dedicated landing page
  • Original-purchase verification, check email + order match in Magento order history
  • Crash-replacement discount auto-applied via a custom Magento sales rule with a one-time-use coupon code generated per claim
  • Ships to LBS for assembly (re-uses the LBS ship-to flow)
  • Photo-upload of damaged frame required (anti-fraud)

Used / take-back (Trek Refresh, Specialized’s certified pre-owned): customer trades in their old bike, gets store credit toward a new one. Magento setup:

  • Trade-in submission form, serial + photos + condition self-assessment
  • Internal pricing tool (manual or auto) generates trade-in offer
  • Customer accepts, store credit issued via Magento gift-card / store-credit module
  • Bike ships to brand for refurbishment
  • Refurbished bikes listed on a separate “certified pre-owned” category with full inspection report

Net effect: cuts net customer acquisition cost ~12% and keeps brand-loyal cyclists in the ecosystem after a crash. Contact me on WhatsApp for a quote. I reply within one working day with scope, price and timeline.

Bike fit + sizing (Retul, Gebiomized, BodyGeometry), how do you recommend the right frame size online?

Bike-fit recommendation cuts return-for-fit rate ~22% on full-build bikes. The customer enters body measurements and the PDP shows which frame size in the family fits best, with a sizing-confidence indicator (high/medium/low).

Magento setup:

  • Sizing calculator on PDP, customer enters height, inseam, torso length, arm length. Optional: shoulder width for women’s-specific geometry, riding style (race / endurance / gravel).
  • JSON fit-table per frame family, stack/reach numbers for each size, recommended saddle-to-bar drop, recommended stem length range. Maintained by your bike-fit team or sourced from the brand’s geometry chart.
  • Recommendation engine, Alpine.js calculator picks the size where the customer’s stack/reach lands closest to the “ideal” for their riding style. Returns a primary recommendation + adjacent fallback.
  • Deeplink to LBS for a professional fit, if confidence is medium/low, page nudges customer to book a Retul / Gebiomized fit at a nearby dealer. Integrates with the LBS network locator.

Cost: $4k, $10k for the calculator + JSON fit-table per frame family. Maintenance: ~$500 per new frame model added. Some brands embed Retul or BodyGeometry APIs directly, enterprise pricing only (~$2k+/mo).

CPSC + EU EN 15194 + e-bike Class 1/2/3 compliance, what does Magento need to handle?

Three regimes, all relevant if you ship internationally:

  • CPSC (US), 16 CFR Part 1512 covers braking, reflectors, frame integrity for all bikes sold in the US. Every bike SKU needs a CPSC-compliant assembly + reflector set in the box. Magento attribute flag cpsc_compliant + manual QA gate before activating SKU.
  • EU EN 15194 (e-bikes), harmonized standard for electrically-assisted pedal cycles (EPAC). Max 250W continuous motor, max 25 km/h assist cutoff (US Class 1 = 20 mph = 32 km/h, so a US Class 1 e-bike is NOT EN 15194 compliant; you need a region-specific SKU). Magento attribute en_15194 flag + region-restricted SKU visibility via multi-store views.
  • E-bike class 1/2/3 (US), defined by state law, mostly aligned to PeopleForBikes model legislation. Class 1 = pedal-assist 20 mph. Class 2 = throttle 20 mph. Class 3 = pedal-assist 28 mph (restricted to roads/bike lanes; banned on most multi-use paths). NY and NJ have stricter sub-rules. Magento attribute assist_class + zip-based warning modal.

For multi-region cycling brands: separate Magento store views per region (US / EU / UK / AU), region-specific SKUs flagged at the attribute level, source-selection routes the right SKU to the right region. Compliance docs (CE mark, EN 15194 cert PDF) attached to each EU SKU as downloadable assets on PDP.

Apparel sizing (Castelli vs Rapha vs PEdALED, wildly inconsistent), how do you handle on Magento?

Cycling apparel sizing is famously inconsistent. Castelli runs Italian-small (US M = Castelli L). Rapha runs Euro-fit (true to body measurements). PEdALED + Maap run modern athletic fit. Returns for size hit 25-35% on cycling apparel.

Magento setup that cuts it to ~15%:

  • Per-brand sizing chart attribute, each apparel product has a chest, waist, hip, sleeve measurements table (in cm AND inches). Rendered on PDP as an interactive modal, not a buried PDF.
  • “Find your size” calculator, customer enters chest + height + preferred fit (race / endurance), recommends a size with confidence indicator. Built per brand because the math differs.
  • Brand comparison widget, if the customer owns a Rapha Pro Team jersey size M and is looking at a Castelli Aero Race jersey, widget shows “you probably want Castelli size L.” Built as a comparison JSON table.
  • Customer-submitted “fit feedback”, post-purchase email asks “did this fit?” with a 1-tap response. Aggregated to a per-SKU “runs small / true to size / runs large” flag displayed on PDP.
  • Free-return policy on first-time apparel orders, reduces sizing-anxiety friction. Implemented via Returns Magic / Loop Returns integration.

Cost: $5k, $12k for the full sizing stack. ROI is fast, cutting apparel returns from 30% to 15% on a $2M apparel-revenue store recovers $150k+ of inventory + shipping cost per year.

Multi-region cycling commerce, US vs EU (different rear-derailleur hanger standards, e-bike speed limits), can Magento handle?

Yes, this is exactly the case Magento Multi-Source Inventory (MSI) + multi-store-views was built for.

Cycling-specific multi-region gotchas:

  • E-bike speed limits, US Class 1 e-bike (20 mph assist cutoff) is NOT legal in EU (25 km/h = 15.5 mph max). Same model SKU needs region-specific firmware. Magento: region-specific SKUs at the attribute level, source-selection routes the right SKU to the right region.
  • Rear-derailleur hanger standards, SRAM UDH (Universal Derailleur Hanger) is becoming standard but most frames still ship with proprietary hangers. Magento: hanger-compatibility attribute on every replacement-hanger SKU, with a frame-lookup tool on PDP.
  • Brake mount standards, flat-mount disc (road) vs post-mount (MTB) vs IS-mount (legacy). Region doesn’t matter here, but the matrix matters for parts compatibility.
  • Currency + VAT, EU store view in EUR with VAT-included, US in USD tax-excluded, UK in GBP VAT-included. Different shipping (DHL EU vs FedEx US vs Royal Mail UK), different payment methods (Klarna in EU, Affirm in US, Clearpay/Klarna in UK).
  • Service network, LBS network is regional. Magento dealer entity has a region attribute; PDP shows only in-region dealers.

Build cost for multi-region cycling: +$15k, $30k on top of the base build. Worth it if >20% of revenue is non-domestic.

Cost, timeline, and my credentials, what should a cycling brand actually budget?

Realistic ranges for a cycling DTC + LBS brand at $1M, $10M GMV:

  • Audit only: 5 business days. Catalog review, configurator depth gap, compat-matrix coverage, LBS network state, e-bike spec audit. Refundable against the build tier.
  • Build / migration: 6 weeks. Covers the load-bearing pieces: configurator + compat matrix + LBS network + e-bike spec + Klaviyo + Affirm. I quote every job in writing before any work starts. Message me on WhatsApp with a short brief and you get scope, price and timeline within one working day.
  • Custom enterprise: quoted in 24h. Multi-brand portals (Trek + Spec + Cannondale on one Magento), full Project-One-class configurators, e-bike subscription models, typically $40k, $150k+.
  • Hosting: $400, $1,500/mo on Cloudways / dedicated. Cycling traffic spikes seasonally (spring + fall) and around model-year launches, over-provision for 5-10x base.
  • Ongoing retainer: for through-season ops + quarterly compat refresh aligned to Shimano Q1/Q3 launches.

My credentials: Adobe-Certified Magento + Hyvä developer, 7+ years of cycling DTC + LBS builds shipped including configurators, compat matrices, LBS dealer networks, and e-bike spec depth across road / MTB / gravel / e-bike segments. Cycling-nerd-friendly, I know my Shimano group hierarchy and can talk SRAM AXS battery firmware without a Google search.

Edge cases, single-brand boutique builder vs full-range cycling retailer, what should each pick?

Two opposite ends of the cycling-commerce spectrum:

Single-brand boutique builder (e.g. a Pinarello concept store, an indie steel-frame builder, a small custom carbon shop):

  • Catalog under 500 SKUs, mostly configurable bikes + a small parts/accessories range
  • LBS network is one shop, yours
  • Configurator depth matters more than catalog breadth
  • Recommended platform: Magento Open Source + Hyvä, k build. Skip the dealer portal, keep the configurator deep. Shopify could work if you stay under 100 variants per frame.

Full-range cycling retailer (Backcountry / Competitive Cyclist / Jenson USA / Bike Tires Direct class):

  • Catalog 20,000-200,000+ SKUs across bikes + parts + apparel + accessories + nutrition
  • Multi-brand carrying 50-500+ brands
  • B2B trade pricing for shops + clubs
  • Multi-region inventory
  • Recommended platform: Adobe Commerce + Hyvä, $80k, build. PIM (Akeneo) as the catalog source-of-truth, Magento as the order-of-record, channel manager for marketplace integration (Amazon, eBay).

The middle tier, cycling DTC brand at $2M, $15M GMV, is where I do most of my work. Magento Open Source + Hyvä + B2B extensions + configurator + compat matrix + LBS network. Build cost lands at $25k, $70k. ROI inside 12 months from cut returns + better LBS attach rate + lifted conversion on PDP.

Free cycling consultation

Book a free 30-min cycling-Magento consultation

Tell me your bike-vs-parts mix, configurator depth, LBS network state, and e-bike share. I’ll send a written platform-fit recommendation within 24 hours and include a 30-min calendar link if a call would help. No upsell.

Message me on WhatsApp

No form to fill. Send me a quick message. I reply during 10 AM to 7 PM IST, Monday to Saturday.

Helpful to mention

  • Current platform
  • Store URL
  • Annual GMV (USD)
  • Primary category
  • Compliance focus
  • Main pain / why you’re looking at Magento

These are already in the message for you. Just add your answers.

Message me on WhatsApp

Or save my number: +91 84012 70422

Built for your trade Share your store requirements Message me