Інтернет-магазин ортодонтичних матеріалів: вітрина на Next.js, адмінка з аналітикою продажів і API на NestJS, зроблені для професійного покупця, який точно знає, що йому треба. Ось рішення, які його сформували.
Каталог для тих, хто знає артикул
Покупець тут — лікар-ортодонт, а не випадковий відвідувач. Категорії й підкатегорії несуть виробника й країну походження, бо практика купує конкретний брекет конкретного виробника, і схоже — це не заміна.
Тому каталог побудований навколо цих осей, а не навколо вітринного мерчандайзингу, а пошук існує, щоб підтвердити вже зроблений вибір.
Вхід за кодом, а не за паролем
Клієнти входять одноразовим кодом із SMS або пошти, з опцією пароля для тих, хто його хоче. У клініці закуповує той, хто сьогодні за стійкою; спільний пароль за тиждень опинився б на папірці біля монітора.
Відправник SMS схований за інтерфейсом із реалізаціями для консолі, HTTP-провайдера й Twilio, тож у розробці працює той самий код, не витрачаючи грошей на повідомлення.
Чотири стани — і це навмисно
Замовлення буває новим, в обробці, виконаним або скасованим. Магазин такого розміру ведуть люди, які й так знають клієнта; вісім станів дали б панель, повну рядків, які ніхто не рухає.
Кешбек нараховується, коли замовлення стає виконаним, і змінюється атомарно в записі клієнта, тож баланс не поїде, якщо два замовлення закриються одночасно.
Знижки, які витримують реальність
Знижки бувають у відсотках або фіксовані, а промокоди — окрема сутність зі своїми правилами, бо сезонна акція й домовлена ціна для постійної клініки — різні речі, що закінчуються в різний час.
Тримати їх окремо означає, що завершення акції ніколи не зачепить умов, які пообіцяли давньому клієнту.
Адмінка, яка відповідає на питання
Бекофіс — окремий React-застосунок із графіками продажів, тож власник бачить, що рухається, нічого не вивантажуючи. API описане у Swagger, під рейт-лімітом і з розділеною автентифікацією клієнта та адміністратора, тож зламана клієнтська сесія не дістане даних самого магазину.
Результат
Робочий магазин для професійного ринку — каталог, кошик, замовлення, кешбек і промокоди, з адмінкою, яку власник веде сам, і документованим API під усім цим.