Перед обработкой выгрузки товаров нужно убедиться, что в ней есть артикул, название и корректный остаток. Демонстрация превращает вставленный текст с колонками sku;name;stock в объекты JSON и показывает ошибки, которые нельзя пропускать в дальнейший учёт.
УЧЕБНЫЙ ПРИМЕР
Подготовка каталога к импорту
Измените строки, проверьте ошибку и получите структуру в браузере.
Это ширина демонстрационного холста. Она не заменяет проверку настоящего устройства.
DEMO / csv-import
Подготовка каталога к импорту
Перед обработкой выгрузки товаров нужно убедиться, что в ней есть артикул, название и корректный остаток. Демонстрация превращает вставленный текст с колонками sku;name;stock в объекты JSON и показывает ошибки, которые нельзя пропускать в дальнейший учёт.
Открыть рабочую демонстрацию
Учебный концепт · вымышленная компания · без отправки.
Из таблицы — в проверенные строки
- 01Учебный CSV
- 02Проверка полей
- 03Структура JSON
Измените учебную строку, затем попробуйте неверный остаток. Парсер покажет ошибку с причиной; импорт в рабочую систему не выполняется.
CSV → JSON
Помогает подготовить данные к импорту и исправить ошибки структуры и значений до сохранения.
Код, который можно попробовать
Фрагмент функции, которая выполняет преобразование в этой демонстрации.
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};
});
}Локальная демонстрация: текст обрабатывается в браузере без загрузки файла, сервера и сохранения данных.
Редактируемый CSV и примеры корректных данных и ошибок.
Проверить корректный CSV, название с разделителем внутри кавычек, отсутствие обязательной колонки, неверный остаток и повтор SKU.
Задача в этом сценарии
Перед обработкой выгрузки товаров нужно убедиться, что в ней есть артикул, название и корректный остаток. Демонстрация превращает вставленный текст с колонками sku;name;stock в объекты JSON и показывает ошибки, которые нельзя пропускать в дальнейший учёт.
Как устроено решение
- Сначала посмотрите на обещанный результат, затем попробуйте действие в демонстрации.
- Локальные результаты не являются отправкой, заказом или коммерческими показателями.
Промежуточные материалы
- Исходная задача и ограничения → Перед обработкой выгрузки товаров нужно убедиться, что в ней есть артикул, название и корректный остаток. Демонстрация превращает вставленный текст с колонками sku;name;stock в объекты JSON и показывает ошибки, которые нельзя пропускать в дальнейший учёт.
- Состав решения → Редактируемый CSV и примеры корректных данных и ошибок.
- Проверка перед запуском → Проверить корректный CSV, название с разделителем внутри кавычек, отсутствие обязательной колонки, неверный остаток и повтор SKU.
Что проверить перед запуском
- Проверить корректный CSV, название с разделителем внутри кавычек, отсутствие обязательной колонки, неверный остаток и повтор SKU.
- Для настоящего импорта согласовать формат исходной выгрузки и правила остатков; отдельно реализовать сохранение и проверку результата в принимающей системе.
Что входит в пример
- Редактируемый CSV и примеры корректных данных и ошибок.
- Локальный разбор текста, проверка структуры и значений.
- Результат JSON или сообщение, объясняющее причину отказа.
Технический паспорт
DevPilot 1.5.2 · Охват проверок, исходники и дата свидетельств
- Статус
- DEMO · Вымышленная компания и учебные данные
- Материалы
- Собственные HTML/CSS/SVG, исходники и локальные алгоритмы. Фотографии клиентов не используются.
- Обработка
- Демонстрация выполняется в браузере. Открытие примера не создаёт заявку или оплаченный проект.
- Доказательства
- Содержимое и локальные проверки отделены от реальной браузерной, хостинговой и коммерческой приёмки.