Skip to content

How We Built an AI Operations Platform for a Multi-Channel E-Commerce Seller Doing $12M Across 9 Marketplaces

23 min read
GammaEdge Team

How We Built an AI Operations Platform for a Multi-Channel E-Commerce Seller Doing $12M Across 9 Marketplaces

Client: Under NDA — mid-size e-commerce brand (consumer electronics & accessories) | Industry: E-Commerce / Multi-Channel Retail | Channels: Amazon (US, UK, DE, IN), Shopify DTC, eBay, Walmart Marketplace, Etsy, TikTok Shop, Flipkart, Noon, own website (WooCommerce) | SKUs: ~1,400 active | Timeline: ~11 months | Annual Revenue: ~$12M


At a Glance

MetricResult
Support Response Time4+ hours → under 3 minutes
True Profit VisibilityFirst time, per SKU per channel
Stockouts (monthly)Down ~60%
Ad Spend ROIImproved roughly 35%

What Was Going Wrong

The company sells consumer electronics and accessories — phone cases, chargers, cables, audio gear — across nine channels: Amazon (US, UK, Germany, India), Walmart Marketplace, eBay, Etsy (for their custom/branded accessories line), TikTok Shop (growing fast, mostly impulse buys), Flipkart (India), Noon (Middle East), their own Shopify DTC store, and a WooCommerce wholesale site for B2B orders. About 1,400 active SKUs. Revenue around $12M a year. A team of 14 people running the whole operation across all of it.

They were growing, but the growth was making everything harder, not easier.

Nobody knew what was actually profitable. They could tell you gross revenue per channel. But after Amazon's 15% referral fee, FBA storage and fulfillment fees, Shopify's payment processing, eBay's final value fee, return shipping costs, ad spend, and refunds — nobody could answer the basic question: "Are we making money on this SKU?" Their accountant tried building a margin spreadsheet once. It was 47 tabs. He gave up after the Amazon fee structure changed and broke half the formulas.

Nine channels meant nine of everything. Nine dashboards for orders. Nine sets of return policies. Nine customer support inboxes. Nine ad platforms (Amazon PPC, Walmart Connect, eBay Promoted Listings, Etsy Ads, TikTok Ads, Flipkart Ads, Noon Ads, Google Ads for Shopify, and Facebook Ads for the WooCommerce store). The team spent half their day just context-switching between tabs. One person's entire job was copying order data from Seller Central, Walmart Partner Center, and Flipkart Seller Hub into a Google Sheet so the ops manager could see it alongside the DTC numbers. Another person did nothing but reconcile returns across platforms.

Customer support was a mess. About 900 tickets a week across all channels. Amazon's 24-hour response SLA, Walmart's 48-hour window, Flipkart's strict seller rating penalties — each marketplace punishes slow responses differently, but they all punish it. Someone had to be checking every inbox constantly. But most tickets were the same five questions: "Where's my order?", "How do I return this?", "I got the wrong item", "Can I get a refund?", "This arrived damaged." Each one answered manually, each one taking 5–8 minutes.

Inventory was a constant fire. They warehouse in three locations (US, UK, and Dubai for Noon) and use FBA for Amazon, WFS (Walmart Fulfillment Services) for Walmart, and self-fulfillment for everything else. Inventory levels across nine channels weren't synced in real time. They oversold a popular phone case on Prime Day last year — sold 340 units on Amazon that were already committed to Shopify and Flipkart orders. Amazon suspended the listing for 3 weeks. A week later, the same product went out of stock on Walmart because the safety buffer had been eaten up covering the Amazon mess. They estimated the cascade cost them about $45,000 in lost sales across channels.

Repricing was a losing game. On Amazon, the Buy Box is everything — roughly 80% of sales go through it, and price is a major factor. Walmart has a similar "Buy Box" dynamic. Flipkart penalizes sellers who price higher than competing platforms. Even Noon has competitive pricing algorithms. Their competitors were using automated repricing tools on each platform. They were repricing manually, once a day, on their top 50 Amazon SKUs. The other 1,350 SKUs across all nine channels hadn't been repriced in months. Some prices on Noon were still set from launch day — 8 months ago.

Ad spend was a black hole. Running Amazon PPC, Walmart Connect, eBay Promoted Listings, Etsy Ads, TikTok Ads, Flipkart product boosts, Noon sponsored placements, Google Ads for Shopify, and Facebook/Instagram ads for the WooCommerce store. Total ad spend: about $55K/month across all of it. Return on that spend? "Probably positive overall." That was the honest answer. They couldn't attribute sales to specific campaigns across channels with any confidence. TikTok Shop was the worst — driving impulse purchases with high return rates, but nobody could tell if it was net positive or a money pit.

The owner told us: "We're a $12M company running on spreadsheets and gut feelings. I know we're leaving money on the table — I just don't know which table."


What We Built

One platform. One dashboard. One AI layer that sits across all nine channels and does six things: handles customer support, tracks true profitability, manages inventory, optimizes pricing, forecasts demand, and makes ad spend visible. Each piece feeds the others — because in e-commerce, everything is connected. A stockout affects your ad spend (you're paying for clicks on a product you can't sell). A return rate spike affects your profitability. A competitor price drop affects your Buy Box win rate which affects your revenue which affects your reorder quantity.

Step 1: Unified Data Layer (The Unsexy Foundation)

Before we could build anything smart, we needed to get all the data into one place. This took longer than anyone wanted — about 6 weeks of pure integration work.

We connected to Amazon's SP-API (4 marketplaces), Walmart's Marketplace API, eBay's Browse and Fulfillment APIs, Etsy's Open API, TikTok Shop's API, Flipkart's Seller API, Noon's Partner API, Shopify's Admin API, and WooCommerce's REST API. Plus the 3PL APIs for US, UK, and Dubai warehouses, Amazon's FBA inventory reports, and Walmart's WFS reports.

Nine platforms. Each with its own authentication method, rate limits, data formats, webhook structures, and documentation quality. Some were well-documented (Shopify, Amazon). Some were barely documented (Noon's API docs had entire sections that just said "coming soon" — they'd been "coming soon" for a year). TikTok Shop's API was the newest and changed twice during our integration period.

The challenge wasn't connecting the APIs — it was normalizing the data. Amazon reports fees as percentages. Walmart reports them as flat amounts. Flipkart bundles commission and shipping into one line item. Noon charges in AED, Flipkart in INR, Amazon DE in EUR, everyone else in USD or GBP. A "return" on Amazon means something different than a "return" on Walmart (which calls it a "refund event") or Flipkart (which has a separate "reverse pickup" flow).

Product identifiers don't match — the same phone case has an ASIN on Amazon, a Walmart item ID, an eBay item number, an Etsy listing ID, a Flipkart FSN, a Noon partner SKU, a Shopify product ID, and a WooCommerce post ID. We built a canonical product catalog that maps all nine identifiers to a single internal SKU. The seller's product data was in a CSV that hadn't been updated in 8 months. We cleaned up 200+ mismatched mappings before we could even start syncing inventory.

One specific nightmare: Amazon's SP-API has rate limits that change based on your seller tier, and the documentation doesn't always match reality. Flipkart's API would randomly return HTML error pages instead of JSON when overloaded. Noon's webhook delivery was unreliable during UAE business hours — we had to build a polling fallback. Each platform had at least one undocumented quirk that cost us 2–3 days.

Step 2: Customer Support Automation

About 900 tickets a week across all nine channels. We classified them by analyzing 6 months of historical tickets and found that 78% fell into eight categories:

  1. Where is my order? (~35%)
  2. Return/exchange request (~15%)
  3. Refund status (~10%)
  4. Wrong item received (~7%)
  5. Damaged item (~5%)
  6. Cancellation request (~3%)
  7. Product question (pre-purchase) (~2%)
  8. Account/billing question (~1%)

For each category, the AI:

  • Pulls the actual order data (tracking number, carrier status, delivery estimate)
  • Checks the return eligibility against that channel's specific policy (Amazon's A-to-Z rules are different from Shopify's return policy)
  • Drafts a response in the brand's tone
  • Auto-sends if confidence is above the threshold, drafts for human review if not

Every channel has its own messaging rules and quirks. Amazon doesn't let you include external links or marketing language. Walmart has strict templates for certain response types. Flipkart routes all communication through their internal messaging system — you can't email customers directly. TikTok Shop messages live inside the TikTok app, so the tone needs to be shorter and more casual than Amazon (where buyers expect detailed responses). Etsy buyers expect a personal, artisanal feel even on a support message. We built separate response formatters per channel — same intent, different delivery.

The system also handles something the team never had time for: proactive outreach. When a carrier shows a shipment stuck in transit for 3+ days, the system sends the customer a message before they complain. "Hey, we noticed your order is delayed — here's the current status. If it doesn't arrive by [date], we'll send a replacement automatically." This cut "where is my order?" tickets by about 20% on its own.

Confidence thresholds and guardrails — same principle as any AI support system. Auto-respond when confident, draft when unsure, escalate when lost. Hard guardrails: no refunds above a set amount without human approval, no replacement shipments without verifying the tracking data, no communication that violates Amazon's messaging policy (that's an account suspension risk).

After three months: the AI handles about 65% of tickets without human involvement. Average response time went from 4+ hours to under 3 minutes for AI-handled tickets. The two people who were dedicated to customer support now spend about half their time on actual customer relationships — reaching out to repeat buyers, handling VIP issues — and half reviewing the AI's escalated tickets. Nobody was let go; they just do more valuable work now.

Step 3: True Profitability Engine

This is the feature the owner cared about most. "How much am I actually making on each product, on each channel, after everything?"

For every SKU on every channel, the system calculates:

Revenue (net of discounts)
  − Marketplace fee (Amazon referral, eBay final value, Shopify payment processing)
  − Fulfillment cost (FBA fees, self-fulfillment shipping, 3PL fees)
  − Storage cost (FBA monthly/long-term storage, warehouse rent allocated per unit)
  − Ad cost (attributed PPC spend per SKU)
  − Return cost (return shipping + restocking + refund amount)
  − COGS (landed cost including freight, customs, packaging)
  = True profit per unit

Sounds simple. It's not. Amazon's fee structure alone has about 40 variables. FBA storage fees change monthly and depend on product dimensions that Amazon sometimes measures differently than you do. Return costs depend on whether the customer got a refund, an exchange, or a replacement — and whether the returned item is resellable.

We pull fee reports from all nine platforms nightly, match them to orders, and calculate profit at the unit level. The dashboard shows profitability per SKU, per channel, per time period. You can sort by margin and instantly see which products are making money and which ones are quietly losing it.

The first time the owner saw the dashboard, he went quiet for about 30 seconds. Then: "We're losing money on 140 SKUs?" Yes. 140 out of 1,400 products were margin-negative after all fees and ad spend. Some by a lot — a popular USB cable was selling 200 units/month on Amazon at a $0.40 loss per unit because FBA fees had gone up and nobody had adjusted the price. That single SKU was losing about $80/month. Multiply that by 140 products and the picture gets ugly fast.

Within a month of having the dashboard, they killed 60 SKUs, repriced 45, and moved 35 from FBA to self-fulfillment (cheaper for lightweight items). Estimated margin recovery: roughly $15K/month.

Step 4: Inventory Sync & Demand Forecasting

The system maintains a real-time unified inventory count across all channels and both warehouses. When a unit sells on Shopify, the available quantity on Amazon and eBay updates within minutes. No more overselling.

The demand forecasting model predicts how many units of each SKU will sell over the next 30, 60, and 90 days, per channel. It factors in:

  • Historical sales velocity (weighted recent over old)
  • Seasonality (phone case sales spike in September when new phones launch — who knew)
  • Upcoming events (Prime Day, Black Friday, back-to-school)
  • Current ad spend (more ads = more sales = faster depletion)
  • Competitor stockout signals (when a top competitor goes out of stock, your sales jump — the model learned this from historical patterns)

The system generates reorder recommendations: "Order 2,400 units of SKU-1847 by April 15 to avoid stockout on Amazon US. Lead time from supplier: 18 days. Current velocity: 45 units/day."

The forecasting isn't magic — it's a gradient-boosted model trained on 2 years of sales data. Accuracy varies by SKU. High-velocity, stable products (your best-selling phone case) forecast well — within 10–15% of actual sales. New products and highly seasonal items are harder — the model gets within 25–30%, which is still better than the "order what we ordered last time" approach they were using.

Stockouts dropped by roughly 60% in the first four months. The Prime Day overselling incident from the previous year? Didn't happen again.

Step 5: Dynamic Repricing

On Amazon, the Buy Box determines about 80% of sales. Walmart has a similar competitive pricing algorithm. Flipkart penalizes sellers who price higher than competing platforms (they cross-check Amazon India). Price is the game on marketplaces, and each one plays it differently.

The system monitors competitor prices per platform and adjusts pricing automatically, within bounds the seller sets. Rules look like this:

  • "Stay within $0.50 of the lowest FBA price on Amazon, but never go below $X margin"
  • "On Walmart, match the lowest price if we're not winning the Buy Box"
  • "On Flipkart, stay within 3% of our Amazon India price to avoid platform penalties"
  • "If a competitor goes out of stock on any channel, raise price by 8% for 48 hours"
  • "On Noon, reprice in AED but check margin in USD"
  • "Never reprice below landed cost + 15% on any channel"

On Shopify and WooCommerce (their DTC stores), the pricing logic is different — no Buy Box, higher margins, but the system tracks competitor DTC prices and suggests adjustments weekly. On eBay and Etsy, it adjusts promoted listing rates based on visibility data. TikTok Shop gets its own pricing — lower price points work better for impulse buys, so the system suggests TikTok-specific bundles and discounts.

The repricing runs every 15 minutes on Amazon. Before this, they were repricing their top 50 SKUs once a day. The other 1,350 hadn't been touched in months. Buy Box win rate went from about 40% to roughly 65% across their Amazon catalog. That alone drove a meaningful revenue increase — hard to isolate the exact number because other changes were happening simultaneously, but the ops manager estimates it's worth $150K–$200K/year.

Step 6: Ad Spend Visibility & Optimization

They were spending $55K/month on ads across nine platforms with no unified view of what was working. The system pulls campaign performance data from Amazon PPC, Walmart Connect, eBay Promoted Listings, Etsy Ads, TikTok Ads, Flipkart boosts, Noon sponsored placements, Google Ads, and Facebook/Instagram Ads into one dashboard.

The key insight: it connects ad spend to actual profitability, not just revenue. A campaign might look great on Amazon — 10x ROAS (return on ad spend). But if the product it's promoting has a 3% margin after fees, that 10x ROAS is generating almost no actual profit. The dashboard shows ACoS (advertising cost of sales) alongside true margin, so the team can see which campaigns are actually making money.

The AI suggests budget reallocation weekly: "Shift $2,000 from Campaign A (high spend, low margin product) to Campaign C (moderate spend, high margin product, room to scale)." The team reviews and approves — we deliberately didn't make this fully automated. Ad spend decisions involve brand strategy, new product launches, and competitive positioning that the AI doesn't understand yet.

After six months: overall ad spend ROI improved by about 35%. They're spending roughly the same amount ($50–55K/month) but getting more profitable revenue from it. The biggest wins: killing three Amazon campaigns that were driving sales on margin-negative products, discovering that TikTok Shop was net-negative after returns (40% return rate on impulse buys), and reallocating $8K/month from underperforming Noon ads to Flipkart where conversion rates were 3x higher.

Everything connects through the unified data layer. The decision layer is where cross-system intelligence happens — repricing considers inventory levels, ad optimization considers true margin, support considers order and return data.

Technical stack (for the engineering-minded)
  • Backend: Python (FastAPI), async everywhere. Multiple microservices: support-engine, pricing-engine, inventory-sync, analytics-pipeline, ad-optimizer. Message queue (RabbitMQ) for inter-service communication. Each channel integration is its own service — when Amazon's API changes (it does, often), only the Amazon service gets updated.
  • Database: PostgreSQL for transactional data, ClickHouse for analytics (time-series sales data, fee calculations, profitability aggregations). ClickHouse was a deliberate choice over PostgreSQL for analytics — querying margin across 1,400 SKUs × 9 channels × 365 days needs columnar storage. PostgreSQL couldn't keep up once we passed 3 months of data.
  • AI/LLM: OpenAI GPT-4o for customer support (intent classification, response generation). GPT-4o mini for simple WISMO tickets — about 35% of volume, at a fraction of the cost. Support responses are generated with structured prompts that include order data, return policy, and channel-specific messaging rules (Amazon's communication policy is injected as a constraint).
  • Forecasting: LightGBM for demand prediction. Features: 30/60/90-day sales velocity, day-of-week patterns, seasonality curves, ad spend levels, competitor stock signals (scraped from Amazon product pages — when "Currently unavailable" appears on a competitor listing, we flag it). Retrained weekly. Accuracy measured as WMAPE (weighted mean absolute percentage error): ~18% on high-velocity SKUs, ~30% on long-tail.
  • Repricing: Rule-based engine with real-time market data. Polls competitor prices via Amazon's Product Pricing API every 15 minutes. Rules are configurable per SKU or per category. Margin floor is a hard constraint — the system will never reprice below the seller's minimum margin, even if it means losing the Buy Box.
  • Inventory sync: Event-driven. Order webhooks from each platform trigger immediate stock updates across all channels. Shopify webhooks are near-instant. Amazon inventory updates have a 5–15 minute propagation delay (Amazon's side, not ours). eBay is the slowest — up to 30 minutes. We buffer this with a "safety stock" hold per channel during high-velocity periods.
  • Infrastructure: AWS — ECS for services, RDS for PostgreSQL, a self-managed ClickHouse instance on EC2 (managed ClickHouse options were too expensive for their stage), ElastiCache for Redis, S3 for reports and exports. Total infra cost: ~$1,800/month.
  • Monitoring: The Amazon account health metrics (late shipment rate, order defect rate, valid tracking rate) are monitored with alerting thresholds. If late shipment rate approaches 4% (Amazon's suspension threshold), the system sends an alert and suggests priority fulfillment for the oldest unfulfilled orders.

How We Rolled It Out

Months 1–2: Integration hell. Nine marketplace APIs, three warehouse/fulfillment APIs, nine ad platforms, multiple carrier APIs. Each with its own authentication, rate limits, data formats, and undocumented quirks. Amazon's SP-API alone took three weeks. Walmart's API required a separate developer application process. Flipkart's sandbox environment didn't match production behavior. Noon's partner API had entire sections marked "coming soon." TikTok Shop's API changed twice during integration. We built the canonical product catalog during this phase — mapping ASINs to Walmart IDs to eBay item numbers to Flipkart FSNs to Noon SKUs and everything else. Nine identifiers per product. The seller's product data was in a CSV that hadn't been updated in 8 months. We cleaned up 200+ mismatched SKU mappings before we could even start syncing inventory.

Months 3–4: Profitability engine and inventory sync. These came first because they were the owner's top priority and required no AI — just correct data and correct math. The profitability engine went live at month 4. The day the dashboard loaded with real numbers, the owner found the 140 margin-negative SKUs. That was the moment the project stopped being "the tech initiative" and started being "the thing that's saving us money."

Months 5–7: Support automation and repricing. Built the support engine with historical ticket training. Ran in shadow mode for three weeks — AI processed tickets silently while humans handled them normally. Compared 400 responses side by side. Main issues: the AI was too apologetic ("We're so sorry for the inconvenience!" on every message — tone calibration needed), and it didn't understand that Amazon messages can't include Shopify store links (policy violation). Fixed both. Went live with WISMO tickets first, then expanded to returns and refunds.

The repricing engine launched around month 6. Started with their top 100 Amazon SKUs. Within two weeks, Buy Box win rate on those 100 went from 38% to 61%. Expanded to the full catalog by month 7.

Months 8–9: Demand forecasting and ad optimization. The forecasting model needed at least 12 months of clean sales data per SKU. We had that for about 800 of the 1,400 SKUs. For the rest, we used category-level patterns as a proxy — less accurate but better than nothing. The ad optimization dashboard launched at month 9. The team killed three unprofitable campaigns within the first week.

Months 10–11: Stabilization and cross-system tuning. This is where the cross-system intelligence started working. The repricing engine started consulting inventory levels before dropping prices (no point winning the Buy Box if you're about to stock out). The ad optimizer started considering margin data (stop promoting margin-negative products). The support engine started proactively messaging customers about delays before they submitted tickets. Each piece got smarter because it could see what the other pieces knew.


What Changed

Six months after full deployment:

What we measuredBeforeAfterChange
Support response time (avg)4+ hoursUnder 3 min (AI-handled)Dramatically faster
Tickets handled by humans~900/week~315/weekAI handles ~65%
Margin-negative SKUs identifiedUnknown140 (then fixed)First-time visibility
Monthly stockouts~35 events~14 eventsDown ~60%
Amazon Buy Box win rate~40%~65%Significant jump
Ad spend ROIUnclearImproved ~35%Actually measurable now
Time spent on manual data entry~20 hrs/week~2 hrs/weekMostly eliminated
Amazon account health alerts3–4/quarter0 in 6 monthsClean

The person who used to spend their entire day copying data between spreadsheets now runs vendor negotiations. The two support reps now split their time between AI-escalated tickets and customer retention outreach. Nobody was let go.

The biggest impact wasn't any single feature — it was having one place to look. The ops manager told us she used to start every morning opening 8 tabs. Now she opens one dashboard. "I can see everything in 30 seconds. If something's wrong, it's red. If something needs my attention, it's flagged. I don't have to go hunting for problems."

One thing we got wrong: the demand forecasting for new product launches. The model has no history to work from, so it defaults to category averages, which are often way off. They launched a new wireless charger and the model predicted 15 units/day. Actual sales: 60 units/day. They stocked out in 8 days. We're working on incorporating launch-week signals (ad spend ramp, conversion rate trajectory) to adjust forecasts faster, but it's genuinely hard to predict demand for something you've never sold before.

"I've been selling on Amazon for six years. Every year the fees go up and the competition gets worse. For the first time I can actually see where my money goes. We found out we'd been losing money on 140 products for months and didn't know it. That dashboard paid for the entire project in the first quarter."Founder & CEO (name withheld at client's request)


What's Next

The system covers the core operations loop, but there are gaps:

  1. Returns intelligence — right now the system tracks return rates per SKU, but doesn't diagnose why. The team wants pattern detection: "This SKU has a 12% return rate and 60% of return reasons mention 'smaller than expected' — suggest updating the product listing photos with a size reference." We have the return reason data from all nine channels; the analysis layer is on the roadmap.

  2. Listing optimization — Amazon SEO is a dark art. Which keywords drive visibility? How does your title structure affect conversion? The team currently uses a separate tool for this. They want it in the same platform, fed by actual sales and conversion data. We're exploring integrating Amazon's Brand Analytics API for search term data.

  3. Multi-warehouse fulfillment routing — right now the system syncs inventory but doesn't decide where to ship from. A UK customer ordering on Amazon US gets fulfilled from the US warehouse (expensive international shipping). The system should route it from the UK warehouse instead. Requires deeper 3PL integration and shipping cost modeling per origin-destination pair.

  4. Supplier management — the demand forecasting tells them when to reorder but doesn't help manage the supplier relationship. They want automated PO generation, lead time tracking, and supplier performance scoring. It's a different domain but the data foundation is there.


Built by GammaEdge. If you're an e-commerce seller running on multiple channels and your operations are held together with spreadsheets and context-switching — we should talk.

aiecommerceautomationsupportinventoryrepricing

Authored by:

GammaEdge Team

We build and ship production-grade AI systems that drive measurable outcomes. No demos, no slides — just systems that run.

Read more

Want similar results?

Tell us your challenge. We'll scope it and show you the ROI.