npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@flowmerce/formats

v1.0.3

Published

formats: InSales integration for Flowmerce packages

Readme

@flowmerce/formats

Пакет для форматирования данных в формат, совместимый с интеграцией с платформой Insales.

Основные возможности

  • Генерация CSV-файлов для импорта в Insales
  • Поддержка сложных структур: бренды, категории, товары с вариантами
  • Гибкая настройка колонок: параметры и свойства
  • Поддержка шаблонов через Handlebars
  • Потоковая обработка данных для эффективного использования памяти

Установка

pnpm add @flowmerce/formats

Использование

Основной пример

import { insalesStreamWriter } from "@flowmerce/formats";
import { Brand, Category, Product } from "@flowmerce/formats/types";

// Заготовленные параметры и свойства
const params = [
  "Цвет",
  "Размер",
  "Верхняя высота"
];

const properties = [
  "Верхняя высота",
  "Стиль носка",
  "Применимый сезон",
  "Тип каблука",
  "Основной цвет",
  "Дата выхода",
  "Подбор цветов",
  "Цена предложения",
  "Основной номер товара",
  "Применимые сценарии",
  "Функциональная",
  "Применимое место проведения",
  "Класс кроссовок для бега",
  "Общий вес обуви (приблизительно)",
  "Подошва",
  "Верхний",
  "Промежуточная подошва",
  "Верхний материал",
  "Закрытый режим",
  "Материал подошвы",
  "Дополнительный цвет",
  "Типы шипов",
  "Сорт обуви",
  "Применимая ширина стопы"
];

// Создание writer
const writer = insalesStreamWriter({
  categories: categories, // категории
  brands: brands, // бренды
  columns: { // дополнительные данные для параметров и свойств
    properties: properties,
    params: params,
  }
});

// Создание потока
const stream = writer.createStream();

// Запись в файл
const fileStream = fs.createWriteStream("out.csv");
stream.pipe(fileStream);

// Стримим данные
for await (const product of fakeApi(productDataNew)) {
  await writer.putData({
    product, // важно: шаблон ожидает product
  });
}

// Закрываем поток
await writer.commit();

console.log("✅ Готово");

Подробное описание

Параметры (params)

Параметры — это характеристики товара, которые могут быть разными для разных вариантов. Они отображаются в колонках с префиксом Параметр: .

Примеры параметров:

  • Цвет
  • Размер
  • Верхняя высота

Свойства (properties)

Свойства — это дополнительные характеристики товара, которые могут быть общими для всех вариантов. Они отображаются в колонках с префиксом Свойство: .

Примеры свойств:

  • Верхняя высота
  • Стиль носка
  • Применимый сезон
  • Тип каблука

Колонки

Колонки определяют структуру выходного CSV-файла. Основные колонки включают:

  • Внешний ID — уникальный идентификатор товара
  • Ссылка на товар — URL товара
  • Артикул — артикул товара
  • Название товара или услуги — название товара
  • Цена продажи — цена продажи
  • Старая цена — старая цена
  • Остаток — количество товара на складе
  • Изображения варианта — изображения товара
  • Параметры — все параметры товара
  • Свойства — все свойства товара
  • Размерная сетка — размерная сетка
  • Связанные товары — связанные товары
  • Ключевые слова — ключевые слова

Типы данных

  • Product — основной тип товара
  • Brand — тип бренда
  • Category — тип категории
  • IParam — тип параметра
  • ISize — тип размерной сетки

Пример данных

const product: Product = {
  productId: 12345,
  variantId: 67890,
  title: "Ударная дрель Makita HP1630, 710 Вт",
  description: "В комплекте с детским микроскопом есть все, что нужно вашему ребенку для изучения микромира",
  vendor: "LEVENHUK",
  vendorCode: "VNDR-0005A",
  saleDate: "01.01.2000",
  vendorId: 1001,
  categoryId: 2002,
  countryOfOrigin: "Россия",
  images: [
    "https://example.com/image1.jpg",
    "https://example.com/image2.jpg"
  ],
  videos: [
    "https://example.com/video1.mp4"
  ],
  price: 240,
  oldPrice: 250,
  purchasePrice: 200,
  additionalExpenses: 75,
  cofinancePrice: 300,
  currency: "RUB",
  url: "http://best.seller.ru/product_page.asp?pid=12346",
  disabled: false,
  count: 7,
  available: true,
  timeDelivery: { min: 1, max: 3 },
  minQuantity: 1,
  stepQuantity: 1,
  barcode: "46012300000000",
  codesTN: ["8517610008"],
  age: { unit: "year", value: 6 },
  weight: 3.1,
  dimensions: "20.1/20.551/22.5",
  boxCount: 2,
  vat: "VAT_20",
  params: [
    { key: "Цвет", value: "Красный" },
    { key: "Размер", value: "M" }
  ],
  properties: [
    { key: "Верхняя высота", value: "15 см" },
    { key: "Стиль носка", value: "Открытый" }
  ],
  tags: ["apple", "до 500 рублей"],
  adult: false,
  downloadable: false,
  validityPeriod: "P1Y",
  validityComment: "Хранить в сухом помещении",
  serviceLifePeriod: "P2Y6M10D",
  serviceLifeComment: "Использовать при температуре не ниже −10 градусов",
  warrantyPeriod: "P1Y",
  warrantyComment: "Гарантия на аккумулятор — 6 месяцев",
  manufacturerWarranty: true,
  certificate: "6241421",
  keywords: ["Кроссовки", "высокая подошва"],
  sizes: [
    { name: "Размер", delimiter: ",", value: "36,37,38,39,40" }
  ],
  relatedProducts: [1234],
  seriesName: "Jordan 4",
  gender: "Женское",
  favoriteCount: 982134
};

Поддержка

Если у вас есть вопросы или предложения по улучшению, пожалуйста, откройте issue в репозитории.

Лицензия

MIT