Setting up moderation for sellers' products on the 1C-Bitrix marketplace

Our company is engaged in the development, support and maintenance of Bitrix and Bitrix24 solutions of any complexity. From simple one-page sites to complex online stores, CRM systems with 1C and telephony integration. The experience of developers is confirmed by certificates from the vendor.
Our competencies:
Development stages

Product Moderation Setup for Sellers on 1C-Bitrix Marketplace

Without moderation on a marketplace, sellers publish everything indiscriminately: duplicates, forbidden products, product cards without images, with incorrect prices. Moderation is the process of checking a product before publication, which needs to be automated as much as possible and made transparent to the seller.

Technical Implementation of Status Model

Each product in an infoblock receives a UF-field for moderation status: UF_MODERATION_STATUS (type — string or reference). Values:

  • draft — seller has not submitted for review
  • pending — awaiting review by moderator
  • approved — approved, product is active (ACTIVE = Y)
  • rejected — rejected with reason specified
  • revision — revisions needed (soft refusal)

When a seller adds a product, ACTIVE = N and UF_MODERATION_STATUS = 'pending' are set. The OnAfterIBlockElementAdd event handler records submission time and creates a notification for moderators.

Moderator Interface

A separate page in /bitrix/admin/ or in a custom section for moderators. Queue of products for review — query from infoblock filtered by UF_MODERATION_STATUS = 'pending', sorted by creation date.

Moderation card: product preview, all fields, images. Buttons: "Approve", "Reject", "Request Revision". On rejection — mandatory field with reason (from reference book + free text).

After moderator's decision: UF_MODERATION_STATUS and ACTIVE are updated, seller receives notification via CEvent::Send() with rejection reason (if applicable).

Automatic Checks

Some checks can be automated before manual moderation:

  • Image presence (minimum 1 photo): check via CIBlockElement::GetByID()PREVIEW_PICTURE or DETAIL_PICTURE
  • Required properties completion (description, price, category): check before sending to moderation
  • Duplicates by SKU within catalog: query CIBlockElement::GetList() by PROPERTY_ARTICLE = X

Automatically rejected products receive auto_rejected status with specific reason. Seller corrects and resubmits.

Timeline

Status model setup, moderator interface, and notifications — 1–2 weeks. Adding automatic checks — additional 3–5 days.