Setting up product comparison in 1C-Bitrix

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
Latest works
  • image_website-b2b-advance_0.png
    B2B ADVANCE company website development
    1175
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Website development for FIXPER company
    811
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Development based on Bitrix, Bitrix24, 1C for the company Development of an Online Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Development based on 1C Enterprise for MIRSANBEL
    747
  • image_crm_dolbimby_434_0.webp
    Website development on CRM Bitrix24 for DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Development based on Bitrix24 for the company TECHNOTORGKOMPLEKS
    976

Product Comparison Configuration in 1C-Bitrix

Product comparison functionality in Bitrix is part of the catalog module. Allows customers to add several products to comparison list and view their characteristics in comparison table. Without proper property configuration, the comparison table will be empty or uninformative.

Components for Product Comparison

Comparison is implemented by two components:

  • bitrix:catalog.compare.button — "Add to comparison" button in product card
  • bitrix:catalog.compare — page with comparison table

List of compared products is stored in user session (for guests) or in b_catalog_compare (for authorized users, if saving enabled).

Configuring Displayed Properties

In comparison table only infoblock properties with enabled flag "Show in comparison" (IN_COMPARE = Y in table b_iblock_property) are displayed.

Content → Infoblocks → [catalog infoblock] → Properties → [property] → Participate in comparison

For proper comparison you need:

  1. Enable flag only for meaningful technical characteristics
  2. Do not enable for text descriptions and fields with unique values
  3. Ensure property values are filled uniformly (not "220V" and "220 Volts")

Connecting Components

On catalog page or product card the button is connected:

$APPLICATION->IncludeComponent('bitrix:catalog.compare.button', '', [
    'IBLOCK_ID'       => 5,
    'COMPARE_URL'     => '/catalog/compare/',
    'PRODUCT_ID'      => $arResult['ID'],
    'COMPARE_STORAGE' => 'SESSION', // or 'USER' for profile saving
]);

Comparison page (/catalog/compare/):

$APPLICATION->IncludeComponent('bitrix:catalog.compare', '', [
    'IBLOCK_ID'   => 5,
    'COMPARE_URL' => '/catalog/compare/',
    'PAGE_SIZE'   => 3, // number of products in table
]);

Limitations and Common Issues

  • Comparison only within one infoblock — standard component doesn't support comparing products from different infoblocks
  • Trade offers — main products are compared, not SKUs. To compare SKUs custom template modification needed
  • Mobile adaptation — wide comparison table doesn't work well on mobile, requires template modification

Timeframe

Basic product comparison setup with necessary properties — 2–4 hours. Custom template with mobile adaptation and SKU comparison — 4–8 hours.