> ## Documentation Index
> Fetch the complete documentation index at: https://afrizon-admin.tunzaa.co.tz/llms.txt
> Use this file to discover all available pages before exploring further.

# Product approval workflow for marketplace admins

> Understand how products move through the pending, approved, and rejected states, and how to approve, reject, or suspend them as a marketplace admin.

Every product submitted by a vendor goes through an admin review before it can appear on the storefront. Meneja tracks this review through the `verification_status` field, which is separate from the product's lifecycle `status`. As an admin, you decide whether a product meets your marketplace standards — you can approve it, reject it with a reason, or suspend it after it has already been approved. The review actions are available directly from the product table without navigating away from the list.

## Verification status values

The `verification_status` field on a product can be one of four values:

| Value       | Meaning                                                                    |
| ----------- | -------------------------------------------------------------------------- |
| `pending`   | The vendor has submitted the product for review; no admin action taken yet |
| `approved`  | An admin has reviewed and approved the product                             |
| `rejected`  | An admin has rejected the product, with a `rejection_reason` recorded      |
| `suspended` | A previously approved product has been suspended                           |

<Note>
  Only products with `verification_status: "pending"` show **Approve** and **Reject** actions in the table. Products with `verification_status: "approved"` show **Publish/Unpublish** and **Suspend** actions instead.
</Note>

## The review workflow

<Steps>
  <Step title="Vendor submits a product">
    A vendor creates a product through their portal. The product is saved with `verification_status: "pending"`, indicating it is waiting for admin review. It does not appear on the storefront at this stage.
  </Step>

  <Step title="Admin reviews the product">
    In the **Products** list, filter by `verification_status: pending` to see all products awaiting review. Click a product row to open its detail view and inspect the name, description, images, pricing, variants, and category assignments.
  </Step>

  <Step title="Admin approves or rejects">
    Open the row actions menu (the **⋯** icon) on a pending product and choose one of the following:

    * **Approve** — sets `verification_status` to `"approved"` and marks `is_active` to `true`, making the product eligible to appear on the storefront.
    * **Reject** — opens the rejection dialog where you select a reason. Sets `verification_status` to `"rejected"` and records the reason in `rejection_reason`.
  </Step>

  <Step title="Vendor is notified of the outcome">
    The `rejection_reason` is visible to the vendor so they understand why their product was not approved. A rejected product can be re-submitted after the vendor addresses the issues, at which point it returns to `pending` for another review cycle.
  </Step>
</Steps>

## Approving a product

To approve a pending product:

1. Locate the product in the **Products** table. Use the `verification_status: pending` filter to narrow the list.
2. Open the row actions menu and select **Approve**.
3. The product's `verification_status` changes to `"approved"` and `is_active` is set to `true`.

Once approved, the product becomes eligible for storefront display. You can then toggle its published state using the **Publish** or **Unpublish** actions in the row menu.

## Rejecting a product

When a product does not meet your marketplace standards, you can reject it:

1. Open the row actions menu for a pending product and select **Reject**.
2. In the rejection dialog, select one of the predefined reasons:
   * Product quality issues
   * Inadequate product information
   * Pricing issues
   * Policy violation
   * Other (requires a custom reason in the text field)
3. Confirm the rejection.

The product's `verification_status` is set to `"rejected"` and the selected reason is stored in `rejection_reason`.

<Warning>
  The rejection reason is visible to the vendor. Choose a reason that is accurate and specific enough for the vendor to understand what needs to be corrected before resubmitting.
</Warning>

## Suspending an approved product

If an already-approved product later violates marketplace policies or needs to be taken down, you can suspend it without permanently rejecting it:

1. Find the approved product in the table.
2. Open the row actions menu and select **Suspend**.
3. In the dialog, select a reason and confirm.

The product's `verification_status` changes to `"suspended"`. Suspending uses the same reason-selection dialog as rejection, and the reason is also visible to the vendor.

## Re-approving a rejected product

A rejected product can be approved again directly from the table — for example, after the vendor has updated it and the product has been re-submitted. Locate the product filtered by `verification_status: rejected` and select **Approve** from the row actions menu.

## Status badges in the product table

The product table displays two separate badge columns:

| Column              | What it shows                                                                         |
| ------------------- | ------------------------------------------------------------------------------------- |
| **Approval Status** | The `verification_status` value: Pending, Approved, Rejected, or Suspended            |
| **Status**          | Whether the product is published (`is_active: true`) or in draft (`is_active: false`) |

<Info>
  Only `products:update` permission holders can approve, reject, suspend, or toggle the published state of a product. If you do not see these actions in the row menu, contact your administrator to verify your role permissions.
</Info>
