Перейти к содержимому
N1
Интеграции · курсы валют · Excel

Калькулятор себестоимости импортного товара с живыми курсами и выгрузкой в Excel

Клиент: Импорт и оптовая торговля, NDA Категория: Интеграции Стек: JavaScript, SheetJS (xlsx), PHP (curl_multi), API курсов валют, HTML/CSS Срок: около 4 недель
Проблема

Себестоимость импортного товара считали в таблице вручную: курс переписывали с сайтов, доставку, пошлину и наценку прикидывали по каждой позиции отдельно. Одна ошибка в формуле — и отдел продаж получал неверную цену.

Ограничения

Поставщики выставляют цены в долларах, евро, рублях и юанях, а считать нужно в тенге; внешний сервис курсов может не ответить, а ключ доступа к нему нельзя отдавать в браузер.

Что сделал
  • Карточки позиций: цена, валюта (USD, EUR, RUB, CNY) и количество; все суммы пересчитываются сразу при любом изменении
  • Доставка по умолчанию — 6% от суммы товара, при необходимости вводится вручную в евро
  • Цепочка расчёта: пошлина, дополнительные расходы, доход на обеспечение, торговая наценка, цена без НДС и бонус менеджера — блоками для администратора и отдела продаж
  • Курсы четырёх валют к тенге — параллельными запросами (curl_multi) через PHP-прокси, ключ API остаётся на сервере; рубль и юань — кросс-курсом через доллар
  • Три попытки получить курсы с паузой; при сбое — значения по умолчанию и ручная правка любого курса
  • Выгрузка расчёта в .xlsx через SheetJS: форматированная таблица с суммами в тенге и себестоимостью по каждой позиции
Архитектура
Форма позиций (JS) → PHP-прокси курсов (curl_multi) → API курсов валют → Расчёт себестоимости → Экспорт .xlsx (SheetJS)
Результат

Себестоимость и цена реализации по каждой позиции видны сразу при вводе: курсы подтягиваются сами, а готовый расчёт выгружается в Excel одной кнопкой. Калькулятор выпущен в марте 2025 года.

Что можно переиспользовать
Параллельная загрузка курсов через curl_multi с кросс-курсом Повторные попытки с фолбэком на ручной ввод Экспорт табличного расчёта в .xlsx на стороне браузера