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_PICTUREorDETAIL_PICTURE - Required properties completion (description, price, category): check before sending to moderation
- Duplicates by SKU within catalog: query
CIBlockElement::GetList()byPROPERTY_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.







