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 | kidsmaterial: wood | engineered_wood | metal | fabric | leather | rattan | plasticgrade: like_new | superb | good | fairpartner: furlenco_resale | rentomojo_resale | olx | quikr | pepperfry_second_life | fabindia_preownedhard_filter_reject: pest_infestation | mould | structural_break | hazardous_chemical_finishassembly_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:
- Buyer checkout confirmed
- Partner
transaction_idreturned - Delivery scheduled (
logistics_idpresent) - 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