devpilot.
К выбору примеров

УЧЕБНЫЙ ПРИМЕР

Подготовка каталога к импорту

Измените строки, проверьте ошибку и получите структуру в браузере.

DEMOБез выдуманных показателей продаж
Холст:

Это ширина демонстрационного холста. Она не заменяет проверку настоящего устройства.

DEMO / csv-import

Подготовка каталога к импорту

Перед обработкой выгрузки товаров нужно убедиться, что в ней есть артикул, название и корректный остаток. Демонстрация превращает вставленный текст с колонками sku;name;stock в объекты JSON и показывает ошибки, которые нельзя пропускать в дальнейший учёт.

Открыть рабочую демонстрацию

Учебный концепт · вымышленная компания · без отправки.

Из таблицы — в проверенные строки

  1. 01Учебный CSV
  2. 02Проверка полей
  3. 03Структура JSON

Измените учебную строку, затем попробуйте неверный остаток. Парсер покажет ошибку с причиной; импорт в рабочую систему не выполняется.

ОБРАБОТКА ДАННЫХLOCAL / JS

CSV → JSON

Помогает подготовить данные к импорту и исправить ошибки структуры и значений до сохранения.

Подготовка каталога к импорту

Измените пример и запустите проверку.

Результат преобразования

Файл не загружается, остатки в учётной системе не меняются.

Для запуска нужен JavaScript. Разбор задачи и фрагмент кода доступны ниже.

Код, который можно попробовать

Фрагмент функции, которая выполняет преобразование в этой демонстрации.

function normalizeCatalogRows(rows) {
  if (!Array.isArray(rows) || rows.length < 2) throw new Error('CSV_EMPTY');
  if (rows.length > 51) throw new Error('CSV_LIMIT');
  if (!Array.isArray(rows[0]) || rows[0].length !== 3) throw new Error('CSV_HEADERS');
  const headers = rows[0].map((cell, index) => {
    if (typeof cell !== 'string') throw new Error('CSV_HEADERS');
    return (index === 0 ? cell.replace(/^\uFEFF/, '') : cell).trim();
  });
  const required = ['sku', 'name', 'stock'];
  if (new Set(headers).size !== 3 || !required.every(key => headers.includes(key))) {
    throw new Error('CSV_HEADERS');
  }

  const seen = new Set();
  return rows.slice(1).map((row,index) => {
    const fail=(code,field='')=>{const error=new Error(code);error.record=index+1;error.field=field;throw error;};
    if (!Array.isArray(row) || row.length !== 3 || row.some(cell => typeof cell !== 'string')) {
      fail('CSV_COLUMNS');
    }
    const cells = row.map(cell => cell.trim());
    if (cells.some(cell => cell === '')) fail('CSV_EMPTY_CELL',headers[cells.findIndex(cell=>cell==='')]);
    const sku = cells[headers.indexOf('sku')];
    const name = cells[headers.indexOf('name')];
    const rawStock = cells[headers.indexOf('stock')];
    const stock = Number(rawStock);
    if (!/^\d+$/.test(rawStock) || !Number.isSafeInteger(stock) || stock < 0 || stock > 1000000) {
      fail('CSV_STOCK','stock');
    }
    const identity = sku.toLowerCase();
    if (seen.has(identity)) fail('CSV_DUPLICATE_SKU','sku');
    seen.add(identity);
    return {sku, name, stock};
  });
}

Локальная демонстрация: текст обрабатывается в браузере без загрузки файла, сервера и сохранения данных.

Только текст, без HTML. Изменения остаются во вкладке.

Задача в этом сценарии

Перед обработкой выгрузки товаров нужно убедиться, что в ней есть артикул, название и корректный остаток. Демонстрация превращает вставленный текст с колонками sku;name;stock в объекты JSON и показывает ошибки, которые нельзя пропускать в дальнейший учёт.

Как устроено решение

  • Сначала посмотрите на обещанный результат, затем попробуйте действие в демонстрации.
  • Локальные результаты не являются отправкой, заказом или коммерческими показателями.

Промежуточные материалы

  1. Исходная задача и ограничения → Перед обработкой выгрузки товаров нужно убедиться, что в ней есть артикул, название и корректный остаток. Демонстрация превращает вставленный текст с колонками sku;name;stock в объекты JSON и показывает ошибки, которые нельзя пропускать в дальнейший учёт.
  2. Состав решения → Редактируемый CSV и примеры корректных данных и ошибок.
  3. Проверка перед запуском → Проверить корректный CSV, название с разделителем внутри кавычек, отсутствие обязательной колонки, неверный остаток и повтор SKU.

Что проверить перед запуском

  • Проверить корректный CSV, название с разделителем внутри кавычек, отсутствие обязательной колонки, неверный остаток и повтор SKU.
  • Для настоящего импорта согласовать формат исходной выгрузки и правила остатков; отдельно реализовать сохранение и проверку результата в принимающей системе.

Что входит в пример

  • Редактируемый CSV и примеры корректных данных и ошибок.
  • Локальный разбор текста, проверка структуры и значений.
  • Результат JSON или сообщение, объясняющее причину отказа.

Технический паспорт

DevPilot 1.5.2 · Охват проверок, исходники и дата свидетельств

Статус
DEMO · Вымышленная компания и учебные данные
Материалы
Собственные HTML/CSS/SVG, исходники и локальные алгоритмы. Фотографии клиентов не используются.
Обработка
Демонстрация выполняется в браузере. Открытие примера не создаёт заявку или оплаченный проект.
Доказательства
Содержимое и локальные проверки отделены от реальной браузерной, хостинговой и коммерческой приёмки.