مستنداتبخش برنامه نویسانمعماری کلی سیستم

معماری جامع سیستم (Enterprise Headless Architecture)

پروژه Loomix Commerce بر پایه معماری سه‌گانه Headless Decoupled پیاده‌سازی شده است. این سیستم تفکیک‌شده باعث بالا رفتن مقیاس‌پذیری، امنیت، سرعت و قابلیت توسعه لایه‌های فرانت‌اند و بک‌اند بدون وابستگی سخت می‌شود.

۱. فرانت‌اند (Next.js 16 App Router)

رابط کاربری خریداران با React Server Components، i18n چندزبانه، رندرینگ پویای Loomix Blocks و کشینگ آنی با Revalidation.

۲. موتور فروشگاهی (Medusa v2)

مدیریت کاتالوگ محصولات، تنوع‌ها، قیمت‌گذاری منطقه‌ای، سبد خرید، Workflows ثبت سفارش، پیامک OTP و پست ایران.

۳. مدیریت محتوا (Strapi CMS)

مدیریت چیدمان برگه‌ها، بنرها، بلاگ، منوهای فوتر/هدر، ترجمه اپشن‌های محصولات و سیستم وب‌هوک‌های لحظه‌ای.

۴. اکوسیستم Loomix Blocks

بلاک‌های بصری آماده که از طریق منوی Storefront در پنل استراپی و GitHub CI/CD همگام شده و توسط BlockRenderer به صورت پویا رندر می‌شوند.

جریان فراخوانی و رندرینگ داده‌ها در Next.js

  1. دریافت چیدمان برگه اصلی و بلاک‌های پویای Strapi CMS
  2. دریافت قیمت‌های منطقه‌ای و کاتالوگ از Medusa 2.0 Engine
  3. کوئری گرفتن مستقیم از Meilisearch برای فیلترها و رنگ‌ها
  4. رندر داینامیک بلاک‌های استرپی به کامپوننت‌های Loomix Blocks
نحوه ترکیب داده‌های Strapi و Medusa در Next.js 16
typescript
const homepageData = await getHomepageData();
const region = await getRegion(countryCode);
const searchResults = await queryMeilisearch({ color: "Red", price_range: [10, 50] });
return (
<main>
{homepageData.blocks.map((block, index) => (
<BlockRenderer
key={block.id}
block={block}
region={region}
countryCode={countryCode}
/>
))}
</main>
);

شبکه توکن‌ها و امنیت متغیرهای محیطی (.env)

.env.example
bash
# آدرس‌های عمومی سرویس‌ها
STOREFRONT_PUBLIC_URL=https://yourdomain.com
STRAPI_PUBLIC_URL=https://cms.yourdomain.com
MEDUSA_BACKEND_PUBLIC_URL=https://api.yourdomain.com
# توکن‌های دسترسی Strapi CMS
STRAPI_API_TOKEN_FOR_MEDUSA=your_strapi_full_access_token
STRAPI_API_TOKEN_FOR_FRONT=your_strapi_read_only_token
# کلید‌های عمومی Medusa & Search
MEDUSA_PUBLISHABLE_KEY=pk_your_medusa_publishable_key
MEILI_SEARCH_KEY=your_meilisearch_search_api_key
# سرویس ایمیل (SMTP) و پیامک
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=your-email@gmail.com
SMTP_PASS=your-app-password
SMTP_FROM_ADDRESS=noreply@yourdomain.com
SMS_API_KEY=your_sms_api_key