Streamlining Price List Generation: Automated Export in 1C-Bitrix

Imagine: a wholesaler requests a price list with SKUs, warehouse stock balances, and photos in XLSX format, while the standard Bitrix export only outputs CSV with ID, name, and price. Manual fixes waste hours and multiply errors. Custom product export setup to price lists in 1C-Bitrix solves this wi

Our competencies:

Frequently Asked Questions

Imagine: a wholesaler requests a price list with SKUs, warehouse stock balances, and photos in XLSX format, while the standard Bitrix export only outputs CSV with ID, name, and price. Manual fixes waste hours and multiply errors. Custom product export setup to price lists in 1C-Bitrix solves this without programming. Time savings up to 20 hours per month, maintenance costs drop by 30%, saving up to $500 monthly. On average, clients save $6,000 annually on manual price list preparation. With 5+ years and 50+ projects, we deliver turnkey solutions. Setup costs range from $1500 to $5000 depending on complexity.

Automated export is 10 times faster than manual compilation, as one client reported reducing a 5-hour task to 30 minutes.

A typical scenario: a manager manually compiles a price list from Excel every Friday, resulting in outdated prices and stock. Automatic export on the Bitrix side eliminates this: set schedule, formats, access, and clients get up-to-date files. Setup takes from two days.

What Formats Are Supported?

The catalog module offers profiles in Store → Settings → Catalog Export. Each is a PHP file in /bitrix/modules/catalog/load/.

  • CSV (cat_o_csv.php) — configurable delimiter, fields, encoding. Suitable for Excel, Google Sheets, 1C.
  • Yandex.Market YML (yandex_run.php) — XML feed for marketplaces.
  • CommerceML — XML for 1C exchange, not for price lists. See CommerceML on Wikipedia.

Profile setup: select information block, price type, properties, filter by sections. Output is a file via URL or on disk.

Limitations of Standard CSV

Standard CSV exports limited fields: ID, name, price, section. Real price lists need SKU, brand, warehouse balances, photo links. Each field requires modification. Critical for B2B: different client groups see different prices; one profile equals one price type. For three groups, three profiles. Encoding must match client system (Windows-1251 for 1C, UTF-8 for others). Warehouse balances require a custom handler with CCatalogStoreProduct::GetList().

Custom Export Setup

For non-standard needs, we create a PHP file in /bitrix/php_interface/include/catalog_export/ with two functions: profile settings and export. Typical modifications:

  • Excel format (XLSX). We use PhpSpreadsheet via Composer. Create file with formatting: header with logo, frozen row, auto-width columns. XLSX is slower but better for reporting.
  • Filtering by properties: stock > 0, specific brand, discount.
  • Multiple price types in one file: columns "Retail", "Wholesale", "Dealer".
  • Trade offers in rows: each SKU (size/color) as separate row.

Example: for a wholesale distributor with 15,000 products, five price types, XLSX with conditional formatting (green for in-stock, red for under order). Custom handler using PhpSpreadsheet. Generation takes ~30 seconds, cron interval 30 minutes.

How to Automate Price List Generation?

To automate:

  1. In profile, enable "Export file" and specify path (e.g., /upload/pricelist/price_opt.csv).
  2. Add cron: */30 * * * * php /var/www/bitrix/modules/catalog/load/cat_o_csv.php PROFILE_ID.
  3. Alternative: Bitrix agent CCatalog::PreGenerateXML(PROFILE_ID) runs via cron_events.php.
Format 1000 products 10,000 products 50,000 products
CSV <1 sec 2–5 sec 10–20 sec
XLSX 2–5 sec 15–30 sec 1–3 min
YML 1–3 sec 10–30 sec 1–5 min

Which Format to Choose for B2B Export?

CSV is fast, light, and ideal for Excel and 1C. XLSX with formatting is slower. YML for marketplaces. For 1C compatibility, use CSV with Windows-1251 encoding.

Access Control

The file in /upload/pricelist/ is public. Restrict via:

  • Direct link (manual sharing).
  • .htaccess Basic Auth or PHP script with Bitrix user rights.
  • Token in URL (?token=abc123) checked by PHP wrapper.

Common Errors

  • Wrong encoding: Specify Windows-1251 for 1C, UTF-8 for modern systems.
  • Missing stock: Export actual balances via CCatalogStoreProduct::GetList().
  • Ignoring SKUs: Export trade offers as separate rows or combined variants.

Turnkey Setup Deliverables

We complete in 2-5 days. What's included:

  • Analysis of requirements (price types, formats, access).
  • Creation of export profiles (CSV/YML) or custom handler (XLSX).
  • Configuration of automatic generation (cron/agent).
  • Access organization (tokens, authorization).
  • Documentation and training for your team.
  • 30-day support after launch.

We guarantee stable export operation. Get up-to-date price lists without manual work. Contact us to discuss your project.