fix(site): честность текстов + убраны чужие системы учёта; статус/changelog без фикции

Чужие СИСТЕМЫ УЧЁТА (МойСклад, 1С) убраны со всего публичного сайта: тексты,
KB, блог, FAQ, og-картинки, meta. Платёжные системы и маркетплейсы (Kaspi,
Wildberries, Ozon и т.п.) оставлены только как честная пометка «в разработке»
на /integrations и главной.

- /integrations, /import, главная, about, features, pricing, blog, kb/faq:
  «перенос из МойСклад/1С» → «импорт каталога из файлов Excel/CSV»; импорт из
  других систем учёта — «в разработке, в личном кабинете магазина».
- kb/pos-setup: касса для Windows и Linux, вход по адресу сервера + логин + PIN,
  установка «скоро»; чековые принтеры 58/80 мм (ESC/POS).
- kb/billing: переписан под реальность — биллинг-UI/подписки в продукте нет
  (заглушка до Phase 4); оплата вручную через поддержку, онлайн-оплата «в
  разработке»; убраны несуществующие «Настройки→Подписка→История», e-mail-
  напоминания, баннер, формула кредита, SLA. Цены «тг» → «₸».
- kb/faq: бэкапы «каждые 24 ч» → «регулярно»; «TLS 1.3» → «TLS»; формулировка
  про ЗРК смягчена; «триал» → «бесплатный период».
- /status: убраны фиктивные зелёные индикаторы (мониторинга нет) — честная
  пометка «в разработке» + контакты для инцидентов.
- /changelog: убран внутренний жаргон (Phase N, SuperAdmin, retention, tenant,
  inline) — человеческие формулировки.
- og.mjs: сабтайтлы без чужих брендов; касса Windows и Linux; «триал»→«бесплатно».
- sitemap.xml: канонические URL со слэшем + статьи KB и блога.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
nns 2026-10-11 01:21:47 +05:00
parent 304b72dc04
commit 330032b13a
17 changed files with 117 additions and 140 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 KiB

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 75 KiB

After

Width:  |  Height:  |  Size: 76 KiB

View file

@ -17,9 +17,9 @@ const logoUri = `data:image/png;base64,${logoPng.toString('base64')}`
const pages = [
{ file: 'home.png', title: 'Программа учёта и касса для розничных магазинов в Казахстане', sub: 'Касса с торговыми весами и импортом каталога. Бесплатно 90 дней.' },
{ file: 'pos.png', title: 'Касса для Windows с поддержкой торговых весов', sub: 'Установка за 5 минут. Офлайн-режим. Стандартное оборудование.' },
{ file: 'pricing.png', title: 'Прозрачные тарифы ALL MARKET', sub: 'От 5 000 ₸/мес. Все возможности на любом тарифе. 90 дней триал.' },
{ file: 'import.png', title: 'Перенесите каталог за один клик', sub: 'Excel, CSV, 1С, МойСклад. До 100 000 товаров. Бесплатно.' },
{ file: 'pos.png', title: 'Касса для Windows и Linux с поддержкой торговых весов', sub: 'Офлайн-режим. Торговые весы и стандартное оборудование.' },
{ file: 'pricing.png', title: 'Прозрачные тарифы ALL MARKET', sub: 'От 5 000 ₸/мес. Все возможности на любом тарифе. 90 дней бесплатно.' },
{ file: 'import.png', title: 'Перенесите каталог за один клик', sub: 'Импорт каталога из файлов Excel и CSV. До 100 000 товаров. Бесплатно.' },
{ file: 'about.png', title: 'О ALL MARKET', sub: 'Программа учёта розничной торговли, созданная в Казахстане.' },
{ file: 'for-grocery.png', title: 'ALL MARKET для продуктового магазина', sub: 'Весовой товар, скоропорт, штрихкоды, учёт остатков.' },
{ file: 'for-pharmacy.png', title: 'ALL MARKET для аптеки', sub: 'Серии, сроки годности, рецептурный отпуск, контроль ЛП.' },

View file

@ -7,8 +7,6 @@ description: "Сегодня мы запускаем ALL MARKET — програ
cover_image: /photos/blog-launch.jpg
---
# ALL MARKET запустился
Сегодня мы открываем публичный доступ к ALL MARKET — программе учёта розничной торговли, созданной командой казахстанских разработчиков и практиков ритейла.
## Что мы сделали
@ -18,25 +16,25 @@ cover_image: /photos/blog-launch.jpg
- **работать с первого клика** — без долгой настройки и платных консультаций
- **стоить честно** — без скрытых доплат за модули, которые должны быть в базе
- **поддерживать локальное железо** — торговые весы нативно, без переходников и сторонних драйверов
- **позволять попробовать без риска** — настоящий триал, а не «14 дней с привязкой карты»
- **позволять попробовать без риска** — честный бесплатный период, а не «14 дней с привязкой карты»
Мы воплотили эти принципы в ALL MARKET.
## Что вы получаете
- **5 000 тг/мес** за тариф «Старт» — 1 магазин, 1 касса, 1 склад, без лимита товаров
- **90 дней триала** без карты, без обязательств, со всеми возможностями
- **Касса для Windows** с нативной поддержкой торговых весов
- **Импорт каталога** из Excel, CSV или API за один клик
- **Все возможности на любом тарифе** — никаких доплат за CRM, лояльность, финансы или сценарии
- **5 000 ₸/мес** за тариф «Старт» — 1 магазин, 1 касса, 1 склад, без лимита товаров
- **90 дней бесплатно** — без карты и без обязательств
- **Касса для Windows и Linux** с нативной поддержкой торговых весов (приложение для скачивания — скоро)
- **Импорт каталога** из файлов Excel/CSV за один клик
- **Без доплат за модули** — учёт денег, отчёты и работа с клиентами входят в тариф
## Что дальше
Сейчас мы открываем регистрацию и принимаем первых клиентов. Будем активно собирать обратную связь и улучшать продукт каждую неделю.
В ближайших планах:
- Интеграция с Kaspi Magazin
- Marketplace интеграции (Wildberries, Ozon — Q4 2026)
- Приём оплат картой и онлайн-касса (ОФД) — в разработке
- Маркетплейсы — в разработке
- Мобильное приложение для руководителя
[Зарегистрироваться →](/signup)

View file

@ -4,11 +4,9 @@ date: 2026-04-30
author: Команда ALL MARKET
category: guide
description: "Пошаговая инструкция первого запуска: от регистрации до первой продажи."
cover_image: /photos/blog-quickstart.jpg
cover_image: /screenshots/catalog.webp
---
# Запустите магазин в ALL MARKET за 15 минут
Часто новые SaaS-сервисы требуют дней на настройку и обучение. Мы спроектировали ALL MARKET так, чтобы вы могли начать продавать в день регистрации.
Реальное время от пустого экрана до первого пробитого чека — **15 минут**.
@ -32,9 +30,7 @@ cover_image: /photos/blog-quickstart.jpg
- Сопоставьте колонки (название, штрихкод, цена) — ALL MARKET подскажет правильное соответствие
- Запустите импорт — 5 000 SKU перенесутся за минуту
**Б. Импорт через API** — если работаете в системе с открытым API:
- «Импорт» → выберите систему → введите API-токен
- Запустите автоматическую синхронизацию
**Б. Импорт из других систем учёта** — в разработке: появится в личном кабинете магазина. Пока используйте импорт из файла Excel/CSV.
**В. Вручную** — если у вас 10-50 товаров:
- «Товары» → «Добавить»
@ -42,10 +38,10 @@ cover_image: /photos/blog-quickstart.jpg
## Шаг 3. Установите кассу (5 минут)
Приложение кассы для Windows — скоро (появится в разделе «Касса»).
Приложение кассы для Windows и Linux — скоро (появится в разделе «Касса»).
1. Запустите .msi файл — нажмите «Далее» три раза
2. Введите ключ организации (показан в админке)
1. Когда касса будет доступна: укажите адрес сервера и войдите логином
2. Задайте PIN кассира — касса привяжется к точке продаж
3. Подключите торговые весы через USB-COM
4. Подключите сканер штрихкодов через USB
5. Подключите чековый принтер
@ -67,8 +63,8 @@ cover_image: /photos/blog-quickstart.jpg
После первой продажи:
- Добавьте остальных кассиров — «Сотрудники» → «Добавить»
- Настройте программу лояльности — «Лояльность» → «Создать программу»
- Запустите акции и скидки — «Маркетинг» → «Акции»
- Запустите акции и скидки — раздел «Акции и скидки»
- Программа лояльности — в расширенном режиме (раздел «Лояльность»)
Полная документация в нашей [Базе знаний](/kb).

View file

@ -4,60 +4,41 @@ category: Биллинг
order: 4
---
Полная информация о подписках ALL MARKET и порядке оплаты.
Информация о тарифах ALL MARKET и порядке оплаты.
## Тарифы
См. полную таблицу на [странице тарифов](/pricing).
Кратко:
Все тарифы — первые 90 дней бесплатно, без банковской карты.
Кратко — первые 90 дней бесплатно, без банковской карты:
- **Старт** — 5 000 тг/мес, 1 магазин, 1 касса, 1 склад, до 2 сотрудников
- **Бизнес** — от 10 000 тг/мес, конструктор (до 3 магазинов / 5 касс / 5 складов)
- **Старт** — 5 000 ₸/мес, 1 магазин, 1 касса, 1 склад, до 2 сотрудников
- **Бизнес** — от 10 000 ₸/мес, конструктор (до 3 магазинов / 5 касс / 5 складов)
- **Сеть** — по запросу, без ограничений
## Способы оплаты
### Для физических лиц и ИП
Способ оплаты подписки уточняется — свяжитесь с нами: support@food-market.kz. Приём оплат картой онлайн — в разработке.
На время раннего доступа оплату оформляем вручную — напишите на billing@food-market.kz, подскажем удобный способ. Самостоятельная оплата в личном кабинете и приём оплат картой онлайн — в разработке.
### Для юридических лиц
- Безналичный расчёт по счёту-фактуре
- Email счёта-фактуры — billing@food-market.kz с реквизитами вашего ТОО
- Срок оплаты — 5 рабочих дней с даты выставления счёта
- Безналичный расчёт по счёту
- Чтобы выставить счёт, напишите на billing@food-market.kz с реквизитами вашего ТОО
- Доступ продлевается после поступления средств на расчётный счёт
## Изменение тарифа
В любой момент через «Настройки» → «Подписка».
**Повышение тарифа** (например Старт → Бизнес):
- Доплата за оставшийся период текущего тарифа
- Расчёт: (новая цена − старая цена) × оставшиеся дни / 30
- Доступ к новым возможностям — сразу после оплаты
**Понижение тарифа** (Бизнес → Старт):
- Кредит на следующий месяц
- Расчёт: (старая цена − новая цена) × оставшиеся дни / 30
- Кредит сгорает через 6 месяцев если не использован
Тариф можно сменить в любой момент — напишите в поддержку (support@food-market.kz), и мы пересчитаем стоимость за оставшийся оплаченный период. Порядок перерасчёта при повышении и понижении тарифа уточняйте в поддержке.
## Истечение оплаченного периода
За 7 дней до окончания:
- Email-напоминание о необходимости продления
- Баннер в админке
Мы заранее напомним об окончании оплаченного периода. Если оплата не поступит:
В день окончания (если не оплачено):
- Доступ к админке сохраняется (только просмотр)
- Доступ к админке сохраняется в режиме просмотра
- Касса блокируется (нельзя открыть смену)
- Импорт и экспорт работают
- Экспорт данных продолжает работать
Через 30 дней без оплаты:
- Email с финальным предупреждением
- Контент сохраняется 30 календарных дней (см. оферту, п. 5.3/11.3), после чего может быть удалён
Контент сохраняется 30 календарных дней (см. оферту, п. 5.3/11.3), после чего может быть удалён.
## Возврат средств
@ -65,19 +46,17 @@ order: 4
Заявка: support@food-market.kz с указанием причины и реквизитов для возврата.
## История платежей и счёта
## История платежей и документы
«Настройки» → «Подписка» → «История»:
- Список всех платежей за период
- Скачивание счетов-фактур (для юрлиц)
- Скачивание чеков об оплате (для физлиц)
Историю платежей и копии счетов можно запросить в поддержке — billing@food-market.kz. Личный кабинет с историей платежей и скачиванием документов — в разработке.
## Корпоративные клиенты
Для тарифа «Сеть» и сетей с >3 магазинами:
Для тарифа «Сеть» и сетей с несколькими магазинами:
- Индивидуальный договор
- Безналичный расчёт с НДС
- SLA по доступности и скорости поддержки
- Выделенный менеджер
- Безналичный расчёт
- Персональный менеджер
- Индивидуальные условия поддержки
Заявка: sales@food-market.kz

View file

@ -4,16 +4,16 @@ category: Общее
order: 5
---
## Регистрация и триал
## Регистрация и бесплатный период
### Сколько длится триал?
### Сколько длится бесплатный период?
90 дней с момента регистрации. Без необходимости вводить карту.
### Что произойдёт после 90 дней?
Доступ к админке сохранится в режиме просмотра. Касса заблокируется. Если в течение 30 дней не оплатите — данные удаляются.
### Можно ли активировать триал повторно?
Нет, триал предоставляется один раз на email. После окончания — нужно выбрать платный тариф.
### Можно ли активировать бесплатный период повторно?
Нет, бесплатный период предоставляется один раз на email. После окончания — нужно выбрать платный тариф.
### Можно ли пользоваться без email?
Нет, email обязателен — это ваш логин и канал уведомлений.
@ -21,7 +21,7 @@ order: 5
## Тарифы и оплата
### Сколько стоит самый дешёвый тариф?
Старт — 5 000 тг/мес. Включает 1 магазин, 1 кассу, 1 склад, до 2 сотрудников, без лимита товаров.
Старт — 5 000 ₸/мес. Включает 1 магазин, 1 кассу, 1 склад, до 2 сотрудников, без лимита товаров.
### Что входит в тариф Бизнес?
Конструктор: до 3 магазинов, до 5 касс, до 5 складов. Цена считается по формуле base 10 000 + 2 000 за магазин + 500 за кассу + 500 за склад.
@ -52,13 +52,13 @@ order: 5
## Данные и безопасность
### Где хранятся мои данные?
На серверах в Казахстане. Резервные копии каждые 24 часа.
На серверах в Казахстане. Делаем регулярные резервные копии.
### Можно ли экспортировать данные?
Да, в любой момент. Экспорт каталога, контрагентов, операций в Excel/CSV.
### Безопасно ли вводить данные клиентов?
Да. Данные шифруются при передаче (TLS 1.3) и при хранении. Соответствие ЗРК «О персональных данных».
Да. Данные шифруются при передаче (TLS) и при хранении. Персональные данные обрабатываем в соответствии с законодательством РК.
### Что будет с моими данными если я закрою аккаунт?
30 дней хранятся на случай восстановления, потом удаляются безвозвратно.
@ -66,7 +66,7 @@ order: 5
## Импорт и миграция
### Можно перенести данные из другой системы учёта?
Да. Поддерживаем импорт из файла Excel/CSV, выгрузку 1С (сохранённую в CSV) и перенос из МойСклад по токену. Подробнее — на странице [/import](/import).
Да. Поддерживаем импорт каталога из файла Excel/CSV (название, штрихкод, цена, остаток, группа). Импорт из других систем учёта — в разработке (появится в личном кабинете). Подробнее — на странице [/import](/import).
### Какой объём каталога переносится?
До 100 000 товаров за один импорт. Каталог 10 000 позиций обычно переносится за 5–10 минут.
@ -85,7 +85,7 @@ order: 5
Ежедневно с 09:00 до 18:00 по Астане. В выходные — задержка ответа до 24 часов.
### Платная ли поддержка?
Базовая поддержка бесплатна для всех тарифов. Приоритетная поддержка с SLA — в тарифах Бизнес и Сеть.
Базовая поддержка бесплатна для всех тарифов. Приоритетная поддержка — в тарифах Бизнес и Сеть.
### Есть ли обучение и внедрение?
Большинство клиентов справляются самостоятельно с помощью базы знаний. Если нужна помощь с настройкой или импортом — напишите в поддержку, поможем.

View file

@ -4,38 +4,29 @@ category: Касса
order: 3
---
Полная инструкция установки и настройки кассы ALL MARKET для Windows. Время — 15-20 минут.
Касса ALL MARKET — приложение для Windows и Linux. Работает и офлайн.
## Системные требования
- **ОС:** Windows 10 (64-bit) или Windows 11
- **ОС:** Windows 10/11 (64-bit) или Linux x64
- **CPU:** любой Intel/AMD от 2015 года
- **RAM:** 4 GB минимум, 8 GB рекомендуется
- **Диск:** 5 GB свободного места
- **Интернет:** опционально (касса работает офлайн)
## Скачивание установщика
1. Войдите в админку ALL MARKET
2. Откройте раздел «Касса» в боковом меню
3. Приложение кассы для Windows — скоро (кнопка появится в разделе «Касса»)
4. Сохраните файл `food-market-pos-setup.msi` (~80 МБ)
## Установка
1. Запустите скачанный `.msi` файл
2. Если Windows покажет предупреждение — нажмите «Подробнее» → «Выполнить в любом случае» (мы скоро подпишем сертификатом)
3. В мастере установки нажмите «Далее» три раза, затем «Установить»
4. Подождите 1-2 минуты пока завершится установка
5. По завершении — запустите кассу с рабочего стола
Приложение кассы для скачивания — **скоро**: кнопка появится в админке в разделе «Касса».
Здесь опишем шаги по мере готовности. Если нужна касса уже сейчас — напишите в поддержку.
## Активация
## Вход и привязка к точке
При первом запуске касса попросит ввести **ключ организации**.
При первом запуске касса спросит адрес сервера и логин:
1. В админке ALL MARKET: «Касса» → «Ключ организации» — скопируйте 32-символьный код
2. В кассе — вставьте ключ, нажмите «Активировать»
3. Касса синхронизирует каталог товаров с облаком (~30 секунд для 5000 SKU)
1. Укажите адрес сервера (например, `https://admin.food-market.kz`)
2. Войдите логином сотрудника — касса привяжется к точке продаж
3. Дальше — быстрый вход по **PIN** кассира на этом устройстве
4. Касса загрузит каталог товаров для работы офлайн
## Подключение оборудования
@ -65,7 +56,7 @@ order: 3
4. Выберите принтер из выпадающего списка
5. Нажмите «Тестовая печать» — должен распечататься тестовый чек
Поддерживаемые принтеры: любые ОКП РК-совместимые модели.
Поддерживаются чековые принтеры 58/80 мм (ESC/POS).
## Открытие смены и первая продажа

View file

@ -20,7 +20,7 @@ import BaseLayout from '@/layouts/BaseLayout.astro'
<li>Касса с торговыми весами — для Windows и Linux, работает без интернета.</li>
<li>Склад: приёмки, инвентаризация, списание, оприходование, перемещение.</li>
<li>Отчёты по продажам, остаткам и прибыли.</li>
<li>Перенос каталога из МойСклад и из файла CSV (в том числе выгрузки 1С).</li>
<li>Перенос каталога из файлов Excel/CSV.</li>
</ul>
<h2>Что в разработке</h2>

View file

@ -1,17 +1,17 @@
---
import BaseLayout from '@/layouts/BaseLayout.astro'
const releases = [
{ date: '2026-04', title: 'Phase 6 — Публичный сайт', items: ['Маркетинговый сайт food-market.kz','Регистрация без админа платформы','Тарифы Старт / Бизнес-конструктор / Сеть'] },
{ 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 2 — Закупки и приёмки', items: ['Документ приёмки со сканером','Скользящее среднее себестоимости','Inline quick-add позиций'] },
{ date: '2026-03', title: 'Phase 1 — Каталог и tenant-изоляция', items: ['Multi-tenant архитектура','Товары, группы, штрихкоды, остатки','Импорт из других систем'] },
{ date: '2026-04', title: 'Публичный сайт и регистрация', items: ['Сайт ALL MARKET','Самостоятельная регистрация магазина','Тарифы: Старт, конструктор «Бизнес», Сеть'] },
{ date: '2026-04', title: 'Управление и безопасность', items: ['Управление организациями','Журнал действий','Режим просмотра «открыть как…»','Правки с указанием причины и историей изменений','Настраиваемый срок хранения данных'] },
{ date: '2026-04', title: 'Цены, сотрудники и роли', items: ['Гибкие типы цен (розница, опт)','Сотрудники и права доступа','Готовые роли: администратор и кассир'] },
{ date: '2026-04', title: 'Закупки и приёмки', items: ['Приёмка товара со сканером','Автоматический расчёт себестоимости','Быстрое добавление позиций'] },
{ date: '2026-03', title: 'Каталог и учёт по магазинам', items: ['Данные каждого магазина изолированы друг от друга','Товары, группы, штрихкоды, остатки','Импорт каталога из файлов Excel/CSV'] },
]
---
<BaseLayout title="Changelog" description="История релизов ALL MARKET: что нового в продукте.">
<BaseLayout title="Что нового" description="История обновлений ALL MARKET: что нового в продукте.">
<section class="max-w-3xl mx-auto px-4 sm:px-6 py-14">
<h1 class="text-4xl font-extrabold">Changelog</h1>
<p class="text-slate-500 mt-2">История релизов ALL MARKET.</p>
<h1 class="text-4xl font-extrabold">Что нового</h1>
<p class="text-slate-500 mt-2">История обновлений ALL MARKET.</p>
<div class="mt-10 space-y-8">
{releases.map((r) => (
<article class="rounded-xl border border-slate-200 bg-white p-5">

View file

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

View file

@ -2,38 +2,38 @@
import BaseLayout from '@/layouts/BaseLayout.astro'
const formats = [
{ icon: '📊', title: 'Файл CSV', text: 'Выгрузите каталог из старой системы в CSV (Excel умеет «Сохранить как CSV»). ALL MARKET разложит данные по колонкам. Нужны колонки: название, штрихкод, цена — остальное по желанию.' },
{ icon: '🔌', title: 'Из МойСклад', text: 'Введите токен МойСклад — ALL MARKET подтянет товары, контрагентов, остатки и цены.' },
{ icon: '📦', title: 'Из 1С', text: 'Сохраните типовую выгрузку 1С (Бухгалтерия, УТ, Розница) в CSV и загрузите файлом. Каталог, цены, штрихкоды, группы.' },
{ icon: '📊', title: 'Файл Excel/CSV', text: 'Выгрузите каталог из старой системы в CSV (Excel умеет «Сохранить как CSV»). ALL MARKET разложит данные по колонкам. Нужны колонки: название, штрихкод, цена — остальное по желанию.' },
{ icon: '✍️', title: 'Вручную', text: 'Если товаров немного — заводите карточки прямо в админке: «Товары» → «Добавить». Удобно для 10–50 позиций.' },
{ icon: '🧩', title: 'Из других систем учёта', text: 'Импорт напрямую из других систем учёта — в разработке. Появится в личном кабинете магазина.' },
]
const matrix: [string, string, string][] = [
['Товары (название, штрихкоды, цены)', '✅', '✅'],
['Группы товаров', '✅', '✅'],
['Единицы измерения', '✅', '✅'],
['Контрагенты (поставщики, клиенты)', '⚠️ Отдельным файлом', '✅'],
['Текущие остатки по складам', '⚠️ Отдельным файлом', '✅'],
['Цены по типам (розница, опт)', '⚠️ Отдельным файлом', '✅'],
const matrix: [string, string][] = [
['Товары (название, штрихкоды, цены)', '✅'],
['Группы товаров', '✅'],
['Единицы измерения', '✅'],
['Контрагенты (поставщики, клиенты)', '⚠️ Отдельным файлом'],
['Текущие остатки по складам', '⚠️ Отдельным файлом'],
['Цены по типам (розница, опт)', '⚠️ Отдельным файлом'],
]
const steps = [
{ title: 'Зарегистрируйтесь в ALL MARKET', text: 'Заполните короткую форму: email, название магазина, пароль. 90 дней бесплатно, без карты.' },
{ title: 'Подготовьте данные', text: 'CSV: выгрузите каталог из старой системы в CSV. Из МойСклад: получите токен в настройках МойСклад.' },
{ title: 'Запустите импорт', text: 'В админке: «Импорт» → выберите формат → загрузите файл или введите токен → нажмите «Запустить».' },
{ title: 'Подготовьте файл', text: 'Выгрузите каталог из старой системы в CSV (или Excel «Сохранить как CSV»). Нужны колонки: название, штрихкод, цена.' },
{ title: 'Запустите импорт', text: 'В админке: «Импорт» → «Из файла» → загрузите файл → сопоставьте колонки → нажмите «Запустить».' },
{ title: 'Проверьте результат', text: 'Откройте «Товары» — каталог должен быть полным. Проверьте 5–10 случайных товаров: цены, штрихкоды, остатки.' },
{ title: 'Начните вести учёт', text: 'Каталог, остатки и отчёты — сразу в браузере. Касса для Windows и Linux появится для скачивания скоро.' },
]
const faq = [
{ q: 'Сохранятся ли данные в исходной системе?', a: 'Да. Импорт из МойСклад только читает данные — ничего не удаляет и не меняет. Импорт из файла работает с копией. Ваш текущий учёт остаётся нетронутым.' },
{ q: 'Можно ли работать в обеих системах параллельно?', a: 'Технически — да, в бесплатный период. Но синхронизации в реальном времени нет — это создаст путаницу с остатками. Лучше выбрать одну систему как основную.' },
{ q: 'Сохранятся ли данные в исходной системе?', a: 'Да. Импорт работает с копией вашего файла — он ничего не меняет в исходной системе. Ваш текущий учёт остаётся нетронутым.' },
{ q: 'Можно ли работать в двух системах параллельно?', a: 'Технически — да, в бесплатный период. Но синхронизации в реальном времени нет — это создаст путаницу с остатками. Лучше выбрать одну систему как основную.' },
{ q: 'Что если у меня кастомные поля или специфичные настройки?', a: 'Напишите нам перед импортом — посмотрим. В большинстве случаев всё переносится. Если что-то нестандартное — настроим вручную.' },
{ q: 'Сколько времени занимает импорт?', a: 'Каталог 1 000 товаров — около 1 минуты. 10 000 товаров — 5–10 минут. 50 000+ — до часа. Прогресс отображается в реальном времени.' },
{ q: 'Сколько стоит импорт?', a: 'Бесплатно. Никаких сборов за импорт, настройку или консультацию.' },
{ q: 'Что если возникли проблемы?', a: 'Напишите на support@food-market.kz — поможем разобраться и при необходимости настроим импорт вручную.' },
]
---
<BaseLayout title="Импорт каталога" description="Перенесите товары, контрагентов, остатки и штрихкоды из вашей системы за минуты. CSV, 1С, МойСклад." ogImage="/og/import.png">
<BaseLayout title="Импорт каталога" description="Перенесите товары, остатки и штрихкоды из файла Excel/CSV за минуты — без ручного ввода." ogImage="/og/import.png">
<section class="relative overflow-hidden">
<img src="/screenshots/catalog.webp" srcset="/screenshots/catalog.webp 1440w, /screenshots/catalog@2x.webp 2880w" sizes="100vw" width="1440" height="900" alt="Каталог товаров в ALL MARKET" class="absolute inset-0 w-full h-full object-cover" />
<div class="absolute inset-0 bg-gradient-to-r from-slate-900/85 via-slate-900/60 to-slate-900/30"></div>
@ -73,16 +73,14 @@ const faq = [
<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">CSV (файл)</th>
<th class="px-5 py-3 text-center font-semibold">МойСклад</th>
<th class="px-5 py-3 text-center font-semibold">Импорт из файла Excel/CSV</th>
</tr>
</thead>
<tbody>
{matrix.map(([entity, csv, api]) => (
{matrix.map(([entity, csv]) => (
<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>

View file

@ -3,7 +3,7 @@ import BaseLayout from '@/layouts/BaseLayout.astro'
import FAQ from '@/components/FAQ.tsx'
const modules = [
{ icon: '📦', title: 'Товары и каталог', text: 'Группы, штрихкоды, цены, остатки. Перенос каталога файлом или из МойСклад.' },
{ icon: '📦', title: 'Товары и каталог', text: 'Группы, штрихкоды, цены, остатки. Перенос каталога из файла (Excel/CSV).' },
{ icon: '💳', title: 'Продажи и касса', text: 'Касса с весами, сканером и печатью чека. Работает на Windows и Linux, в том числе без интернета.' },
{ icon: '🏬', title: 'Склад и приёмки', text: 'Несколько складов, приёмка со сканером, инвентаризация, списание, оприходование, перемещение.' },
{ icon: '🚚', title: 'Закупки и себестоимость', text: 'Приёмки от поставщиков. Себестоимость считается автоматически по приёмкам.' },
@ -60,7 +60,7 @@ const modules = [
<div class="rounded-xl border border-slate-200 p-5">
<div class="text-3xl">⬇️</div>
<h3 class="font-semibold mt-2">Перенос каталога без ручного ввода</h3>
<p class="text-sm text-slate-600 mt-1">Загрузите товары, остатки и штрихкоды файлом CSV (в том числе выгрузкой из 1С) или подтяните из МойСклад. Не нужно заводить тысячи позиций руками.</p>
<p class="text-sm text-slate-600 mt-1">Загрузите товары, остатки и штрихкоды файлом Excel/CSV. Не нужно заводить тысячи позиций руками.</p>
</div>
<div class="rounded-xl border border-slate-200 p-5">
<div class="text-3xl">🎁</div>
@ -178,7 +178,7 @@ const modules = [
<div class="max-w-3xl mx-auto px-4 sm:px-6 text-center">
<h2 class="text-3xl font-bold mb-3">Перенос и интеграции</h2>
<p class="text-slate-600">
Переносим каталог из МойСклад и из CSV (в том числе выгрузки из 1С) — уже сейчас.
Переносим каталог из файлов Excel/CSV — уже сейчас.
Онлайн-касса (ОФД), приём оплат картой и маркетплейсы — в разработке.
</p>
<a href="/import" class="mt-5 inline-block text-sm font-semibold text-brand hover:text-brand-hover">Как перенести каталог →</a>
@ -199,7 +199,7 @@ const modules = [
<li>2 сотрудника</li>
<li>Без ограничения по числу товаров</li>
<li>Касса с весами</li>
<li>Перенос каталога из CSV и МойСклад</li>
<li>Перенос каталога из файлов Excel/CSV</li>
</ul>
<a href="/signup?plan=start" class="block text-center mt-6 px-4 py-2.5 bg-brand text-white rounded-md font-semibold">Начать</a>
</div>
@ -214,7 +214,7 @@ const modules = [
<li>До 10 сотрудников</li>
<li>Все отчёты по прибыли и остаткам</li>
</ul>
<a href="/pricing" class="block text-center mt-6 px-4 py-2.5 bg-brand text-white rounded-md font-semibold">Настроить тариф</a>
<a href="/pricing#configurator" class="block text-center mt-6 px-4 py-2.5 bg-brand text-white rounded-md font-semibold">Настроить тариф</a>
</div>
<div class="rounded-xl border border-slate-200 p-6 bg-white">
<h3 class="font-bold text-lg">Сеть</h3>

View file

@ -1,15 +1,16 @@
---
import BaseLayout from '@/layouts/BaseLayout.astro'
const ready = [
{ title: 'Перенос каталога', items: ['Импорт из МойСклад по токену', 'Импорт из файла CSV', 'Выгрузка 1С (сохранённая в CSV)'] },
{ title: 'Оборудование', items: ['Торговые весы CAS, Масса-К и совместимые (USB/COM)', 'USB-сканеры штрихкодов', 'Чековые принтеры 58/80 мм', 'Денежные ящики', 'Дисплей покупателя (по RS-232)'] },
{ title: 'Перенос каталога', items: ['Импорт каталога из файла Excel/CSV', 'Переносятся названия, штрихкоды, цены, остатки, группы'] },
{ title: 'Оборудование', items: ['Торговые весы CAS, Масса-К и совместимые (USB/COM)', 'USB-сканеры штрихкодов', 'Чековые принтеры 58/80 мм (ESC/POS)', 'Денежные ящики', 'Дисплей покупателя (RS-232)'] },
]
const planned = [
{ title: 'Онлайн-касса и оплаты', items: ['Фискализация через ОФД РК', 'Приём оплат картой (Kaspi Pay и банки)'] },
{ title: 'Маркетплейсы', items: ['Kaspi Magazin', 'Ozon', 'Wildberries'] },
{ title: 'Импорт из других систем учёта', items: ['Перенос из других систем учёта — появится в личном кабинете магазина'] },
]
---
<BaseLayout title="Перенос и интеграции" description="Что уже подключается к ALL MARKET: МойСклад, CSV, 1С, торговое оборудование. Онлайн-касса (ОФД), оплаты картой и маркетплейсы — в разработке.">
<BaseLayout title="Перенос и интеграции" description="Что уже работает: импорт каталога из файлов Excel/CSV и торговое оборудование. Онлайн-касса (ОФД), приём оплат картой и маркетплейсы — в разработке.">
<section class="max-w-5xl mx-auto px-4 sm:px-6 py-12">
<h1 class="text-4xl font-extrabold text-center">Перенос и интеграции</h1>
<p class="text-center text-slate-500 mt-3">Честно о том, что уже работает и что готовим.</p>

View file

@ -1,4 +1,5 @@
import type { APIRoute } from 'astro'
import { getCollection } from 'astro:content'
const PAGES = [
'', 'features', 'pricing', 'pos', 'import', 'integrations',
@ -7,9 +8,19 @@ const PAGES = [
'legal/offer', 'legal/privacy', 'legal/consent', 'legal/requisites',
]
export const GET: APIRoute = ({ site }) => {
export const GET: APIRoute = async ({ site }) => {
const base = (site?.toString() ?? 'https://test.food-market.kz').replace(/\/$/, '')
const urls = PAGES.map((p) => `<url><loc>${base}/${p}</loc></url>`).join('\n ')
// Канонические URL — со слэшем на конце (Astro отдаёт .../features/, а запрос
// без слэша 301-редиректится). Статьи KB и блога добавляем из коллекций.
const kb = await getCollection('kb')
const blog = await getCollection('blog')
const paths = [
...PAGES,
...kb.map((e) => `kb/${e.slug}`),
...blog.map((e) => `blog/${e.slug}`),
]
const loc = (p: string) => (p === '' ? `${base}/` : `${base}/${p}/`)
const urls = paths.map((p) => `<url><loc>${loc(p)}</loc></url>`).join('\n ')
const xml = `<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
${urls}

View file

@ -1,15 +1,18 @@
---
import BaseLayout from '@/layouts/BaseLayout.astro'
---
<BaseLayout title="Status" description="Статус систем ALL MARKET: API, админка, касса.">
<BaseLayout title="Статус" description="Страница статуса систем ALL MARKET.">
<section class="max-w-2xl mx-auto px-4 sm:px-6 py-14">
<h1 class="text-4xl font-extrabold text-center">Статус систем</h1>
<ul class="mt-10 divide-y divide-slate-200 border border-slate-200 rounded-xl bg-white">
<li class="flex items-center justify-between px-5 py-4"><span>API</span><span class="text-emerald-600 text-sm">● Работает</span></li>
<li class="flex items-center justify-between px-5 py-4"><span>Админка</span><span class="text-emerald-600 text-sm">● Работает</span></li>
<li class="flex items-center justify-between px-5 py-4"><span>База данных</span><span class="text-emerald-600 text-sm">● Работает</span></li>
<li class="flex items-center justify-between px-5 py-4"><span>Касса (Windows)</span><span class="text-slate-400 text-sm">○ Скоро</span></li>
</ul>
<p class="text-xs text-slate-400 mt-6 text-center">Раздел в разработке. Скоро добавим автоматический мониторинг и историю инцидентов.</p>
<div class="mt-8 rounded-xl border border-slate-200 bg-white p-6 text-center">
<p class="text-slate-700">Публичная страница статуса с автоматическим мониторингом и историей инцидентов — в разработке. Пока реального статуса в реальном времени здесь нет, поэтому мы не показываем его, чтобы не вводить в заблуждение.</p>
<p class="text-slate-600 mt-4">Если вы столкнулись с перебоем в работе — напишите нам, ответим оперативно:</p>
<p class="mt-3 text-sm">
<a href="mailto:support@food-market.kz" class="text-brand underline">support@food-market.kz</a>
<span class="text-slate-400"> · </span>
Telegram <span class="font-medium">@FoodMarketKZ_Support</span>
</p>
</div>
<p class="text-xs text-slate-400 mt-6 text-center">Приложение кассы для Windows и Linux — скоро.</p>
</section>
</BaseLayout>