AstroBaaS

Orders & fulfilment

Returns & RMA Management

Paid pluginsize Mplanned, not built

Indicative price, not an offer: EUR 150-300/year or EUR 400 one-off

Generated from docs/plan/paid/returns-rma-management/PLAN.md in the AstroBaaS repository. Nothing described below is implemented — it is the written plan for it.

Merged from duplicate proposals: “Returns & RMA Management”

A return request management system for processing customer returns, issuing return labels, and automating refund or exchange authorization.

The problem

Processing returns manually destroys customer goodwill; tracking and exchanges are chaos.

What it does

  • Create return request (RMA) with reason (defective, wrong item, changed mind, etc.)
  • Generate return shipping label
  • Track return shipment back to warehouse
  • Receive return inspection and logging
  • Process refund or exchange authorization
  • Audit trail: all return states, decisions, refunds

What it deliberately does NOT do

Each boundary carries its reason. A boundary without a reason gets crossed by the next person who reads this.

  • Quality grading — no automated or manual inspection scoring. Reason: manual or vendor-specific.
  • Restocking fees — not configurable per reason. Reason: paid add-on.

Data model

New tables: ReturnRequest {id, orderId, customerId, reason, status (‘requested’|‘label_sent’|‘in_transit’|‘received’|‘inspected’|‘approved’|‘refunded’|‘rejected’), createdAt, receivedAt, decidedAt, decision (‘refund’|‘exchange’|‘reject’), refundAmount (minor units)}. No migration.

API

  • POST /api/returns
  • GET /api/returns/:id
  • POST /api/returns/:id/label
  • PUT /api/returns/:id/status

Every route added here must also appear in src/pages/openapi.json.ts — a test fails the build if it does not.

Admin

Return list: filter by reason, status. RMA detail: show reason, refund amount, inspection notes. Action: approve refund, deny, request exchange.

The seam — why this is paid

Core owns: refund mechanics, return object, status transitions. Paid owns: return logistics, carrier integration, inspection workflow.

Paid business process automation. Core provides basic refunds; RMA with tracking, exchanges, and reverse logistics is paid.

Dependencies

  • Order infrastructure
  • carrier-integrations (for return labels)
  • Refund system

Acceptance checks

Each of these must be able to fail. Before claiming this is done, break the code deliberately and watch each one go red.

  • Creating return marks status as ‘requested’
  • Generating label sends email with return shipping label PDF
  • Admin updating status to ‘refunded’ triggers refund payment
  • Audit log shows all status changes, decision, and timestamp

Risks

Abuse: customer returns used item as defective; mitigation: photos/condition notes required. Fraud: customer returns wrong item; mitigation: inspection step before refund.

Commercial context

Suggested priceEUR 150-300/year or EUR 400 one-off
Rival anchorMirasvit RMA (Returns Management, Exchanges, Refunds)

The anchor is what the nearest equivalent charges on Shopify or Magento today. It is context for a pricing decision, not the decision.


Generated from the commerce plan. See docs/COMMERCE-PLAN.md for the full catalogue and ../../AI-GUIDE.md for how to work on this repository.