Генерація фіду товарів у форматі CSV/XML для маркетплейсів

При завантаженні товарів на Ozon, Wildberries, Avito кожен маркетплейс диктує свій формат і структуру. Помилка в заголовку або кодуванні — і фід відхилено. Ми розробляємо універсальні генератори, які автоматично підлаштовуються під вимоги майданчика. Наш досвід — понад 50 успішних проєктів для інтер

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

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

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 2062 послуг
Генерація фіду товарів у форматі CSV/XML для маркетплейсів
Простий
від 1 дня до 3 днів

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

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

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

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1467
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1320
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1015
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1276
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1019
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    1019

При завантаженні товарів на Ozon, Wildberries, Avito кожен маркетплейс диктує свій формат і структуру. Помилка в заголовку або кодуванні — і фід відхилено. Ми розробляємо універсальні генератори, які автоматично підлаштовуються під вимоги майданчика. Наш досвід — понад 50 успішних проєктів для інтернет-магазинів з каталогами від 500 до 500 000 товарів. Автоматизація економить до 70% часу на ручну підготовку — замість 4 годин на день ви витрачаєте 10 хвилин на контроль.

Важливо розуміти: фіди — це не просто експорт даних. Це узгоджена робота з API маркетплейсів, врахування лімітів (до 1000 товарів за запит, обмеження на частоту) та коректна обробка зображень. Неправильний фід може призвести до деактивації карток або штрафів від майданчика. Наприклад, на Ozon максимальний розмір файлу — 128 МБ, перевищення викличе помилку. На Wildberries — до 100 000 товарів на один фід.

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

Типові формати по маркетплейсах

Маркетплейс Формат Спосіб передачі
Ozon Excel / CSV / API Seller API v3
Wildberries Excel / API Supplier API
Avito XML (avito-формат) URL фіду
AliExpress CSV Seller Center
Amazon CSV (Flat File) Seller Central / MWS
Rozetka YML / XML URL фіду
Lamoda CSV SFTP
Leroy Merlin XML SFTP / API

Як налаштувати універсальний генератор фідів?

Архітектура будується на патерні Strategy: ядро генератора одне, адаптери під кожен маркетплейс — окремі класи. Це дозволяє легко додавати нові майданчики без зміни основного коду.

interface MarketplaceFeedAdapter { public function getHeaders(): array; public function transform(Product $product): array; public function getFormat(): string; // 'csv' | 'xml' | 'xlsx' public function getDelimiter(): string; } class OzonFeedAdapter implements MarketplaceFeedAdapter { public function getHeaders(): array { return [ 'Артикул', 'Назва товару', 'Опис', 'Ціна', 'Стара ціна', 'ПДВ', 'Кількість', 'Вага, г', 'Ширина, мм', 'Висота, мм', 'Глибина, мм', 'Зображення', 'Категорія', 'Бренд', 'Штрихкод', ]; } public function transform(Product $product): array { return [ $product->sku, $product->name, strip_tags($product->description), $product->price, $product->compare_price ?? '', '20', // ПДВ 20% $product->stock, $product->weight_grams ?? '', $product->width_mm ?? '', $product->height_mm ?? '', $product->depth_mm ?? '', $product->images->pluck('cdn_url')->implode('; '), $product->category?->ozon_category ?? '', $product->brand?->name ?? '', $product->barcode ?? '', ]; } public function getFormat(): string { return 'csv'; } public function getDelimiter(): string { return ';'; } } class AvitoCatalogAdapter implements MarketplaceFeedAdapter { // Avito вимагає XML зі специфічною структурою public function getFormat(): string { return 'xml'; } public function getDelimiter(): string { return ''; } // ... } 
class UniversalFeedGenerator { public function generate(MarketplaceFeedAdapter $adapter, string $outputPath): void { if ($adapter->getFormat() === 'csv') { $this->generateCsv($adapter, $outputPath); } elseif ($adapter->getFormat() === 'xml') { $this->generateXml($adapter, $outputPath); } } private function generateCsv(MarketplaceFeedAdapter $adapter, string $path): void { $fp = fopen($path, 'w'); // UTF-8 BOM для коректного відкриття в Excel fwrite($fp, "\xEF\xBB\xBF"); fputcsv($fp, $adapter->getHeaders(), $adapter->getDelimiter()); Product::with(['images', 'brand', 'category']) ->where('is_active', true) ->chunk(500, function ($products) use ($fp, $adapter) { foreach ($products as $product) { fputcsv($fp, $adapter->transform($product), $adapter->getDelimiter()); } }); fclose($fp); } } 

Avito XML-фід

Avito вимагає специфічний XML-формат з елементами <Ad>:

<?xml version="1.0" encoding="UTF-8"?> <Ads formatVersion="3" target="Avito.ru"> <Ad> <Id>SKU-12345</Id> <AllowEmail>No</AllowEmail> <Title>Кросівки Nike Air Max 270</Title> <Description>Опис товару...</Description> <Category>Одяг, взуття, аксесуари</Category> <GoodsType>Кросівки</GoodsType> <Condition>Нове</Condition> <Price>4990</Price> <Images> <Image url="https://cdn.example.com/product1.jpg"/> <Image url="https://cdn.example.com/product2.jpg"/> </Images> <ContactPhone>+79001234567</ContactPhone> </Ad> </Ads> 

Чому важлива валідація фідів перед відправкою?

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

class FeedValidator { public function validate(array $row, MarketplaceFeedAdapter $adapter): array { $errors = []; if (empty($row[0])) { $errors[] = 'Пустий артикул'; } if (empty($row[1]) || mb_strlen($row[1]) > 255) { $errors[] = 'Некоректна назва'; } if (!is_numeric($row[3]) || $row[3] <= 0) { $errors[] = 'Некоректна ціна'; } return $errors; } } 

Додатково перевіряємо кількість товарів (не повинно бути 0), відповідність категорій та наявність обов'язкових полів для конкретного маркетплейсу. Згідно з Ozon Seller API v3 documentation, обов'язкові поля: артикул, ціна, залишок.

Як доставити фід на маркетплейс?

Спосіб Опис Швидкість
Пряме посилання Файл лежить у storage/public/feeds/, доступний за URL Миттєво
SFTP Відправка на віддалений сервер маркетплейсу До 1 хвилини
API Пряме завантаження через REST API майданчика 5-30 секунд
Email Сповіщення з посиланням або вкладенням 1-2 хвилини

Ми налаштовуємо розклад через Laravel Scheduler та відправляємо сповіщення про помилки в Telegram або на пошту.

Процес роботи

  1. Аналіз вашого каталогу та вимог маркетплейсів.
  2. Проєктування структури фіду та вибір адаптерів.
  3. Розробка генератора з урахуванням N+1 запитів та оптимізації пам'яті (chunk-обробка).
  4. Тестування на тестовому оточенні та валідація всіх полів.
  5. Деплой на прод та налаштування розкладу.
  6. Передача документації та навчання вашої команди.

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

Базовий генератор з одним адаптером — від 1 до 2 робочих днів. Кожен додатковий маркетплейс — від 0,5 до 1 дня. Вартість розраховується індивідуально і залежить від складності каталогу та кількості форматів. Зверніться до нас для точної оцінки.

Що входить у розробку

  • Універсальний генератор з одним або кількома адаптерами.
  • Налаштування розкладу та способів доставки.
  • Валідація даних перед вивантаженням.
  • Інтеграція з вашою CMS або ERP.
  • Документація та консультація.
  • Гарантія коректної роботи протягом місяця після здачі.

Типові помилки при створенні фідів

  • Невідповідність кодування — Excel вимагає UTF-8 BOM, інакше кирилиця відображається кракозябрами.
  • Відсутність обов'язкових полів — у кожного маркетплейсу свій набір required-полів.
  • Перевищення лімітів — довжина назви, кількість зображень, загальний розмір файлу.
  • Некоректні посилання на зображення — URLs мають бути доступні ззовні.
  • Застарілі ціни — фіди потрібно оновлювати за розкладом, інакше товари відхиляють.

Наші інженери з 5-річним досвідом в e-commerce гарантують, що фід пройде модерацію з першого разу. Отримайте консультацію по вашому проєкту вже сьогодні. Зв'яжіться з нами, щоб обговорити деталі.