Shop It Docs
Developer Resourcesreview

Testimonials

Admin-managed testimonial reviews for storefront trust and marketing surfaces.

Purpose

Testimonials solve a different problem from product reviews:

  • no product id is required
  • no order id is required
  • no customer ownership verification is required
  • admin authors and manages the records directly

This makes them a better fit for:

  • homepage review carousels
  • service satisfaction highlights
  • delivery/support trust sections
  • landing pages that need social proof before product selection

Testimonial Entity

Fields:

  • name
  • rating
  • comment
  • imageUrl?
  • isVisible
  • order
  • createdAt
  • updatedAt

Admin Endpoints

List testimonials

GET /api/admin/reviews/testimonials

Supports:

  • pagination
  • search
  • visibility filtering
  • sort and order

Create testimonial

POST /api/admin/reviews/testimonials

Typical payload:

{
  "name": "Navneet Verma",
  "rating": 5,
  "comment": "I bought a Lenovo laptop from IT Mart and the whole process felt fast, clear, and trustworthy.",
  "imageUrl": "https://cdn.itmart.example/testimonials/navneet-verma.jpg",
  "isVisible": true,
  "order": 0
}

Update testimonial

PATCH /api/admin/reviews/testimonials/:id

Allows:

  • text changes
  • star rating changes
  • image changes
  • visibility toggling
  • ordering changes

Delete testimonial

DELETE /api/admin/reviews/testimonials/:id

V1 uses hard delete because testimonials are independent content rows with no downstream foreign-key consumers yet.

Public Endpoints

  • GET /api/reviews/testimonials
  • GET /api/mobile/reviews/testimonials

These return:

  • only visible rows
  • paginated data
  • optional exact rating filter

Merchandising Behavior

order is the primary presentation control. This lets admins pin stronger testimonials to the top without changing timestamps.

Recommended frontend behavior:

  • sort by API result order
  • treat imageUrl as optional
  • support text-only testimonial cards gracefully

V1 Non-Goals

  • no testimonial detail endpoint
  • no slug
  • no rich profile fields like company or role
  • no link to products, orders, or blog posts
  • no moderation status for testimonials