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:
- In profile, enable "Export file" and specify path (e.g.,
/upload/pricelist/price_opt.csv). - Add cron:
*/30 * * * * php /var/www/bitrix/modules/catalog/load/cat_o_csv.php PROFILE_ID. - Alternative: Bitrix agent
CCatalog::PreGenerateXML(PROFILE_ID)runs viacron_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.

