---
title: Оптимизация бэкенда B2B-платформы для поставщиков и магазинов розничной сети
url: https://evapps.ru/case/optimizaciya-bekenda-b2b-platformy/
description: Бэкенд-разработка для B2B-платформы, где поставщики продают товары магазинам сети: оптимизация запросов к базе, выгрузок в Excel и каталога товаров.
industry:
  - E-com
services:
  - Backend-разработка
  - Аутстаффинг разработчиков
technologies:
  - PHP
solutions: []
---

# Оптимизация бэкенда B2B-платформы для поставщиков и магазинов розничной сети

> Розничная сеть с франшизой: магазины закупают товары у поставщиков через собственную B2B-платформу сети. Платформа работает в продакшене и расширяется в сторону B2C.

## О проекте

Заказчик развивает B2B-платформу, на которой поставщики продают товары магазинам сети. Наша зона ответственности — бэкенд-разработка: производительность каталога, запросов к базе данных и выгрузок.

Через платформу магазины заказывают товары у поставщиков, а в B2C-разделе покупатель может заказать доставку на дом, если в его регионе есть пункт выдачи. Над платформой работают несколько команд: базы данных, каталог, интеграция с мобильным приложением.

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

## Задачи проекта

1. Находить и устранять узкие места в производительности каталога
2. Ускорять тяжёлые запросы к базе данных без регресса в действующем коде
3. Сделать выгрузку больших отчётов в Excel устойчивой к нехватке памяти
4. Поддерживать текущий каталог, пока команда заказчика разрабатывает новый

## Как мы это сделали

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

**2. Оптимизация запросов.** Тяжёлый запрос с объединением таблиц вынесли из проблемного места и разбили на несколько более лёгких.

**3. Выгрузка в Excel.** Выгрузка отчётов падала по памяти без сообщений об ошибке. Нашли причину в сторонней библиотеке и переносим формирование файла на отдельное расширение.

**4. Точечные правки.** Вносим изменения так, чтобы не вызвать регресс в коде, который нельзя переписать целиком без риска.

**5. Задачи по ТЗ.** Берём в работу задачи по готовым техническим заданиям с ожидаемыми сроками и выпускаем их непрерывными релизами по готовности.

## Команда продукта

Тимлид, Бэкенд-разработчики, Команда баз данных, Команда каталога, Команда мобильной интеграции, Тестирование

## Стек

PHP, Битрикс, SQL

## Как работаем

Непрерывные релизы по готовности: задачи приходят с готовыми ТЗ и ожидаемыми сроками, тимлид распределяет их по разработчикам, сложность обсуждается на ежедневных стендапах.

## Что получил клиент

- **B2B + B2C** — Платформа обслуживает магазины сети и покупателей с доставкой через пункты выдачи
- **≈30** — Специалистов в нескольких командах развивают платформу
- **1 выборка** — Вместо запросов к базе в цикле
- **Excel** — Выгрузку отчётов переводим на решение, которое не падает по памяти
- **Оптимизация без остановки продакшена** — Правки вносятся точечно в работающую платформу, пока параллельно разрабатывается новый каталог

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