Експорт замовлень з сайту в 1С через CommerceML

При ручній передачі замовлень з інтернет-магазину в 1С бухгалтер витрачає 2-3 години щодня, а ймовірність помилки — кожен десятий рядок. Автоматичний експорт товарів з сайту в 1С через CommerceML вирішує цю проблему: дані передаються миттєво, без помилок і втрат. Наша команда має 7+ років досвіду ін

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 2062 послуг
Експорт замовлень з сайту в 1С через CommerceML
Складний
~5 днів

Наші компетенції:

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1418
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1285
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    983
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1242
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    983
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    997

При ручній передачі замовлень з інтернет-магазину в 1С бухгалтер витрачає 2-3 години щодня, а ймовірність помилки — кожен десятий рядок. Автоматичний експорт товарів з сайту в 1С через CommerceML вирішує цю проблему: дані передаються миттєво, без помилок і втрат. Наша команда має 7+ років досвіду інтеграції з 1С, включаючи роботу з типовими та нетиповими конфігураціями. Ми гарантуємо коректну передачу даних та повне логування для налагодження.

Один з наших проєктів — інтернет-магазин з 10 000 замовлень на місяць. Раніше бухгалтер витрачав 3 години щодня на ручне введення, що обходилося компанії в 500 000 гривень зарплати на рік. Після впровадження експорту замовлень за CommerceML2 час скоротився до 10 хвилин на день.

У цій статті розберемо, які дані можна експортувати, як налаштувати генерацію sale.xml, обробити підтвердження та оновити статуси. Також розглянемо типові складнощі та способи їх уникнути.

Експорт замовлень з сайту в 1С через CommerceML: нетривіальна задача?

Проблема не в генерації XML — це прямо. Складнощі починаються при звірці ідентифікаторів: якщо товар створено на сайті (без GUID з 1С), його не можна просто передати — потрібно або створити позицію в 1С, або зіставити за артикулом. Друга проблема — кодування: деякі версії 1С очікують файли в Windows-1251, а сайти зазвичай працюють в UTF-8. Нарешті, тестування вимагає доступу до тестової бази 1С, що не завжди є на початковому етапі.

Які дані передаються в 1С?

Найпоширеніші сценарії експорту:

Дані CommerceML файл Періодичність
Нові замовлення sale.xml За подією / кожні N хвилин
Зміни статусів замовлень sale.xml За подією
Залишки на сайті offers.xml За розкладом
Клієнти (покупці) import.xml За розкладом

Для кожного сценарію налаштовується своя логіка: які саме дані потрапляють в XML, як часто передаються і як обробляються помилки.

Як ми генеруємо sale.xml

Реалізуємо клас SaleXmlGenerator, який будує дерево КоммерческаяИнформация з документами-замовленнями:

class SaleXmlGenerator { public function generate(Collection $orders): string { $xml = new \DOMDocument('1.0', 'UTF-8'); $root = $xml->createElement('КоммерческаяИнформация'); $root->setAttribute('ВерсияСхемы', '2.10'); $xml->appendChild($root); foreach ($orders as $order) { $orderNode = $xml->createElement('Документ'); $this->addElement($xml, $orderNode, 'Ид', $order->uuid); $this->addElement($xml, $orderNode, 'Номер', $order->number); $this->addElement($xml, $orderNode, 'Дата', $order->created_at->format('Y-m-d')); $this->addElement($xml, $orderNode, 'Сумма', number_format($order->total, 2, '.', '')); $this->addElement($xml, $orderNode, 'Валюта', 'RUB'); // Контрагент $client = $xml->createElement('Контрагенты'); $agent = $xml->createElement('Контрагент'); $this->addElement($xml, $agent, 'Наименование', $order->customer_name); $this->addElement($xml, $agent, 'Роль', 'Покупатель'); $client->appendChild($agent); $orderNode->appendChild($client); // Товары $products = $xml->createElement('Товары'); foreach ($order->items as $item) { $product = $xml->createElement('Товар'); $this->addElement($xml, $product, 'Ид', $item->product->onec_guid); $this->addElement($xml, $product, 'Наименование', $item->product->name); $this->addElement($xml, $product, 'Количество', $item->quantity); $this->addElement($xml, $product, 'ЦенаЗаЕдиницу', number_format($item->price, 2, '.', '')); $this->addElement($xml, $product, 'Сумма', number_format($item->total, 2, '.', '')); $products->appendChild($product); } $orderNode->appendChild($products); $root->appendChild($orderNode); } return $xml->saveXML(); } } 

Покрокова інструкція по запуску генерації

  1. Створіть екземпляр SaleXmlGenerator.
  2. Передайте колекцію замовлень (із завантаженими товарами та контрагентами).
  3. Викличте метод generate() — отримайте рядок XML.
  4. Перевірте валідність XML через DOMDocument::validate.
  5. Віддайте файл за запитом 1С через HTTP-ендпоінт.

Як відбувається підтвердження отримання?

Після завантаження замовлень 1С надсилає список GUID успішно оброблених документів. Сайт позначає їх як sent_to_1c = true. Це захищає від повторної передачі і дає прозору історію синхронізації:

public function markAsSent(Request $request): Response { $guids = explode("\n", $request->getContent()); Order::whereIn('uuid', array_filter($guids)) ->update(['sent_to_1c' => true, 'sent_to_1c_at' => now()]); return response('success'); } 

Як оновлюються статуси з 1С?

1С може повертати оновлені статуси замовлень (оплачено, відвантажено, скасовано). Сайт приймає їх через POST-запит і оновлює поля замовлень:

public function processSaleResponse(string $xmlPath): void { $xml = simplexml_load_file($xmlPath); foreach ($xml->Документ as $doc) { $guid = (string) $doc->Ид; $status = (string) $doc->Статус; Order::where('uuid', $guid)->update([ 'status' => $this->mapOnecStatus($status), 'onec_status' => $status, 'status_updated_at' => now(), ]); } } private function mapOnecStatus(string $onecStatus): string { return match($onecStatus) { 'Оплачен' => 'paid', 'Передан на склад' => 'processing', 'Отгружен' => 'shipped', 'Отменён' => 'cancelled', default => 'unknown', }; } 

Що входить в реалізацію експорту?

Ми надаємо:

  • Розробку генератора XML під вашу структуру замовлень
  • Обробку підтверджень та оновлення статусів
  • Механізм зіставлення товарів за артикулом при відсутності GUID
  • Тестування на тестовій базі 1С (доступ надається клієнтом)
  • Документацію та навчання ваших фахівців
  • Підтримку протягом 2 тижнів після здачі

Вартість розраховується індивідуально і залежить від складності інтеграції. Економія часу на ручному введенні — до 500 000 гривень на рік. Середня вартість помилки при ручному введенні — 200 грн. Згідно з документацією CommerceML на 1С:Підприємство.

Типові складнощі

Часті проблеми: порожні GUID товарів (якщо товар створено на сайті), невідповідність кодувань (Windows-1251 vs UTF-8), складності тестування без тестової бази 1С. Для вирішення використовуємо зіставлення за артикулом, конвертацію кодувань та допомогу в налаштуванні тестового середовища.

Порівняння: CommerceML2 проти ручного введення

Критерій CommerceML2 експорт Ручне введення
Час на передачу 50 замовлень 2 хвилини 2-3 години
Ймовірність помилки 0.1% 10%
Витрати Входить в інтеграцію Економія до 500 000 грн/рік

Автоматичний експорт замовлень через CommerceML2 в 60 разів швидше ручного введення і знижує кількість помилок на 90%. Замовте експорт під ключ — отримайте консультацію інженера безкоштовно.

Як перевірити коректність експорту?

Перший крок — переконатися, що в sale.xml потрапили всі замовлення з коректними сумами та GUID. Для цього ми генеруємо XML в тестовому режимі, завантажуємо його в 1С і звіряємо кількість документів. Другий крок — перевірити, що після підтвердження статус замовлень на сайті змінився на "передано в 1С". Третій крок — оновити статус з 1С і переконатися, що сайт його прийняв.

Терміни та вартість

Розробка експорту замовлень з підтвердженням та оновленням статусів займає 8–14 робочих днів. Оцінка точного терміну проводиться після аналізу вашої облікової системи.

Щоб обговорити деталі, залиште заявку — ми зв'яжемося з вами протягом дня.