Налаштування Vendure Admin UI

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Налаштування Vendure Admin UI
Проста
від 1 робочого дня до 3 робочих днів
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

Налаштування Vendure Admin UI

Vendure Admin UI — це Angular-додаток, який поставляється як окремий пакет та компілюється з розширеннями плагінів. Не webcomponents та не iframe-підхід: розширення вбудовуються під час збірки через Angular Lazy Modules, що дає повний доступ до маршрутизації, компонентів та перекладів.

Розгортання зі коробки

Найшвидший варіант — AdminUiPlugin без кастомізації:

// vendure-config.ts
import { AdminUiPlugin } from "@vendure/admin-ui-plugin";

export const config: VendureConfig = {
  plugins: [
    AdminUiPlugin.init({
      route: "admin",
      port: 3002,
    }),
  ],
};

Admin UI доступний на http://localhost:3002/admin. У production рекомендується скомпілювати UI заздалегідь та відати як статику через Nginx.

Передкомпіляція (Production)

// compile-admin-ui.ts
import { compileUiExtensions } from "@vendure/ui-devkit/compiler";
import path from "path";

compileUiExtensions({
  outputPath: path.join(__dirname, "../admin-ui"),
  extensions: [
    LoyaltyPlugin.uiExtensions,
    B2bPricingPlugin.uiExtensions,
  ],
  devMode: false,
}).compile?.();
npx ts-node compile-admin-ui.ts

Результат — директорія admin-ui/dist зі статичними файлами. Вкажіть на неї:

AdminUiPlugin.init({
  route: "admin",
  port: 3002,
  app: {
    path: path.join(__dirname, "../admin-ui/dist"),
  },
}),

Брендування

AdminUiPlugin.init({
  route: "admin",
  port: 3002,
  adminUiConfig: {
    brand: "My Shop Admin",
    hideVendureBranding: true,
    hideVersion: false,
    defaultLanguage: LanguageCode.ru,
    defaultLocale: "ru",
    availableLanguages: [LanguageCode.ru, LanguageCode.en],
  },
}),

Логотип та кольори змінюються через розширення теми Angular.

Розширення Admin UI з плагіна

Кожен плагін може додати вкладку, сторінку або поле в існуючий розділ:

// loyalty.plugin.ts
@VendurePlugin({
  // ...
  configuration: (config) => config,
})
export class LoyaltyPlugin {
  static uiExtensions: AdminUiExtension = {
    id: "loyalty-ui",
    extensionPath: path.join(__dirname, "loyalty-ui"),
    routes: [{
      route: "loyalty",
      filePath: "routes.ts",
    }],
    providers: ["providers.ts"],
  };
}

Додавання кастомного поля на існуючу сторінку

Якщо плагін додає customFields до стандартної сущності, Admin UI автоматично рендерить їх. Для нестандартного рендерингу:

addActionBarItem({
  id: "view-loyalty",
  label: "Loyalty Points",
  locationId: "customer-detail",
  routerLink: (data) => ["/extensions/loyalty", data.entity?.id],
  icon: "star",
});

Переклади

Vendure Admin UI підтримує i18n через ngx-translate:

// loyalty-ui/providers.ts
{
  provide: VENDURE_UI_CONFIG,
  useValue: {
    translations: {
      ru: {
        "loyalty.title": "Програма лояльності",
        "loyalty.points": "Бали",
        "loyalty.transactions": "Історія операцій",
      },
    },
  },
}

Nginx для Admin UI у production

location /admin/ {
    root /var/www/vendure/admin-ui/dist;
    try_files $uri $uri/ /admin/index.html;

    location ~* \.(js|css|woff2|png|ico)$ {
        expires 1y;
        add_header Cache-Control "public, immutable";
    }
}

Типові проблеми

Проблема Причина Рішення
UI не оновлюється після змін плагіна Старий скомпільований dist Перезапустити compile-admin-ui.ts
Пункт меню не з'являється Не передан uiExtensions Додати розширення у extensions масив
Angular compilation error Несумісні версії @vendure/ui-devkit Синхронізувати з @vendure/core версією
Переклад не застосовується Невірний ключ languageCode Перевірити регістр: ru (не RU)