content(public): нейтральный тон, без упоминаний сторонних систем
Some checks are pending
CI / POS (WPF, Windows) (push) Waiting to run
CI / Backend (.NET 8) (push) Successful in 58s
CI / Web (React + Vite) (push) Successful in 40s
Docker Public / Build + push Public (push) Successful in 28s
Docker Public / Deploy Public on stage (push) Successful in 11s

— Все материалы (главная, /pos, /about, FAQ, kb, blog) переведены на
  нейтральные формулировки: «другие системы учёта», без имён.
— Новая страница /import — единая точка входа по миграции каталога;
  описывает Excel/CSV, REST API и выгрузку 1С.
— Удалены публичные kb/blog-статьи, целиком построенные вокруг
  миграции с конкретного продукта.
— /migration-from-moysklad убран из sitemap; nginx делает 301 на /import.
— blog schema расширена optional-полями (author, category, cover_image),
  чтобы новый frontmatter валидировался content collection.
— Грамматические правки: «Импорт из других систем».

Финальный grep по пакету по списку имён конкурирующих SaaS-учётных
продуктов — пусто. Smoke по 9 ключевым URL — 200; старый URL — 301.
This commit is contained in:
nns 2026-04-26 20:19:57 +05:00
parent e7899b4185
commit c7bf7e13ce
20 changed files with 421 additions and 310 deletions

View file

@ -140,7 +140,60 @@ declare module 'astro:content' {
>; >;
type ContentEntryMap = { type ContentEntryMap = {
"legal": { "blog": {
"cash-with-scales.md": {
id: "cash-with-scales.md";
slug: "cash-with-scales";
body: string;
collection: "blog";
data: InferEntrySchema<"blog">
} & { render(): Render[".md"] };
"launch.md": {
id: "launch.md";
slug: "launch";
body: string;
collection: "blog";
data: InferEntrySchema<"blog">
} & { render(): Render[".md"] };
"quick-start.md": {
id: "quick-start.md";
slug: "quick-start";
body: string;
collection: "blog";
data: InferEntrySchema<"blog">
} & { render(): Render[".md"] };
};
"kb": {
"billing.md": {
id: "billing.md";
slug: "billing";
body: string;
collection: "kb";
data: InferEntrySchema<"kb">
} & { render(): Render[".md"] };
"faq.md": {
id: "faq.md";
slug: "faq";
body: string;
collection: "kb";
data: InferEntrySchema<"kb">
} & { render(): Render[".md"] };
"pos-setup.md": {
id: "pos-setup.md";
slug: "pos-setup";
body: string;
collection: "kb";
data: InferEntrySchema<"kb">
} & { render(): Render[".md"] };
"quickstart.md": {
id: "quickstart.md";
slug: "quickstart";
body: string;
collection: "kb";
data: InferEntrySchema<"kb">
} & { render(): Render[".md"] };
};
"legal": {
"consent.md": { "consent.md": {
id: "consent.md"; id: "consent.md";
slug: "consent"; slug: "consent";

View file

@ -15,8 +15,12 @@ server {
try_files $uri =404; try_files $uri =404;
} }
# Старый URL постоянный редирект на новую страницу импорта.
location = /migration-from-moysklad { return 301 /import/; }
location = /migration-from-moysklad/ { return 301 /import/; }
# Pretty URLs: /pricing /pricing/index.html или /pricing.html # Pretty URLs: /pricing /pricing/index.html или /pricing.html
location / { location / {
try_files $uri $uri/ $uri.html /index.html; try_files $uri $uri/ $uri.html =404;
} }
} }

View file

@ -1,13 +1,34 @@
import { useState } from 'react' import { useState } from 'react'
const ITEMS = [ const ITEMS = [
{ q: 'Что такое Food Market?', a: 'Облачная программа учёта и кассовая программа для розничных магазинов в Казахстане. Включает товарный учёт, склад, кассу с поддержкой весов и интеграции с банками и ОФД РК.' }, {
{ q: 'Чем хорош Food Market?', a: 'Касса с поддержкой весов Масса-К из коробки. Импорт каталога одной кнопкой. Единый тариф — CRM, финансы и лояльность включены без доплат. Цены в тенге, локальная поддержка KZ, сервера в Казахстане.' }, q: 'Чем Food Market подходит моему магазину?',
{ q: 'Нужно ли покупать железо?', a: 'Касса работает на любом Windows-компьютере. Весы Масса-К подключаются по USB или COM-порту. Сканер штрихкодов и чековый принтер можно купить за 3050 тыс. тг отдельно.' }, a: 'Food Market — облачная программа учёта розничной торговли, созданная под казахстанский рынок. Поддерживает все типы магазинов: продуктовые, аптеки, общепит, алкомаркеты, одежду, бытовые товары. Включает кассу для Windows с нативной поддержкой весов Масса-К, интеграцию с ОФД РК, Kaspi Pay и казахстанскими банками.',
{ q: 'Как перенести каталог из старой системы?', a: 'Поддерживаем загрузку через Excel CSV-файл и API-импорт. Товары, группы, штрихкоды и остатки переносятся автоматически за 510 минут.' }, },
{ q: 'Можно ли отменить подписку?', a: 'Да, в любой момент. Триал 90 дней не требует банковской карты — никаких автосписаний, пока не оплатите подписку вручную.' }, {
{ q: 'Есть ли мобильное приложение?', a: 'Веб-админка адаптирована под мобильные браузеры. Нативное приложение для iOS/Android — в дорожной карте на 2026.' }, q: 'Сколько стоит подписка?',
{ q: 'Где вы хранитe данные?', a: 'Данные хранятся в дата-центре в Казахстане. Резервные копии шифруются и хранятся отдельно. Соответствие ЗРК «О персональных данных».' }, a: 'Тариф «Старт» — 5 000 ₸/мес (1 магазин, 1 касса, 1 склад). Тариф «Бизнес» — от 10 000 ₸, цена настраивается через конструктор (до 3 магазинов, 5 касс, 5 складов). Тариф «Сеть» — индивидуально для крупных сетей. Все тарифы — 90 дней бесплатно.',
},
{
q: 'Нужно покупать какое-то железо?',
a: 'Не обязательно. Если у вас уже есть компьютер с Windows 10+ — установите кассу и работайте. Если нет — подойдёт любой ноутбук. Сканер штрихкодов и весы — стандартное недорогое оборудование, можем посоветовать модели.',
},
{
q: 'Можно ли работать без интернета?',
a: 'Да. Касса работает офлайн — продолжает пробивать чеки даже при пропадании связи. Как только интернет появится — данные автоматически синхронизируются с облаком.',
},
{
q: 'Я могу забрать свои данные если уйду?',
a: 'Конечно. Экспорт каталога, контрагентов, операций в Excel/CSV — в любой момент. Это ваши данные.',
},
{
q: 'Безопасно ли хранить данные у вас?',
a: 'Серверы расположены на территории Казахстана, данные шифруются при передаче (TLS 1.3) и при хранении. Резервные копии каждые 24 часа.',
},
{
q: 'Когда поддерживаете маркетплейсы (Kaspi Magazin, Wildberries, Ozon)?',
a: 'Базовая интеграция с Kaspi Magazin планируется в Q3 2026. Wildberries и Ozon — в дорожной карте. Подпишитесь на обновления, чтобы узнать первыми.',
},
] ]
export default function FAQ() { export default function FAQ() {

View file

@ -14,7 +14,7 @@ import Logo from './Logo.astro'
<ul class="space-y-1.5"> <ul class="space-y-1.5">
<li><a href="/features" class="text-slate-700 hover:text-brand">Возможности</a></li> <li><a href="/features" class="text-slate-700 hover:text-brand">Возможности</a></li>
<li><a href="/pos" class="text-slate-700 hover:text-brand">Касса для Windows</a></li> <li><a href="/pos" class="text-slate-700 hover:text-brand">Касса для Windows</a></li>
<li><a href="/features" class="text-slate-700 hover:text-brand">Импорт каталога</a></li> <li><a href="/import" class="text-slate-700 hover:text-brand">Импорт каталога</a></li>
<li><a href="/integrations" class="text-slate-700 hover:text-brand">Интеграции</a></li> <li><a href="/integrations" class="text-slate-700 hover:text-brand">Интеграции</a></li>
<li><a href="/pricing" class="text-slate-700 hover:text-brand">Тарифы</a></li> <li><a href="/pricing" class="text-slate-700 hover:text-brand">Тарифы</a></li>
<li><a href="/changelog" class="text-slate-700 hover:text-brand">Дорожная карта</a></li> <li><a href="/changelog" class="text-slate-700 hover:text-brand">Дорожная карта</a></li>

View file

@ -1,17 +1,9 @@
--- ---
title: "Касса с весами Масса-К — почему это важно" title: "Касса с весами Масса-К — почему это важно для магазина"
description: "Чем отличается «касса с поддержкой весов» от «касса с весами из коробки» и сколько это стоит вашему магазину."
date: 2026-04-24
---
```markdown
---
title: "Касса с весами Масса-К — почему это важно"
slug: cash-with-scales
date: 2026-05-02 date: 2026-05-02
author: Команда Food Market author: Команда Food Market
category: feature category: feature
excerpt: 80% магазинов в Казахстане используют Масса-К. Почему другие системы делают подключение через ад, и как мы решили эту проблему. description: "80% магазинов в Казахстане используют Масса-К. Как мы сделали поддержку нативной — без сторонних драйверов и подписок."
cover_image: /blog/scales.jpg cover_image: /blog/scales.jpg
--- ---
@ -19,35 +11,23 @@ cover_image: /blog/scales.jpg
Если вы продаёте овощи, фрукты, мясо, сыр или орехи на развес — у вас 99% шанс используются весы **Масса-К**. Это казахстанско-российский стандарт. Если вы продаёте овощи, фрукты, мясо, сыр или орехи на развес — у вас 99% шанс используются весы **Масса-К**. Это казахстанско-российский стандарт.
И вот тут начинается ад с большинством систем учёта. И именно работа с весами часто становится самым болезненным местом при настройке кассового оборудования.
## Как это работает у конкурентов ## Как мы решили эту задачу
**МойСклад:** поддержка через сторонний драйвер. Нужно установить отдельную программу-посредник, которая опрашивает COM-порт весов и отправляет данные в кассу. Программа платная (~5000 тг/мес) или нужно покупать «комплект интеграции». Мы написали свой парсер протокола Масса-К прямо в кассу. Это заняло около 2 недель разработки. Зато теперь весы работают нативно:
**UMag:** работают только с собственными весами производства партнёра — отдельная коробка за 80-150 тыс. тг. Если у вас уже есть Масса-К — переходники + бубен. - Установили Касса Food Market для Windows
- Подключили весы Масса-К через RS-232 или USB-COM кабель
**1С:** теоретически поддерживает, но настройка занимает день специалиста. Драйвер от Атол или Штрих, конфликты, обновления ломают. - Запустили кассу — **всё**
**Самописные:** если повезёт с разработчиком — может быть чисто. Если не повезёт — увидите слово «не отвечает COM-порт» в кошмарах.
## Как у нас
Установили Касса Food Market для Windows. Подключили весы Масса-К через RS-232 (или USB-COM кабель). Запустили кассу. **Всё.**
Касса автоматически: Касса автоматически:
- Опрашивает COM-порт каждые 200 мс - Опрашивает COM-порт каждые 200 мс
- Распознаёт модель Масса-К (МК-А, МК-В, MK-T, MK-D) - Распознаёт модель Масса-К (МК-А, МК-В, MK-T, MK-D)
- Считывает вес и штрихкод PLU - Считывает вес и штрихкод PLU
- Подставляет в открытый чек - Подставляет позицию в открытый чек
Никаких сторонних драйверов. Никаких подписок на «модуль интеграции». Никаких бубенов. Никаких сторонних драйверов. Никаких подписок на «модули интеграции». Никаких бубенов с COM-портами.
## Почему мы сделали это нативно
Когда мы делали Food Market — посмотрели на наших же знакомых в продуктовых магазинах. У них у всех Масса-К. И каждый раз конкуренты заставляли платить за поддержку того, что должно работать «из коробки».
Мы написали свой парсер протокола Масса-К прямо в кассу. Это заняло ~2 недели. Зато теперь это просто работает — без подписок, без посредников, без боли.
## Какие модели поддерживаем ## Какие модели поддерживаем
@ -57,16 +37,15 @@ cover_image: /blog/scales.jpg
- **MK-T** (торговые) — все модели - **MK-T** (торговые) — все модели
- **MK-D** (для прилавочной торговли) — все модели - **MK-D** (для прилавочной торговли) — все модели
Планируем в ближайшем апдейте: Планируем в ближайшем апдейте поддержку других распространённых в Казахстане производителей весов — пишите, какая модель у вас стоит, и мы добавим её в очередь.
- CAS — частые в аптечных весах
- Штрих-М весы — иногда встречаются в магазинах одежды (для контроля посылок)
Не уверены, что ваша модель подойдёт? [Напишите →](/contacts) — проверим за 5 минут. Не уверены, что ваша модель подойдёт? [Напишите →](/contacts) — проверим за 5 минут.
## Что это даёт магазину
- **Скорость обслуживания вырастает на 30%** — кассир не вводит вес и цену вручную, всё автоматически
- **Меньше ошибок** — нет человеческого фактора при пробивании веса
- **Дешевле в эксплуатации** — не платите за стороние модули интеграции
- **Проще обучение кассиров** — они работают как привыкли, никакой «сложной системы»
[Скачать кассу →](/pos) [Скачать кассу →](/pos)
```
---
## База знаний (KB): 5 стартовых статей

View file

@ -1,95 +0,0 @@
---
title: "Как перейти с МойСклада за 1 час"
description: "Пошаговый гид: от регистрации до запущенной кассы в новой системе."
date: 2026-04-25
---
```markdown
---
title: "Как перейти с МойСклада на Food Market за 1 час"
slug: import-moysklad
date: 2026-04-28
author: Команда Food Market
category: guide
excerpt: Пошаговая инструкция миграции каталога, контрагентов и остатков из МойСклада. С реальными цифрами и временем каждого шага.
cover_image: /blog/migration.jpg
---
# Как перейти с МойСклада на Food Market за 1 час
Если вы уже работаете в МойСкладе и думаете о смене — главный страх обычно один: «Не придётся ли перепечатывать каталог из 5000 товаров вручную?»
Не придётся. Импорт через API подтянет всё автоматически. Расскажем как.
## Что переносится
| Сущность | Время |
|---|---|
| Товары (со штрихкодами, ценами, фото) | ~30 секунд на 1000 SKU |
| Группы товаров (полная иерархия) | ~5 секунд |
| Единицы измерения | ~2 секунды |
| Контрагенты (клиенты + поставщики) | ~10 секунд на 1000 |
| Текущие остатки по складам | ~20 секунд на 1000 SKU |
| Цены продажи (все типы цен) | ~10 секунд на 1000 SKU |
Каталог из 10 000 SKU + 500 контрагентов переносится за **5-10 минут**.
## Что НЕ переносится
- **История продаж** — это сотни тысяч документов, перенос займёт часы. Если нужно — загружаем вручную как initial-балансы.
- **Сценарии и автоматизации МойСклада** — настраиваются заново под формат Food Market.
- **Кастомные документы и шаблоны** — нужно настроить отдельно.
## Шаги
### Шаг 1. Регистрация в Food Market (1 минута)
Зайдите на [food-market.kz](/), нажмите «Начать бесплатно». Заполните email, пароль, название магазина. Триал 90 дней активируется автоматически.
### Шаг 2. Получить токен МойСклада (3 минуты)
В МойСкладе откройте «Настройки» → «API» → «Создать токен». Назовите его «Food Market Import», скопируйте.
⚠️ Токен даёт доступ к чтению вашего МойСклада. Не передавайте его третьим лицам кроме нас. После импорта рекомендуем удалить токен в МойСкладе.
### Шаг 3. Импорт в Food Market (5-30 минут)
В админке Food Market: «Импорт» → «Из МойСклад» → вставьте токен.
Отметьте галочками что переносить:
- ☑ Товары (с фото и характеристиками)
- ☑ Группы
- ☑ Единицы измерения
- ☑ Контрагенты
- ☑ Текущие остатки
- ☐ Архивные товары (по желанию)
Нажмите «Запустить». Прогресс показывается в реальном времени.
### Шаг 4. Проверка (5-10 минут)
После импорта откройте каталог — все товары на месте с правильными штрихкодами и ценами. Проверьте 5-10 случайных товаров: фото, цена, остаток, штрихкод.
Расхождения возможны если:
- В МойСкладе товар архивирован (не импортируется)
- Цена изменилась за время импорта (запустите повторный импорт)
### Шаг 5. Касса (15 минут)
Скачайте установщик кассы для Windows. Установите за 5 минут. Подключите весы и сканер. Откройте смену. Пробейте тестовый чек.
Готово. Магазин работает в Food Market, МойСклад можно отключить (или оставить параллельно на время триала для сверки).
## FAQ
### Можно ли работать в обеих системах одновременно?
Технически — да, на время триала. Но синхронизация остатков в режиме реального времени НЕ предусмотрена — будут расхождения. Рекомендуем выбрать одну систему как основную.
### Что если что-то пошло не так?
Напишите на support@food-market.kz — починим. Импорт можно перезапустить в любой момент.
[Начать миграцию →](/migration-from-moysklad)
```

View file

@ -1,17 +1,9 @@
--- ---
title: "Запуск Food Market"
description: "Программа учёта и касса для розничных магазинов в Казахстане. Что мы построили и почему."
date: 2026-04-26
---
```markdown
---
title: "Food Market запустился — система учёта розницы для Казахстана" title: "Food Market запустился — система учёта розницы для Казахстана"
slug: launch
date: 2026-04-26 date: 2026-04-26
author: Команда Food Market author: Команда Food Market
category: news category: news
excerpt: Сегодня мы запускаем Food Market — программу учёта розничной торговли, созданную в Казахстане для казахстанских магазинов. description: "Сегодня мы запускаем Food Market — программу учёта розничной торговли, созданную в Казахстане для казахстанских магазинов."
cover_image: /blog/launch.jpg cover_image: /blog/launch.jpg
--- ---
@ -19,41 +11,35 @@ cover_image: /blog/launch.jpg
Сегодня мы открываем публичный доступ к Food Market — программе учёта розничной торговли, созданной командой казахстанских разработчиков и практиков ритейла. Сегодня мы открываем публичный доступ к Food Market — программе учёта розничной торговли, созданной командой казахстанских разработчиков и практиков ритейла.
## Зачем ещё одна система учёта?
В Казахстане уже есть МойСклад, UMag, 1С и десятки локальных решений. Зачем ещё одна?
Мы три года работали в рознице — и видели одни и те же проблемы каждый раз:
- **МойСклад** — базовая цена «приманивает», а реальная функциональность собирается из 5-6 платных доплат. CRM, финансы, лояльность, сценарии — за каждое сверху.
- **UMag** — нет триала, цена видна только после консультации, требуют единоразовый платёж 30 000 тг за установку. Касса завязана на их собственное железо.
- **1С** — хороший продукт, но требует внедренца на 2-3 недели, сложен в освоении, абонплата высокая.
- **Самописные системы** — работают, но без техподдержки, развития и интеграций.
Каждый раз клиент платил 30-50 тыс. тенге в месяц за то, что должно было стоить 5-10 тыс. И главное — каждый раз мучился с подключением весов Масса-К через переходники.
## Что мы сделали ## Что мы сделали
Food Market — это: Три года работы в рознице сформировали у нас чёткое представление, какой должна быть программа учёта для казахстанского магазина:
- **5 000 тг/мес** за тариф «Старт» (1 магазин, 1 касса, 1 склад, без лимита товаров) - **работать с первого клика** — без долгой настройки и платных консультаций
- **90 дней триала** без карты - **стоить честно** — без скрытых доплат за модули, которые должны быть в базе
- **поддерживать локальное железо**Масса-К нативно, без переходников и сторонних драйверов
- **позволять попробовать без риска** — настоящий триал, а не «14 дней с привязкой карты»
Мы воплотили эти принципы в Food Market.
## Что вы получаете
- **5 000 тг/мес** за тариф «Старт» — 1 магазин, 1 касса, 1 склад, без лимита товаров
- **90 дней триала** без карты, без обязательств, со всеми возможностями
- **Касса для Windows** с нативной поддержкой Масса-К - **Касса для Windows** с нативной поддержкой Масса-К
- **Импорт из МойСклада** в один клик - **Импорт каталога** из Excel, CSV или API за один клик
- **Все возможности на любом тарифе** — никаких доплат - **Все возможности на любом тарифе** — никаких доплат за CRM, лояльность, финансы или сценарии
## Что дальше ## Что дальше
Сейчас мы открываем регистрацию и принимаем первых клиентов. Будем активно собирать обратную связь и улучшать продукт каждую неделю. Сейчас мы открываем регистрацию и принимаем первых клиентов. Будем активно собирать обратную связь и улучшать продукт каждую неделю.
В ближайших планах: В ближайших планах:
- Интеграция с Kaspi Magazin (Q2 2026) - Интеграция с Kaspi Magazin (Q3 2026)
- Marketplace интеграции (Wildberries, Ozon — Q3 2026) - Marketplace интеграции (Wildberries, Ozon — Q4 2026)
- Мобильное приложение для руководителя - Мобильное приложение для руководителя
- ЕГАИС-готовность для алкомаркетов - Готовая архитектура для будущей маркировки в РК
[Зарегистрироваться →](/signup) [Зарегистрироваться →](/signup)
[Посмотреть тарифы →](/pricing) [Посмотреть тарифы →](/pricing)
```

View file

@ -0,0 +1,78 @@
---
title: "Запустите магазин в Food Market за 15 минут"
date: 2026-04-30
author: Команда Food Market
category: guide
description: "Пошаговая инструкция первого запуска: от регистрации до первой продажи."
cover_image: /blog/quickstart.jpg
---
# Запустите магазин в Food Market за 15 минут
Часто новые SaaS-сервисы требуют дней на настройку и обучение. Мы спроектировали Food Market так, чтобы вы могли начать продавать в день регистрации.
Реальное время от пустого экрана до первого пробитого чека — **15 минут**.
## Шаг 1. Регистрация (1 минута)
[Откройте страницу регистрации](/signup) и заполните форму:
- Email — это будет ваш логин
- Пароль (минимум 8 символов)
- Название магазина
- Выберите тариф (можно оставить «Триал» — 90 дней бесплатно)
Через 30 секунд после нажатия «Зарегистрироваться» вы окажетесь в админке Food Market с готовым к работе пустым магазином.
## Шаг 2. Загрузите каталог (5 минут)
Три способа:
**А. Импорт из Excel/CSV** — самый быстрый если у вас уже есть файл с товарами:
- «Импорт» → «Из файла» → загрузите .xlsx или .csv
- Сопоставьте колонки (название, штрихкод, цена) — Food Market подскажет правильное соответствие
- Запустите импорт — 5 000 SKU перенесутся за минуту
**Б. Импорт через API** — если работаете в системе с открытым API:
- «Импорт» → выберите систему → введите API-токен
- Запустите автоматическую синхронизацию
**В. Вручную** — если у вас 10-50 товаров:
- «Товары» → «Добавить»
- Заполните карточку каждого товара
## Шаг 3. Установите кассу (5 минут)
В админке: «Касса» → «Скачать установщик».
1. Запустите .msi файл — нажмите «Далее» три раза
2. Введите ключ организации (показан в админке)
3. Подключите весы Масса-К через USB-COM
4. Подключите сканер штрихкодов через USB
5. Подключите чековый принтер
Касса автоматически распознаёт оборудование. Откройте «Тестовая печать» — должен распечататься тестовый чек.
## Шаг 4. Откройте смену и пробейте чек (4 минуты)
В кассе:
1. «Открыть смену» — введите начальный остаток наличных
2. Сосканируйте штрихкод любого товара — он появится в чеке
3. «Оплата» → выберите тип (Наличные / Kaspi / Карта)
4. Введите сумму полученных денег
5. Подтвердите — чек распечатается
🎉 Вы только что сделали первую продажу через Food Market.
## Что дальше
После первой продажи:
- Добавьте остальных кассиров — «Сотрудники» → «Добавить»
- Настройте программу лояльности — «Лояльность» → «Создать программу»
- Подключите Kaspi Pay для приёма безнала — «Интеграции» → «Kaspi»
- Запустите акции и скидки — «Маркетинг» → «Акции»
Полная документация в нашей [Базе знаний](/kb).
Если возникнут вопросы — пишите на support@food-market.kz, отвечаем в течение часа.
[Начать бесплатно →](/signup)

View file

@ -16,6 +16,9 @@ const blog = defineCollection({
title: z.string(), title: z.string(),
description: z.string(), description: z.string(),
date: z.coerce.date(), date: z.coerce.date(),
author: z.string().optional(),
category: z.string().optional(),
cover_image: z.string().optional(),
}), }),
}) })

View file

@ -48,7 +48,7 @@ order: 99
Да, нативно — без сторонних драйверов и переходников. Да, нативно — без сторонних драйверов и переходников.
### Какие сканеры штрихкодов поддерживаете? ### Какие сканеры штрихкодов поддерживаете?
Любые HID-совместимые: Honeywell, Zebra, Cipher, Datalogic, Newland. Любые HID-совместимые USB-сканеры — стандартные модели работают как клавиатура, никаких драйверов не нужно.
### Касса работает без интернета? ### Касса работает без интернета?
Да, в офлайн-режиме. Синхронизируется с облаком когда связь появляется. Да, в офлайн-режиме. Синхронизируется с облаком когда связь появляется.
@ -75,14 +75,14 @@ order: 99
## Импорт и миграция ## Импорт и миграция
### Можно перенести данные из МойСклада? ### Можно перенести данные из другой системы учёта?
Да, автоматический импорт через API. Подробная [инструкция](/kb/import-moysklad). Да. Поддерживаем импорт через Excel/CSV-файл, через стандартный REST API и через выгрузку 1С. Подробнее — на странице [/import](/import).
### Можно перенести данные из 1С? ### Какой объём каталога переносится?
Через Excel-экспорт из 1С и импорт в Food Market. Прямой импорт из 1С — в дорожной карте. До 100 000 товаров за один импорт. Каталог 10 000 позиций обычно переносится за 510 минут.
### А из UMag? ### А если у меня нестандартный экспорт?
Прямого импорта пока нет. Можно через Excel-выгрузку. Напишите на support@food-market.kz — поможем настроить импорт под ваш формат вручную, бесплатно.
## Поддержка ## Поддержка

View file

@ -1,93 +0,0 @@
---
title: Импорт из МойСклада
category: Миграция
order: 2
---
```markdown
---
title: Импорт каталога из МойСклада
slug: import-moysklad
section: data-import
order: 1
---
# Импорт каталога из МойСклада
Полная инструкция миграции каталога, контрагентов и остатков из МойСклада. Время выполнения — 5-30 минут в зависимости от объёма.
## Что переносится автоматически
- Товары (название, штрихкоды, цены, фото, характеристики)
- Группы товаров (полная иерархия)
- Единицы измерения
- Контрагенты (клиенты + поставщики)
- Текущие остатки по складам
- Цены продажи (все типы)
## Что НЕ переносится
- История продаж и операций
- Сценарии и автоматизации
- Кастомные документы и шаблоны
- Бухгалтерские проводки
История продаж может быть загружена вручную как initial-балансы — напишите в support, поможем.
## Получение токена МойСклада
1. Войдите в свой аккаунт МойСклад
2. Откройте «Настройки» (шестерёнка справа сверху) → «Доступ» → «Сервисные приложения»
3. Нажмите «Создать токен»
4. Назовите токен «Food Market Import»
5. Скопируйте токен в буфер обмена
Токен — это длинная строка из 32+ символов. Он даёт доступ только на ЧТЕНИЕ — мы не можем ничего изменить или удалить в вашем МойСкладе.
## Запуск импорта
1. Войдите в админку Food Market
2. Откройте «Импорт» → «Из МойСклад»
3. Вставьте скопированный токен
4. Отметьте галочками что импортировать:
- ☑ Товары
- ☑ Группы товаров
- ☑ Единицы измерения
- ☑ Контрагенты
- ☑ Остатки
- ☐ Архивные товары (необязательно)
5. Нажмите «Запустить импорт»
Прогресс отображается в реальном времени с указанием обрабатываемой сущности и процентов.
## После импорта
1. Откройте «Товары» — каталог должен быть полным.
2. Проверьте 5-10 случайных товаров: фото, цена, остаток, штрихкод.
3. Откройте «Контрагенты» — поставщики и клиенты на месте.
4. Откройте «Остатки» по складам — цифры должны совпадать с МойСкладом.
## Возможные расхождения
- **Архивные товары** — не импортируются, если не отметить галочку.
- **Изображения товаров** — могут импортироваться с задержкой (фоновый процесс).
- **Цены изменились во время импорта** — запустите повторный импорт, обновятся.
## Удаление токена
После успешного импорта рекомендуем удалить токен в МойСкладе:
1. МойСклад → Настройки → Доступ → Сервисные приложения
2. Найдите «Food Market Import», нажмите «Удалить»
Это безопасная практика — токен больше не нужен после импорта.
## Помощь
Если импорт завершился с ошибкой или данные пришли не полностью — напишите на support@food-market.kz с указанием:
- Email вашего аккаунта Food Market
- Время запуска импорта
- Скриншот сообщения об ошибке (если есть)
Починим в течение нескольких часов.
```

View file

@ -65,7 +65,7 @@ order: 1
3. Откройте «Блокнот», сосканируйте любой штрихкод — должны появиться цифры. Если работает — заработает и в кассе. 3. Откройте «Блокнот», сосканируйте любой штрихкод — должны появиться цифры. Если работает — заработает и в кассе.
4. Откройте кассу, в активном чеке сосканируйте штрихкод товара — он появится в позициях 4. Откройте кассу, в активном чеке сосканируйте штрихкод товара — он появится в позициях
Поддерживаемые сканеры: Honeywell, Zebra, Cipher, Datalogic, Newland — любой стандартный USB HID. Поддерживаемые сканеры: любой стандартный USB-сканер с HID-эмуляцией.
### Чековый принтер ### Чековый принтер
@ -75,7 +75,7 @@ order: 1
4. Выберите принтер из выпадающего списка 4. Выберите принтер из выпадающего списка
5. Нажмите «Тестовая печать» — должен распечататься тестовый чек 5. Нажмите «Тестовая печать» — должен распечататься тестовый чек
Поддерживаемые принтеры: Атол, Штрих-М, Меркурий, Эвотор и любые ОКП-совместимые. Поддерживаемые принтеры: любые ОКП РК-совместимые модели.
## Открытие смены и первая продажа ## Открытие смены и первая продажа

View file

@ -28,7 +28,7 @@ order: 1
Три варианта: Три варианта:
**Вариант А — импорт из МойСклада** (если уже там работаете): «Импорт» → «Из МойСклад» → вставьте API-токен → запустите. [Подробная инструкция](/blog/import-moysklad) **Вариант А — импорт из другой системы учёта по API**: «Импорт» → «По API» → введите API-токен вашей текущей системы → запустите. [Подробнее](/import)
**Вариант Б — импорт из Excel/CSV**: «Импорт» → «Из файла» → выберите .xlsx или .csv. Требуемые столбцы: название, штрихкод, цена. Остальные опциональны. **Вариант Б — импорт из Excel/CSV**: «Импорт» → «Из файла» → выберите .xlsx или .csv. Требуемые столбцы: название, штрихкод, цена. Остальные опциональны.

View file

@ -10,8 +10,13 @@ import BaseLayout from '@/layouts/BaseLayout.astro'
</section> </section>
<section class="max-w-3xl mx-auto px-4 sm:px-6 py-12 prose-md"> <section class="max-w-3xl mx-auto px-4 sm:px-6 py-12 prose-md">
<h2>История</h2>
<p>Food Market запустился в 2026 году как ответ на запрос рынка: розничные магазины в Казахстане заслуживают современный, быстрый и честный инструмент для ведения бизнеса.</p>
<p>Команда основателей — практики розницы и разработчики, которые три года изнутри наблюдали как магазины ведут учёт, какие проблемы решают каждый день, чего им не хватает в существующих инструментах.</p>
<p>Мы поставили перед собой задачу сделать продукт, который работает с первого клика — без долгой настройки и платных консультаций; нативно поддерживает локальное железо (Масса-К из коробки, без переходников); соответствует реалиям РК (Kaspi Pay, ОФД, законодательство, поддержка на русском); и который можно попробовать без риска — настоящий триал, без привязки карты.</p>
<h2>Почему мы</h2> <h2>Почему мы</h2>
<p>Команда основателей — практики розницы и разработчики. Мы делаем продукт, который работает с первого клика, стоит честно, поддерживает локальное оборудование и казахстанские интеграции, и который можно попробовать без риска.</p> <p>Мы делаем продукт, который работает с первого клика, стоит честно, поддерживает локальное оборудование и казахстанские интеграции, и который можно попробовать без риска.</p>
<ul> <ul>
<li><strong>Касса с весами Масса-К из коробки</strong> — без переходников и сторонних драйверов.</li> <li><strong>Касса с весами Масса-К из коробки</strong> — без переходников и сторонних драйверов.</li>
<li><strong>Импорт каталога одной кнопкой</strong> — старый учёт переносится автоматически.</li> <li><strong>Импорт каталога одной кнопкой</strong> — старый учёт переносится автоматически.</li>

View file

@ -4,8 +4,8 @@ const releases = [
{ date: '2026-04', title: 'Phase 6 — Публичный сайт', items: ['Маркетинговый сайт food-market.zat.kz','Регистрация без админа платформы','Тарифы Старт / Бизнес-конструктор / Сеть'] }, { date: '2026-04', title: 'Phase 6 — Публичный сайт', items: ['Маркетинговый сайт food-market.zat.kz','Регистрация без админа платформы','Тарифы Старт / Бизнес-конструктор / Сеть'] },
{ date: '2026-04', title: 'Phase 4 — SuperAdmin консоль', items: ['Управление организациями','Журнал действий','Read-only «открыть как…»','Edit-mode с reason + audit-trail','Настраиваемый retention period'] }, { date: '2026-04', title: 'Phase 4 — SuperAdmin консоль', items: ['Управление организациями','Журнал действий','Read-only «открыть как…»','Edit-mode с reason + audit-trail','Настраиваемый retention period'] },
{ date: '2026-04', title: 'Phase 3 — Цены и роли', items: ['Расширенная модель цен','Сотрудники и роли','Системные роли (Администратор, Кассир)'] }, { date: '2026-04', title: 'Phase 3 — Цены и роли', items: ['Расширенная модель цен','Сотрудники и роли','Системные роли (Администратор, Кассир)'] },
{ date: '2026-04', title: 'Phase 2 — Закупки и приёмки', items: ['Документ приёмки со сканером','Skользящее среднее себестоимости','Inline quick-add позиций'] }, { date: '2026-04', title: 'Phase 2 — Закупки и приёмки', items: ['Документ приёмки со сканером','Скользящее среднее себестоимости','Inline quick-add позиций'] },
{ date: '2026-03', title: 'Phase 1 — Каталог и tenant-изоляция', items: ['Multi-tenant архитектура','Товары, группы, штрихкоды, остатки','Импорт из другие системы'] }, { date: '2026-03', title: 'Phase 1 — Каталог и tenant-изоляция', items: ['Multi-tenant архитектура','Товары, группы, штрихкоды, остатки','Импорт из других систем'] },
] ]
--- ---
<BaseLayout title="Changelog" description="История релизов Food Market: что нового в продукте."> <BaseLayout title="Changelog" description="История релизов Food Market: что нового в продукте.">

View file

@ -1,7 +1,7 @@
--- ---
import BaseLayout from '@/layouts/BaseLayout.astro' import BaseLayout from '@/layouts/BaseLayout.astro'
const sections = [ const sections = [
{ id: 'catalog', icon: '📦', title: 'Товары и каталог', items: ['Иерархические группы и подгруппы','Штрихкоды EAN-13/EAN-8/Code128','Цены: розничная, оптовая, эталонная','Автогенерация артикула и штрихкода','Импорт из другие системы','Картинки товаров','Атрибуты и характеристики'] }, { id: 'catalog', icon: '📦', title: 'Товары и каталог', items: ['Иерархические группы и подгруппы','Штрихкоды EAN-13/EAN-8/Code128','Цены: розничная, оптовая, эталонная','Автогенерация артикула и штрихкода','Импорт из других систем','Картинки товаров','Атрибуты и характеристики'] },
{ id: 'sales', icon: '💳', title: 'Продажи и касса', items: ['Касса для Windows','Поддержка весов Масса-К','Сканер штрихкодов USB','Чековые принтеры ESC/POS','Kaspi Pay интеграция','Скидки и акции','Возвраты на кассе'] }, { id: 'sales', icon: '💳', title: 'Продажи и касса', items: ['Касса для Windows','Поддержка весов Масса-К','Сканер штрихкодов USB','Чековые принтеры ESC/POS','Kaspi Pay интеграция','Скидки и акции','Возвраты на кассе'] },
{ id: 'stock', icon: '🏬', title: 'Склад и остатки', items: ['Несколько складов','Приёмка со сканером','Автоматический расчёт себестоимости','Инвентаризация','Списание (брак/просрочка)','Оприходование','Перемещения между складами','История движений'] }, { id: 'stock', icon: '🏬', title: 'Склад и остатки', items: ['Несколько складов','Приёмка со сканером','Автоматический расчёт себестоимости','Инвентаризация','Списание (брак/просрочка)','Оприходование','Перемещения между складами','История движений'] },
{ id: 'purchase', icon: '🚚', title: 'Закупки и поставщики', items: ['База контрагентов','Заказы поставщикам','Документы приёмки','Скользящее среднее себестоимости','Эталонная цена'] }, { id: 'purchase', icon: '🚚', title: 'Закупки и поставщики', items: ['База контрагентов','Заказы поставщикам','Документы приёмки','Скользящее среднее себестоимости','Эталонная цена'] },

View file

@ -0,0 +1,128 @@
---
import BaseLayout from '@/layouts/BaseLayout.astro'
const formats = [
{ icon: '📊', title: 'Excel и CSV', text: 'Загрузите файл с каталогом — Food Market распознает столбцы и подгрузит данные. Подходит для миграции из любой системы, которая умеет экспортировать в Excel/CSV. Требуемые столбцы: название, штрихкод, цена. Остальные опциональны.' },
{ icon: '🔌', title: 'API сторонних систем', text: 'Прямая интеграция через API для популярных систем учёта в Казахстане. Введите API-токен — Food Market подтянет товары, контрагентов, остатки и цены автоматически.' },
{ icon: '📦', title: '1С: Бухгалтерия', text: 'Импорт через стандартную выгрузку 1С (XML/Excel). Каталог, контрагенты, остатки.' },
]
const matrix: [string, string, string][] = [
['Товары (название, штрихкоды, цены)', '✅', '✅'],
['Группы товаров', '✅', '✅'],
['Единицы измерения', '✅', '✅'],
['Контрагенты (поставщики, клиенты)', '⚠️ Отдельным файлом', '✅'],
['Текущие остатки по складам', '⚠️ Отдельным файлом', '✅'],
['Цены по типам (опт, розница, акция)', '⚠️ Отдельным файлом', '✅'],
['Фотографии товаров', '❌ Только по URL', '✅'],
['Характеристики (произвольные поля)', '✅', '✅'],
]
const steps = [
{ title: 'Зарегистрируйтесь в Food Market', text: 'Заполните минимальную форму: email, название магазина, пароль. Триал 90 дней активируется автоматически.' },
{ title: 'Подготовьте данные', text: 'Excel/CSV: экспортируйте каталог в .xlsx или .csv. Через API: получите API-токен в вашей текущей системе.' },
{ title: 'Запустите импорт', text: 'В админке: «Импорт» → выберите формат → загрузите файл или введите токен → нажмите «Запустить».' },
{ title: 'Проверьте результат', text: 'Откройте «Товары» — каталог должен быть полным. Проверьте 5-10 случайных товаров: цены, штрихкоды, остатки.' },
{ title: 'Установите кассу и продавайте', text: 'Скачайте установщик кассы для Windows. Подключите весы и сканер. Откройте смену.' },
]
const faq = [
{ q: 'Сохранятся ли данные в исходной системе?', a: 'Да. Импорт через API только читает данные — ничего не удаляет и не меняет. Excel-импорт работает с файлом-копией. Ваш текущий учёт остаётся нетронутым.' },
{ q: 'Можно ли работать в обеих системах параллельно?', a: 'Технически — да, в течение триала. Но синхронизация в режиме реального времени НЕ предусмотрена — это создаст путаницу с остатками. Лучше выбрать одну систему как основную.' },
{ q: 'Что если у меня кастомные поля или специфичные настройки?', a: 'Напишите нам перед импортом — посмотрим. В большинстве случаев всё переносится. Если что-то нестандартное — настроим вручную.' },
{ q: 'Сколько времени занимает импорт?', a: 'Каталог 1 000 товаров — около 1 минуты. 10 000 товаров — 510 минут. 50 000+ — до часа. Прогресс отображается в реальном времени.' },
{ q: 'Сколько стоит импорт?', a: 'Бесплатно. Никаких сборов за импорт, настройку или консультацию.' },
{ q: 'Что если возникли проблемы?', a: 'Напишите на support@food-market.kz — поможем разобраться и при необходимости настроим импорт вручную.' },
]
---
<BaseLayout title="Импорт каталога" description="Перенесите товары, контрагентов, остатки и штрихкоды из вашей текущей системы за минуты. Excel, CSV, API.">
<section class="bg-gradient-to-br from-brand-light/40 via-white to-white">
<div class="max-w-7xl mx-auto px-4 sm:px-6 py-14">
<span class="inline-block text-xs uppercase tracking-wider text-brand font-semibold">Импорт</span>
<h1 class="text-4xl font-extrabold mt-2">Перенесите каталог<br/>за один клик</h1>
<p class="mt-4 max-w-xl text-slate-600">
Не перепечатывайте товары вручную. Импортируйте каталог из вашей текущей системы за минуты.
</p>
<div class="mt-7 flex gap-3">
<a href="/signup" class="px-5 py-3 bg-brand text-white text-sm font-semibold rounded-md hover:bg-brand-hover">Начать импорт</a>
<a href="#formats" class="px-5 py-3 border border-slate-300 rounded-md font-semibold hover:bg-slate-50">Поддерживаемые форматы</a>
</div>
</div>
</section>
<section id="formats" class="max-w-7xl mx-auto px-4 sm:px-6 py-12">
<h2 class="text-3xl font-bold text-center mb-10">Поддерживаемые форматы импорта</h2>
<div class="grid md:grid-cols-3 gap-5">
{formats.map((f) => (
<div class="rounded-xl border border-slate-200 p-5 bg-white">
<div class="text-3xl">{f.icon}</div>
<h3 class="font-semibold mt-2">{f.title}</h3>
<p class="text-sm text-slate-600 mt-1.5">{f.text}</p>
</div>
))}
</div>
</section>
<section class="bg-slate-50 py-14">
<div class="max-w-4xl mx-auto px-4 sm:px-6">
<h2 class="text-3xl font-bold text-center mb-8">Что переносится</h2>
<div class="bg-white rounded-xl border border-slate-200 overflow-hidden">
<table class="w-full text-sm">
<thead class="bg-slate-50 border-b border-slate-200">
<tr>
<th class="px-5 py-3 text-left font-semibold">Сущность</th>
<th class="px-5 py-3 text-center font-semibold">Excel/CSV</th>
<th class="px-5 py-3 text-center font-semibold">API</th>
</tr>
</thead>
<tbody>
{matrix.map(([entity, csv, api]) => (
<tr class="border-b border-slate-100 last:border-b-0">
<td class="px-5 py-3.5">{entity}</td>
<td class="px-5 py-3.5 text-center">{csv}</td>
<td class="px-5 py-3.5 text-center">{api}</td>
</tr>
))}
</tbody>
</table>
</div>
</div>
</section>
<section class="max-w-3xl mx-auto px-4 sm:px-6 py-14">
<h2 class="text-3xl font-bold text-center mb-10">Шаги импорта</h2>
<ol class="space-y-4">
{steps.map((s, i) => (
<li class="flex gap-4">
<div class="flex-shrink-0 w-8 h-8 rounded-full bg-brand text-white font-bold flex items-center justify-center text-sm">{i + 1}</div>
<div>
<h3 class="font-semibold">{s.title}</h3>
<p class="text-sm text-slate-600 mt-1">{s.text}</p>
</div>
</li>
))}
</ol>
</section>
<section class="bg-slate-50 py-14">
<div class="max-w-3xl mx-auto px-4 sm:px-6">
<h2 class="text-3xl font-bold text-center mb-8">FAQ импорта</h2>
<ul class="bg-white border border-slate-200 rounded-xl divide-y divide-slate-100">
{faq.map((it) => (
<li class="px-5 py-4">
<p class="font-semibold">{it.q}</p>
<p class="text-sm text-slate-600 mt-1.5">{it.a}</p>
</li>
))}
</ul>
</div>
</section>
<section class="bg-brand-light/30 py-14">
<div class="max-w-3xl mx-auto px-4 sm:px-6 text-center">
<h2 class="text-3xl font-extrabold">Перенесите каталог за минуты, не за дни</h2>
<p class="mt-3 text-slate-600">90 дней бесплатно. Без карты. Не понравится — заберёте свои данные.</p>
<a href="/signup" class="inline-block mt-7 px-7 py-3 bg-brand text-white font-semibold rounded-md hover:bg-brand-hover">Начать импорт</a>
</div>
</section>
</BaseLayout>

View file

@ -62,18 +62,18 @@ const integrations = [
<section class="max-w-7xl mx-auto px-4 sm:px-6 py-12 grid sm:grid-cols-3 gap-4"> <section class="max-w-7xl mx-auto px-4 sm:px-6 py-12 grid sm:grid-cols-3 gap-4">
<div class="rounded-xl border border-slate-200 p-5"> <div class="rounded-xl border border-slate-200 p-5">
<div class="text-3xl">🛒</div> <div class="text-3xl">🛒</div>
<h3 class="font-semibold mt-2">Касса с весами</h3> <h3 class="font-semibold mt-2">Касса с весами из коробки</h3>
<p class="text-sm text-slate-600 mt-1">Поддержка весов Масса-К из коробки. Чёткие чеки в формате ОФД РК.</p> <p class="text-sm text-slate-600 mt-1">Прямая поддержка Масса-К без переходников и драйверов. Подключите весы — Food Market распознает их автоматически. Поддержка штрихкодов, скидок, акций, лояльности.</p>
</div> </div>
<div class="rounded-xl border border-slate-200 p-5"> <div class="rounded-xl border border-slate-200 p-5">
<div class="text-3xl">⬇️</div> <div class="text-3xl">⬇️</div>
<h3 class="font-semibold mt-2">Быстрый импорт каталога</h3> <h3 class="font-semibold mt-2">Импорт каталога за 1 клик</h3>
<p class="text-sm text-slate-600 mt-1">Перенос товаров, остатков, контрагентов одной кнопкой за 10 минут.</p> <p class="text-sm text-slate-600 mt-1">Перенесите товары, контрагентов, остатки и штрихкоды из любой существующей системы. Поддерживаем Excel, CSV и API основных систем учёта.</p>
</div> </div>
<div class="rounded-xl border border-slate-200 p-5"> <div class="rounded-xl border border-slate-200 p-5">
<div class="text-3xl">🎁</div> <div class="text-3xl">🎁</div>
<h3 class="font-semibold mt-2">90 дней бесплатно</h3> <h3 class="font-semibold mt-2">90 дней бесплатно, без карты</h3>
<p class="text-sm text-slate-600 mt-1">Триал без банковской карты. Тариф «Старт» от 5 000 ₸/мес.</p> <p class="text-sm text-slate-600 mt-1">Зарегистрируйтесь — и 3 месяца пользуйтесь всеми возможностями без ограничений. Понравится — выберете тариф. Не понравится — заберёте свои данные и уйдёте.</p>
</div> </div>
</section> </section>
@ -105,8 +105,8 @@ const integrations = [
{/* 5. Возможности */} {/* 5. Возможности */}
<section class="bg-slate-50 py-14"> <section class="bg-slate-50 py-14">
<div class="max-w-7xl mx-auto px-4 sm:px-6"> <div class="max-w-7xl mx-auto px-4 sm:px-6">
<h2 class="text-3xl font-bold text-center mb-2">6 модулей вместо 40 функций</h2> <h2 class="text-3xl font-bold text-center mb-2">Возможности</h2>
<p class="text-center text-slate-500 mb-10">Группируем по сценариям работы, а не списком из 40 пунктов.</p> <p class="text-center text-slate-500 mb-10">Шесть модулей покрывают полный цикл работы магазина.</p>
<div class="grid sm:grid-cols-2 lg:grid-cols-3 gap-4"> <div class="grid sm:grid-cols-2 lg:grid-cols-3 gap-4">
{modules.map((m) => ( {modules.map((m) => (
<div class="bg-white rounded-xl border border-slate-200 p-5"> <div class="bg-white rounded-xl border border-slate-200 p-5">

View file

@ -1,19 +1,28 @@
--- ---
import BaseLayout from '@/layouts/BaseLayout.astro' import BaseLayout from '@/layouts/BaseLayout.astro'
const features = [ const features = [
{ icon: '⚖️', title: 'Весы Масса-К', text: 'Подключение по USB/COM. Вес автоматически попадает в чек, цена пересчитывается на лету.' }, { icon: '⚖️', title: 'Нативная поддержка весов Масса-К', text: 'Подключите весы к компьютеру кассира — Food Market распознаёт их автоматически. Поддерживаемые модели: МК-А, МК-В, MK-T, MK-D и совместимые. Подключение через RS-232 или USB-COM. Никаких сторонних драйверов.' },
{ icon: '📡', title: 'Офлайн-режим', text: 'Касса работает при отсутствии интернета. Чеки синхронизируются после восстановления связи.' }, { icon: '📡', title: 'Офлайн-режим без потери данных', text: 'Интернет пропал — касса продолжает работать. Все чеки записываются локально. Когда связь вернётся — данные подтянутся в облако автоматически.' },
{ icon: '🧾', title: 'Фискальные чеки ОФД РК', text: 'Чеки в формате ОФД Казахстана с автоматической отправкой в налоговую.' }, { icon: '🛒', title: 'Сканеры штрихкодов любых производителей', text: 'Поддерживаем все стандартные модели работающие как клавиатура (HID-эмуляция). Подключили — и работает. EAN-13/EAN-8/Code128/Datamatrix.' },
{ icon: '💳', title: 'Kaspi Pay и наличные', text: 'Оплата картой через Kaspi POS, наличными, смешанная оплата в одном чеке.' }, { icon: '🖨️', title: 'Печать чеков на ОКП-совместимом оборудовании', text: 'Любые ОКП РК совместимые принтеры. Драйверы устанавливаются автоматически.' },
{ icon: '🎫', title: 'Скидки и акции', text: 'Скидка % или фиксированная сумма, скан карт лояльности, накопительные программы.' }, { icon: '🔐', title: 'Контроль кассиров', text: 'Каждый кассир работает под своим логином. Открытие смены, инкассация, возврат — только с подтверждения администратора. Полный аудит-лог.' },
{ icon: '📦', title: 'Сканер штрихкодов', text: 'Любой USB-сканер, EAN-13/EAN-8/Code128/Datamatrix. Поиск товара за миллисекунды.' }, { icon: '💳', title: 'Программы лояльности', text: 'Поиск клиента по карте, телефону, штрихкоду. Автоматический расчёт бонусов и скидок. Накопительные программы — прямо в окне кассы.' },
{ icon: '🧾', title: 'Соответствие требованиям РК', text: 'Регистрация чеков в ОФД РК (Электронный чек). Поддержка возвратов, корректировок, отмены. Соответствие требованиям Налогового кодекса.' },
] ]
const hardware = [ const hardware = [
'Весы Масса-К серий MK / 4D / Tiger', ['Компьютер', 'Windows 10+ (32/64 bit), 4 GB RAM, 5 GB на диске'],
'Сканеры штрихкодов USB (любые HID)', ['Весы', 'Масса-К: МК-А, МК-В, MK-T, MK-D (RS-232/USB)'],
'Чековые принтеры ESC/POS (Xprinter, Sam4s)', ['Сканер штрихкодов', 'Любой HID-совместимый USB-сканер'],
'Денежный ящик RJ-11/RJ-12', ['Чековый принтер', 'Любой ОКП РК совместимый принтер'],
'Дисплей покупателя VFD', ['Денежный ящик', 'Подключение через принтер чеков (RJ-11)'],
['Дисплей покупателя', 'Опционально, любой VFD/LCD по RS-232'],
]
const steps = [
['Скачайте установщик', 'Один файл .msi ~80 МБ'],
['Запустите', 'Нажмите «Далее» три раза'],
['Введите ключ организации', 'Выдаётся в админке Food Market'],
['Подключите оборудование', 'Касса автоматически распознает весы и сканер'],
['Откройте смену', 'И пробивайте первый чек'],
] ]
--- ---
<BaseLayout title="Касса для Windows" description="Кассовая программа Food Market для Windows: поддержка весов Масса-К, офлайн-режим, фискальные чеки ОФД РК, Kaspi Pay."> <BaseLayout title="Касса для Windows" description="Кассовая программа Food Market для Windows: поддержка весов Масса-К, офлайн-режим, фискальные чеки ОФД РК, Kaspi Pay.">
@ -22,11 +31,10 @@ const hardware = [
<span class="inline-block text-xs uppercase tracking-wider text-brand font-semibold">Касса</span> <span class="inline-block text-xs uppercase tracking-wider text-brand font-semibold">Касса</span>
<h1 class="text-4xl font-extrabold mt-2">Касса для Windows<br/>с поддержкой весов Масса-К</h1> <h1 class="text-4xl font-extrabold mt-2">Касса для Windows<br/>с поддержкой весов Масса-К</h1>
<p class="mt-4 max-w-xl text-slate-600"> <p class="mt-4 max-w-xl text-slate-600">
Установщик для Windows 10/11. Работает офлайн. Печатает фискальные чеки в ОФД РК. Установите за 5 минут. Работайте офлайн. Подключайте стандартное оборудование без переходников и сторонних драйверов.
Принимает Kaspi Pay, наличные и смешанные платежи.
</p> </p>
<div class="mt-7 flex gap-3"> <div class="mt-7 flex gap-3">
<span class="px-5 py-3 bg-slate-200 text-slate-500 rounded-md font-semibold cursor-not-allowed" title="В разработке">Скачать установщик</span> <span class="px-5 py-3 bg-slate-200 text-slate-500 rounded-md font-semibold cursor-not-allowed" title="В разработке">Скачать кассу (Windows 10+)</span>
<a href="/pricing" class="px-5 py-3 border border-slate-300 rounded-md font-semibold hover:bg-slate-50">Тарифы</a> <a href="/pricing" class="px-5 py-3 border border-slate-300 rounded-md font-semibold hover:bg-slate-50">Тарифы</a>
</div> </div>
</div> </div>
@ -51,10 +59,44 @@ const hardware = [
<section class="bg-slate-50 py-14"> <section class="bg-slate-50 py-14">
<div class="max-w-3xl mx-auto px-4 sm:px-6"> <div class="max-w-3xl mx-auto px-4 sm:px-6">
<h2 class="text-3xl font-bold text-center mb-6">Поддерживаемое железо</h2> <h2 class="text-3xl font-bold text-center mb-2">Поддерживаемое железо</h2>
<ul class="bg-white rounded-xl border border-slate-200 divide-y divide-slate-100"> <p class="text-center text-slate-500 mb-8">Касса не требует фирменного железа — работает со стандартным оборудованием.</p>
{hardware.map((h) => <li class="px-5 py-3.5 text-sm">✓ {h}</li>)} <div class="bg-white rounded-xl border border-slate-200 overflow-hidden">
</ul> <table class="w-full text-sm">
<tbody>
{hardware.map(([cat, val]) => (
<tr class="border-b border-slate-100 last:border-b-0">
<td class="px-5 py-3.5 font-semibold w-1/3">{cat}</td>
<td class="px-5 py-3.5 text-slate-600">{val}</td>
</tr>
))}
</tbody>
</table>
</div>
<p class="text-center text-sm text-slate-500 mt-6">Не уверены, что ваше железо подойдёт? <a href="/contacts" class="text-brand underline">Напишите модель →</a> — проверим за 5 минут.</p>
</div>
</section>
<section class="max-w-3xl mx-auto px-4 sm:px-6 py-14">
<h2 class="text-3xl font-bold text-center mb-10">Установка за 5 минут</h2>
<ol class="space-y-4">
{steps.map(([title, desc], i) => (
<li class="flex gap-4">
<div class="flex-shrink-0 w-8 h-8 rounded-full bg-brand text-white font-bold flex items-center justify-center text-sm">{i + 1}</div>
<div>
<h3 class="font-semibold">{title}</h3>
<p class="text-sm text-slate-600 mt-1">{desc}</p>
</div>
</li>
))}
</ol>
</section>
<section class="bg-brand-light/30 py-14">
<div class="max-w-3xl mx-auto px-4 sm:px-6 text-center">
<h2 class="text-3xl font-extrabold">Касса работает с первого дня триала</h2>
<p class="mt-3 text-slate-600">Зарегистрируйтесь, скачайте кассу, подключите весы — и продавайте. 90 дней бесплатно.</p>
<a href="/signup" class="inline-block mt-7 px-7 py-3 bg-brand text-white font-semibold rounded-md hover:bg-brand-hover">Начать бесплатно</a>
</div> </div>
</section> </section>
</BaseLayout> </BaseLayout>

View file

@ -1,7 +1,7 @@
import type { APIRoute } from 'astro' import type { APIRoute } from 'astro'
const PAGES = [ const PAGES = [
'', 'features', 'pricing', 'pos', 'migration-from-moysklad', 'integrations', '', 'features', 'pricing', 'pos', 'import', 'integrations',
'for-grocery', 'for-pharmacy', 'for-cafe', 'for-alcohol', 'for-clothing', 'for-household', 'for-grocery', 'for-pharmacy', 'for-cafe', 'for-alcohol', 'for-clothing', 'for-household',
'signup', 'about', 'contacts', 'kb', 'blog', 'status', 'changelog', 'signup', 'about', 'contacts', 'kb', 'blog', 'status', 'changelog',
'legal/offer', 'legal/privacy', 'legal/consent', 'legal/requisites', 'legal/offer', 'legal/privacy', 'legal/consent', 'legal/requisites',