Генерация фида товаров в формате 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); } } 

Авито 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 гарантируют, что фид пройдёт модерацию с первого раза. Получите консультацию по вашему проекту уже сегодня. Свяжитесь с нами, чтобы обсудить детали.