Integrating 1C-Bitrix with Avito

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

1C-Bitrix Integration with Avito

Avito is not classic marketplace but classifieds board with marketplace elements. This defines integration specifics: products uploaded as listings via XML feed (Avito Autoload), management via personal account or Avito API. Main complexity — each Avito category has its own set of fields and moderation rules, different from any other marketplace.

Two Integration Channels

1. Avito Autoload (XML feed). Primary method for bulk upload. Seller places XML file on own server, specifies URL in Avito settings: Professional tools → Auto-upload. Avito parses feed on schedule (every few hours).

2. Avito API (https://api.avito.ru/). REST API for managing listings, statistics, messages. Authorization — OAuth 2.0 (client_id + client_secret → access_token).

For 1C-Bitrix integration, usually combination used: feed for catalog upload + API for monitoring statuses and automation.

Avito Autoload Feed Format

Avito XML feed has its own schema, incompatible with YML:

<Ads formatVersion="3" target="Avito.ru">
  <Ad>
    <Id>unique_id</Id>
    <Category>Home Electronics</Category>
    <AdType>Item for resale</AdType>
    <Title>Samsung Galaxy S24 Smartphone</Title>
    <Description>Description text</Description>
    <Price>79990</Price>
    <Images>
      <Image url="https://site.ru/photo1.jpg"/>
      <Image url="https://site.ru/photo2.jpg"/>
    </Images>
    <Address>Moscow, Sample St., 1</Address>
    <ContactMethod>By phone and messages</ContactMethod>
    <!-- Category-specific fields -->
    <GoodsType>Phones</GoodsType>
    <Brand>Samsung</Brand>
    <Model>Galaxy S24</Model>
  </Ad>
</Ads>

Category fields — main complexity. For "Home Electronics" category you need GoodsType, Brand, Model. For "Clothing" — Size, Gender, ClothingType. For "Auto parts" — OEMPartNumber, Brand, PartType. Full category list and fields — in Avito Autoload documentation.

Feed Generation from Bitrix Infoblock

No standard export profile for Avito in Bitrix. Implementation:

Custom PHP script — file /local/avito_feed.php, called via cron or accessible by URL. Logic:

  1. Get infoblock elements via CIBlockElement::GetList() with active and availability filter.
  2. For each element — determine Avito category. Mapping stored in separate element property (PROPERTY_AVITO_CATEGORY) or correspondence table infoblock section → Avito category.
  3. Depending on category — form set of specific tags.
  4. Collect XML and write to file.

Field mapping:

Avito Tag Bitrix Field Note
<Id> Element ID or article Must be stable — ID change = new listing
<Title> NAME Up to 50 characters for most categories
<Description> DETAIL_TEXT Up to 7500 characters, limited HTML
<Price> Catalog price Integer, rubles
<Images> DETAIL_PICTURE + multiple property Up to 10 photos, minimum 400×300
<Address> Fixed or from property Must match address in Avito account

<Id> problem. Avito identifies listing by <Id>. If ID changes (e.g., catalog reindexing in Bitrix) — Avito creates new listing, deletes old. Lost views, statistics, reviews. Use article or external code (XML_ID), not element ID.

<Address> problem. Avito binds listing to address. Feed address must exactly match one of addresses in seller profile. Mismatch — reason for listing rejection.

Avito API: Management and Automation

API used for tasks feed doesn't cover:

  • Get listing statistics. GET /core/v1/items/{item_id}/stats — views, calls, messages. Data can be saved to infoblock custom property for efficiency analysis.
  • Manage listings. PUT /core/v1/items/{item_id} — update fields without feed reload.
  • Get messages. GET /messenger/v3/accounts/{user_id}/chats — automation of responses or forwarding to Bitrix24 CRM.
  • Activate/deactivate. When product ends — deactivate listing via API faster than waiting for feed update.

Working with Trade Offers

Avito doesn't support product variants within one listing. Each SKU (size, color) — separate listing. For online store with size grid this means:

  • T-shirt S, M, L, XL — 4 listings in feed.
  • Each with unique <Id> (e.g., ARTICLE_SIZE).
  • Each with size specified in title or description.

When generating feed, iterate through trade offers infoblock and create separate <Ad> for each offer with non-zero inventory. This significantly increases feed size — for catalog of 1000 products with 4 sizes results in 4000 listings.

Limits and Moderation

Avito limits listing quantity: free limit depends on category (usually 1–5), then — paid packages. For online stores — "For Business" plan with increased limits.

Each listing moderation — 1–24 hours. Common rejection reasons: duplicates (identical photos or description), prohibited items, category mismatch, spammy description.

Integration Timeline

Scenario Timeline
Simple feed, one category, up to 200 products 3–5 days
Multiple categories, field mapping, 1000+ products 1–1.5 weeks
Full integration: feed + API + statistics + CRM 1.5–2 weeks