T
TOMO
Developer Docs
BETA These docs are under partner review. Some features described are roadmap items, not yet shipped. Verify against your sandbox before relying on any contract.

marketplace.buy_used_furniture

Buy pre-owned furniture through TOMO partners (Furlenco resale / Rentomojo resale / OLX / Quikr / FabIndia certified pre-owned / Pepperfry second-life). Condition-graded, partner-inspected, delivery + assembly included where offered.


1. Identity

  • Intent ID: marketplace.buy_used_furniture
  • Vertical: marketplace
  • Verb: buy
  • Noun: used_furniture
  • Primary agent: MarketplaceAgent
  • Sub-agents (DATA only): LogisticsAgent (cross-city moves), SafetyAgent (pest/mould flags)
  • Single-intent → completed action: shortlist → grade-verified listing → checkout → delivery + assembly scheduled
  • Handoff layer: L2

2. NL Coverage

  • "buy used sofa"
  • "second hand dining table hyderabad"
  • "olx sofa set nakkalgutta"
  • "refurbished wardrobe below 15000"
  • "used bed frame queen"
  • "pepperfry second life sofa"
  • "buy used office chair"
  • "used study table for kids"
  • "pre-owned king bed with mattress"

Must NOT match: "sell my furniture", "rent furniture" (→ housing.rent_furniture if exists).


3. Input (slots)

Slot Type Required Source
category enum [sofa, bed, mattress, dining, wardrobe, study, office, storage, decor, kids] HARD NL
material enum [wood, engineered_wood, metal, fabric, leather, rattan, plastic] SOFT NL
budget_max_inr int HARD NL or default
grade_min enum [like_new, superb, good, fair] SOFT default good
delivery_pincode geo HARD saved or NL
assembly_required bool SOFT default true
dimensions_max_cm obj {l,w,h} SOFT NL (lift fit check)

4. Provider Tools

  • search_inventory(filters){listings[], total, partner_id}
  • get_listing_detail(listing_id){grade, condition_report_url, photos[], dimensions, weight_kg, material, pest_treatment_done, partner_price_inr, assembly_offered, delivery_eta_days}
  • lock_listing(listing_id, hold_minutes){lock_id, expires_at}
  • initiate_purchase(lock_id, payment_method){transaction_id}
  • arrange_delivery(transaction_id, address, lift_floor){logistics_id, eta_days, lift_surcharge_inr}
  • schedule_assembly(transaction_id, slot){assembly_id}

5. Response Shape

  • Region 1 — INTELLIGENCE: grade, pest_treatment_done=true, delivery_eta_days, assembly_offered, lift_surcharge_inr, return_window_days
  • Region 2 — summary: "{count} {category} listings, {grade}+, partner-inspected, delivery {eta_days}d."
  • Region 3 — visual: real partner-uploaded photos (NOT AI, NOT catalog stock)
  • Region 4 — NOW pin: earliest delivery slot + lock timer
  • Region 5 — CHOICES: OK (lowest meeting HARD), GOOD (balanced), GREAT (top grade + assembly included + longest warranty)

6. Controlled Vocabularies

  • category: sofa | bed | mattress | dining | wardrobe | study | office | storage | decor | kids
  • material: wood | engineered_wood | metal | fabric | leather | rattan | plastic
  • grade: like_new | superb | good | fair
  • partner: furlenco_resale | rentomojo_resale | olx | quikr | pepperfry_second_life | fabindia_preowned
  • hard_filter_reject: pest_infestation | mould | structural_break | hazardous_chemical_finish
  • assembly_offered: full | partial | none

7. TTBS Dimensions

Dim Weight Signal
Time 0.15 delivery + assembly ETA
Taste 0.30 category fit, material, colour, style match
Budget 0.30 price within budget, assembly+delivery included, no hidden lift fee
Safety 0.25 pest-treated, structural inspection, return window, partner reputation

8. Completion Contract

Complete when:

  1. Buyer checkout confirmed
  2. Partner transaction_id returned
  3. Delivery scheduled (logistics_id present)
  4. CPC: event=purchase_completed, amount_inr = referral fee

9. Widget

  • CHOICES card: 3 tiers with hero photo + price + grade + delivery ETA + lift surcharge chip
  • DETAIL bubble: photo carousel, condition report, dimensions vs lift fit check, return-window chip
  • LIFT CHECK pre-flight: floor + lift dimensions → surcharge calc
  • DELIVERY + ASSEMBLY scheduler

NEVER show AI photos, synthetic ratings, stock images for graded items.


10. Caching Policy

Key TTL Invalidate on
listing:{partner}:{listing_id} 5 min edit, sold
delivery_eta:{pincode} 1 h logistics change
partner:reputation 7 days complaint spike

11. Error Codes

Code Meaning UX
MKT_LISTING_SOLD sold suppress
MKT_LOCK_EXPIRED timed out re-lock
MKT_DELIVERY_REGION_UNSERVICEABLE pincode out alt pickup
MKT_LIFT_FIT_FAIL dimensions exceed lift surface alt route or carpenter assist
MKT_ASSEMBLY_UNAVAILABLE partner can't assemble in pincode DIY note or alt carpenter

12. Sandbox → Production Checklist

  • 100 sample listings across 4 partners
  • Condition report PDF render
  • Delivery ETA 5 pincodes
  • Lift surcharge calc tested
  • CPC HMAC 50 events
  • Grade ENUM audit per partner
  • Anti-fab audit

13. Anti-Fabrication Rules

  • NEVER paid placement
  • NEVER AI photos
  • NEVER stock catalog images for graded furniture
  • NEVER synthesise grade
  • NEVER hide lift surcharge until checkout
  • NEVER claim TOMO assembles (partner/carpenter does)

14. Regulatory Framing

  • Consumer Protection Act 2019 — grade + return window disclosure
  • BIS / IS standards — partner liability for structural safety; child furniture stricter
  • DPDPA 2023 — buyer PII to partner only
  • GST — partner margin scheme on used
  • MoEFCC E-Waste / Plastic Waste Rules — partner responsible for non-resaleable end-of-life routing