({
+ sizes: [],
+ colors: [],
+ priceRange: [0, 500],
+ brands: [],
+ sortBy: "newest",
+ });
+
+ return (
+
+ );
+}
+```
+
+#### Example: Featured Products Carousel
+
+```typescript
+import { MenFeaturedProducts } from "@/app/store/[slug]/components/men-category";
+
+export function Homepage({ featuredProducts, storeSlug }) {
+ return (
+
+ {
+ console.log("Quick view:", productId);
+ }}
+ />
+
+ );
+}
+```
+
+#### Example: Product Card in Custom Grid
+
+```typescript
+import { MenProductCard } from "@/app/store/[slug]/components/men-category";
+
+export function CustomProductList({ products, storeSlug }) {
+ return (
+
+ {products.map((product) => (
+ console.log("Quick view:", id)}
+ />
+ ))}
+
+ );
+}
+```
+
+---
+
+### 3. Connecting to Real Data (Server Component)
+
+Replace the mock data in `page.tsx` with real Prisma queries:
+
+```typescript
+// src/app/store/[slug]/categories/men/page.tsx
+import prisma from "@/lib/prisma";
+import { headers } from "next/headers";
+
+export default async function MenCategoryPage({ params }) {
+ const { slug } = await params;
+ const headersList = await headers();
+ const storeId = headersList.get("x-store-id");
+
+ // Fetch store
+ const store = await prisma.store.findFirst({
+ where: storeId ? { id: storeId } : { slug },
+ select: { id: true, slug: true },
+ });
+
+ // Fetch men's category
+ const menCategory = await prisma.category.findFirst({
+ where: {
+ storeId: store.id,
+ slug: "men",
+ isPublished: true,
+ deletedAt: null,
+ },
+ select: { id: true },
+ });
+
+ // Fetch products
+ const products = await prisma.product.findMany({
+ where: {
+ storeId: store.id,
+ categoryId: menCategory.id,
+ status: "ACTIVE",
+ deletedAt: null,
+ },
+ orderBy: { createdAt: "desc" },
+ select: {
+ id: true,
+ name: true,
+ slug: true,
+ price: true,
+ compareAtPrice: true,
+ thumbnailUrl: true,
+ images: true,
+ isFeatured: true,
+ category: {
+ select: { name: true, slug: true },
+ },
+ },
+ });
+
+ // Fetch featured products
+ const featuredProducts = await prisma.product.findMany({
+ where: {
+ storeId: store.id,
+ categoryId: menCategory.id,
+ status: "ACTIVE",
+ isFeatured: true,
+ deletedAt: null,
+ },
+ take: 6,
+ orderBy: { createdAt: "desc" },
+ select: {
+ id: true,
+ name: true,
+ slug: true,
+ price: true,
+ compareAtPrice: true,
+ thumbnailUrl: true,
+ images: true,
+ isFeatured: true,
+ category: {
+ select: { name: true, slug: true },
+ },
+ },
+ });
+
+ // Fetch brands
+ const brands = await prisma.brand.findMany({
+ where: { storeId: store.id },
+ select: { name: true },
+ });
+
+ return (
+ b.name)}
+ storeSlug={store.slug}
+ />
+ );
+}
+
+// Create a client component wrapper
+"use client";
+
+function MenCategoryClientPage({
+ initialProducts,
+ initialFeaturedProducts,
+ brands,
+ storeSlug,
+}) {
+ const [products, setProducts] = useState(initialProducts);
+ // ... rest of the client logic
+}
+```
+
+---
+
+### 4. Implementing Filters with API
+
+Create an API endpoint for filtering:
+
+```typescript
+// src/app/api/store/[slug]/categories/men/products/route.ts
+import { NextRequest, NextResponse } from "next/server";
+import prisma from "@/lib/prisma";
+
+export async function GET(
+ request: NextRequest,
+ { params }: { params: { slug: string } }
+) {
+ const searchParams = request.nextUrl.searchParams;
+ const sizes = searchParams.get("sizes")?.split(",") || [];
+ const colors = searchParams.get("colors")?.split(",") || [];
+ const minPrice = parseFloat(searchParams.get("minPrice") || "0");
+ const maxPrice = parseFloat(searchParams.get("maxPrice") || "999999");
+ const brands = searchParams.get("brands")?.split(",") || [];
+ const sortBy = searchParams.get("sortBy") || "newest";
+
+ const store = await prisma.store.findFirst({
+ where: { slug: params.slug },
+ select: { id: true },
+ });
+
+ const menCategory = await prisma.category.findFirst({
+ where: {
+ storeId: store.id,
+ slug: "men",
+ isPublished: true,
+ },
+ select: { id: true },
+ });
+
+ const products = await prisma.product.findMany({
+ where: {
+ storeId: store.id,
+ categoryId: menCategory.id,
+ status: "ACTIVE",
+ deletedAt: null,
+ price: {
+ gte: minPrice,
+ lte: maxPrice,
+ },
+ ...(brands.length > 0 && {
+ brand: {
+ name: { in: brands },
+ },
+ }),
+ },
+ orderBy:
+ sortBy === "price-asc"
+ ? { price: "asc" }
+ : sortBy === "price-desc"
+ ? { price: "desc" }
+ : { createdAt: "desc" },
+ select: {
+ id: true,
+ name: true,
+ slug: true,
+ price: true,
+ compareAtPrice: true,
+ thumbnailUrl: true,
+ images: true,
+ isFeatured: true,
+ category: {
+ select: { name: true, slug: true },
+ },
+ },
+ });
+
+ return NextResponse.json({ products });
+}
+```
+
+Then update the client to use this API:
+
+```typescript
+// In page.tsx
+const fetchFilteredProducts = async (filters: FilterState) => {
+ const params = new URLSearchParams({
+ sizes: filters.sizes.join(","),
+ colors: filters.colors.join(","),
+ minPrice: filters.priceRange[0].toString(),
+ maxPrice: filters.priceRange[1].toString(),
+ brands: filters.brands.join(","),
+ sortBy: filters.sortBy,
+ });
+
+ const response = await fetch(
+ `/api/store/${storeSlug}/categories/men/products?${params}`
+ );
+ const data = await response.json();
+ setProducts(data.products);
+};
+
+// Call on filter change
+useEffect(() => {
+ fetchFilteredProducts(filters);
+}, [filters]);
+```
+
+---
+
+### 5. Integrating Add to Cart
+
+```typescript
+// In MenProductCard or MenQuickView
+import { AddToCartButton } from "../add-to-cart-button";
+
+// Replace disabled button with:
+
+```
+
+---
+
+### 6. Implementing Wishlist
+
+Create wishlist API:
+
+```typescript
+// src/app/api/store/[slug]/wishlist/route.ts
+import { NextRequest, NextResponse } from "next/server";
+import { getServerSession } from "next-auth";
+import prisma from "@/lib/prisma";
+import { authOptions } from "@/lib/auth";
+
+export async function POST(request: NextRequest) {
+ const session = await getServerSession(authOptions);
+ if (!session) {
+ return NextResponse.json({ error: "Unauthorized" }, { status: 401 });
+ }
+
+ const { productId } = await request.json();
+
+ // Toggle wishlist (create or delete)
+ const existing = await prisma.wishlistItem.findFirst({
+ where: {
+ userId: session.user.id,
+ productId,
+ },
+ });
+
+ if (existing) {
+ await prisma.wishlistItem.delete({ where: { id: existing.id } });
+ return NextResponse.json({ wishlisted: false });
+ } else {
+ await prisma.wishlistItem.create({
+ data: {
+ userId: session.user.id,
+ productId,
+ },
+ });
+ return NextResponse.json({ wishlisted: true });
+ }
+}
+
+export async function GET(request: NextRequest) {
+ const session = await getServerSession(authOptions);
+ if (!session) {
+ return NextResponse.json({ error: "Unauthorized" }, { status: 401 });
+ }
+
+ const items = await prisma.wishlistItem.findMany({
+ where: { userId: session.user.id },
+ select: { productId: true },
+ });
+
+ return NextResponse.json({ productIds: items.map((i) => i.productId) });
+}
+```
+
+Update MenProductCard:
+
+```typescript
+const handleWishlistToggle = async (e: React.MouseEvent) => {
+ e.preventDefault();
+ e.stopPropagation();
+
+ const response = await fetch(`/api/store/${storeSlug}/wishlist`, {
+ method: "POST",
+ headers: { "Content-Type": "application/json" },
+ body: JSON.stringify({ productId: product.id }),
+ });
+
+ const data = await response.json();
+ setIsWishlisted(data.wishlisted);
+};
+```
+
+---
+
+### 7. Testing Your Integration
+
+```bash
+# 1. Seed the database
+STORE_ID=your-store-id npx tsx prisma/seed/men-category-seed.ts
+
+# 2. Start dev server
+npm run dev
+
+# 3. Visit the page
+open http://localhost:3000/store/your-store-slug/categories/men
+
+# 4. Test features:
+# - Hero displays
+# - Sub-categories render
+# - Products show in grid
+# - Filters work
+# - Quick view opens
+# - Size guide opens
+# - Responsive (resize browser)
+```
+
+---
+
+### 8. TypeScript Types
+
+```typescript
+// Product type used by components
+interface Product {
+ id: string;
+ name: string;
+ slug: string;
+ price: number;
+ compareAtPrice?: number | null;
+ thumbnailUrl?: string | null;
+ images: string; // JSON string of image URLs
+ category?: {
+ name: string;
+ slug: string;
+ } | null;
+ isFeatured?: boolean;
+}
+
+// Filter state type
+interface FilterState {
+ sizes: string[];
+ colors: string[];
+ priceRange: [number, number];
+ brands: string[];
+ sortBy: string;
+}
+```
+
+---
+
+### 9. Common Issues & Solutions
+
+**Issue**: Images not loading
+**Solution**: Ensure image paths are correct and images exist in `/public/men-category/`
+
+**Issue**: Filters not working
+**Solution**: Check that `onFiltersChange` callback is connected and state is updated
+
+**Issue**: Quick view not opening
+**Solution**: Verify `onQuickView` prop is passed and state is set correctly
+
+**Issue**: Components not found
+**Solution**: Check import path matches: `@/app/store/[slug]/components/men-category`
+
+**Issue**: Type errors
+**Solution**: Ensure Product type matches your Prisma schema
+
+---
+
+### 10. Performance Tips
+
+1. **Use Server Components for data fetching**
+2. **Implement pagination** (cursor-based with Prisma)
+3. **Cache filter results** with React Query or SWR
+4. **Optimize images** with proper sizes attribute
+5. **Lazy load below-the-fold content**
+
+---
+
+For more details, see:
+- Full Implementation: `docs/MEN_CATEGORY_IMPLEMENTATION.md`
+- Quick Start: `MEN_CATEGORY_QUICKSTART.md`
diff --git a/package-lock.json b/package-lock.json
index 967499be..d613e847 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -12730,6 +12730,7 @@
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "dev": true,
"hasInstallScript": true,
"license": "MIT",
"optional": true,
diff --git a/prisma/seed/men-category-seed.ts b/prisma/seed/men-category-seed.ts
new file mode 100644
index 00000000..b19b45c2
--- /dev/null
+++ b/prisma/seed/men-category-seed.ts
@@ -0,0 +1,470 @@
+import { PrismaClient, ProductStatus, InventoryStatus } from '@prisma/client';
+
+const prisma = new PrismaClient();
+
+/**
+ * Seed Men's Category Data
+ * Creates men's parent category, sub-categories, and sample products
+ */
+export async function seedMenCategory(storeId: string) {
+ console.log('👔 Seeding Men\'s Category...');
+
+ // Create Men's parent category
+ const menCategory = await prisma.category.create({
+ data: {
+ storeId,
+ name: "Men's Fashion",
+ slug: "men",
+ description: "Discover timeless style and modern sophistication in our men's collection",
+ image: "/men-category/men-hero.jpg",
+ isPublished: true,
+ sortOrder: 1,
+ metaTitle: "Men's Fashion | Premium Clothing & Accessories",
+ metaDescription: "Shop our curated collection of men's fashion featuring premium clothing, accessories, and footwear. Quality meets style.",
+ },
+ });
+ console.log(`✅ Created Men's parent category`);
+
+ // Create sub-categories
+ const subCategories = await Promise.all([
+ prisma.category.create({
+ data: {
+ storeId,
+ name: "Shirts",
+ slug: "shirts",
+ description: "Premium shirts for every occasion",
+ image: "/men-category/category-casual.jpg",
+ parentId: menCategory.id,
+ isPublished: true,
+ sortOrder: 1,
+ },
+ }),
+ prisma.category.create({
+ data: {
+ storeId,
+ name: "Pants",
+ slug: "pants",
+ description: "Tailored and casual pants",
+ image: "/men-category/category-tailoring.jpg",
+ parentId: menCategory.id,
+ isPublished: true,
+ sortOrder: 2,
+ },
+ }),
+ prisma.category.create({
+ data: {
+ storeId,
+ name: "Jackets & Outerwear",
+ slug: "jackets",
+ description: "Stay stylish in any weather",
+ image: "/men-category/category-casual.jpg",
+ parentId: menCategory.id,
+ isPublished: true,
+ sortOrder: 3,
+ },
+ }),
+ prisma.category.create({
+ data: {
+ storeId,
+ name: "Accessories",
+ slug: "accessories",
+ description: "Complete your look with premium accessories",
+ image: "/men-category/category-accessories.jpg",
+ parentId: menCategory.id,
+ isPublished: true,
+ sortOrder: 4,
+ },
+ }),
+ prisma.category.create({
+ data: {
+ storeId,
+ name: "Shoes",
+ slug: "shoes",
+ description: "Step out in style",
+ image: "/men-category/category-tailoring.jpg",
+ parentId: menCategory.id,
+ isPublished: true,
+ sortOrder: 5,
+ },
+ }),
+ ]);
+ console.log(`✅ Created ${subCategories.length} sub-categories`);
+
+ // Create brands
+ const brands = await Promise.all([
+ prisma.brand.create({
+ data: {
+ storeId,
+ name: "Nike",
+ slug: "nike",
+ description: "Just Do It",
+ },
+ }),
+ prisma.brand.create({
+ data: {
+ storeId,
+ name: "Adidas",
+ slug: "adidas",
+ description: "Impossible is Nothing",
+ },
+ }),
+ prisma.brand.create({
+ data: {
+ storeId,
+ name: "Levi's",
+ slug: "levis",
+ description: "Quality never goes out of style",
+ },
+ }),
+ prisma.brand.create({
+ data: {
+ storeId,
+ name: "Ralph Lauren",
+ slug: "ralph-lauren",
+ description: "Classic American Style",
+ },
+ }),
+ ]);
+ console.log(`✅ Created ${brands.length} brands`);
+
+ // Product data organized by sub-category
+ const productsData = [
+ // Shirts (4 products)
+ {
+ name: "Classic Oxford Shirt",
+ slug: "classic-oxford-shirt",
+ categoryId: subCategories[0].id,
+ brandId: brands[3].id,
+ price: 89.99,
+ compareAtPrice: 120.00,
+ description: "Timeless oxford weave shirt in premium cotton. Perfect for both casual and formal occasions.",
+ shortDescription: "Premium cotton oxford shirt",
+ image: "/men-category/product-1.jpg",
+ isFeatured: true,
+ },
+ {
+ name: "Linen Summer Shirt",
+ slug: "linen-summer-shirt",
+ categoryId: subCategories[0].id,
+ brandId: brands[3].id,
+ price: 69.99,
+ description: "Breathable linen shirt for warm days. Relaxed fit with modern styling.",
+ shortDescription: "Breathable linen shirt",
+ image: "/men-category/product-2.jpg",
+ isFeatured: false,
+ },
+ {
+ name: "Fitted Dress Shirt",
+ slug: "fitted-dress-shirt",
+ categoryId: subCategories[0].id,
+ brandId: brands[3].id,
+ price: 79.99,
+ compareAtPrice: 99.99,
+ description: "Slim-fit dress shirt with non-iron finish. Available in multiple colors.",
+ shortDescription: "Non-iron dress shirt",
+ image: "/men-category/product-3.jpg",
+ isFeatured: true,
+ },
+ {
+ name: "Casual Chambray Shirt",
+ slug: "casual-chambray-shirt",
+ categoryId: subCategories[0].id,
+ brandId: brands[2].id,
+ price: 59.99,
+ description: "Classic chambray fabric with modern fit. Perfect weekend wear.",
+ shortDescription: "Modern chambray shirt",
+ image: "/men-category/product-4.jpg",
+ isFeatured: false,
+ },
+
+ // Pants (5 products)
+ {
+ name: "Slim Fit Chinos",
+ slug: "slim-fit-chinos",
+ categoryId: subCategories[1].id,
+ brandId: brands[3].id,
+ price: 79.99,
+ description: "Versatile chinos with a slim, modern fit. Perfect for work or weekend.",
+ shortDescription: "Modern slim-fit chinos",
+ image: "/men-category/product-1.jpg",
+ isFeatured: true,
+ },
+ {
+ name: "Classic Denim Jeans",
+ slug: "classic-denim-jeans",
+ categoryId: subCategories[1].id,
+ brandId: brands[2].id,
+ price: 89.99,
+ compareAtPrice: 110.00,
+ description: "Timeless 501 original fit jeans. Made from premium denim.",
+ shortDescription: "Original fit denim jeans",
+ image: "/men-category/product-2.jpg",
+ isFeatured: true,
+ },
+ {
+ name: "Performance Joggers",
+ slug: "performance-joggers",
+ categoryId: subCategories[1].id,
+ brandId: brands[0].id,
+ price: 69.99,
+ description: "Comfortable joggers with moisture-wicking technology.",
+ shortDescription: "Athletic joggers",
+ image: "/men-category/product-3.jpg",
+ isFeatured: false,
+ },
+ {
+ name: "Tailored Dress Pants",
+ slug: "tailored-dress-pants",
+ categoryId: subCategories[1].id,
+ brandId: brands[3].id,
+ price: 99.99,
+ description: "Perfectly tailored dress pants for professional settings.",
+ shortDescription: "Professional dress pants",
+ image: "/men-category/product-4.jpg",
+ isFeatured: false,
+ },
+ {
+ name: "Cargo Utility Pants",
+ slug: "cargo-utility-pants",
+ categoryId: subCategories[1].id,
+ brandId: brands[0].id,
+ price: 74.99,
+ description: "Modern cargo pants with functional pockets and comfortable fit.",
+ shortDescription: "Modern cargo pants",
+ image: "/men-category/product-1.jpg",
+ isFeatured: false,
+ },
+
+ // Jackets (5 products)
+ {
+ name: "Windbreaker Jacket",
+ slug: "windbreaker-jacket",
+ categoryId: subCategories[2].id,
+ brandId: brands[0].id,
+ price: 129.99,
+ compareAtPrice: 160.00,
+ description: "Lightweight windbreaker with packable design. Perfect for active lifestyles.",
+ shortDescription: "Lightweight packable jacket",
+ image: "/men-category/product-2.jpg",
+ isFeatured: true,
+ },
+ {
+ name: "Leather Bomber Jacket",
+ slug: "leather-bomber-jacket",
+ categoryId: subCategories[2].id,
+ brandId: brands[3].id,
+ price: 299.99,
+ description: "Premium leather bomber jacket with classic styling.",
+ shortDescription: "Premium leather bomber",
+ image: "/men-category/product-3.jpg",
+ isFeatured: true,
+ },
+ {
+ name: "Denim Trucker Jacket",
+ slug: "denim-trucker-jacket",
+ categoryId: subCategories[2].id,
+ brandId: brands[2].id,
+ price: 98.99,
+ description: "Iconic trucker jacket in premium denim. A timeless wardrobe essential.",
+ shortDescription: "Classic trucker jacket",
+ image: "/men-category/product-4.jpg",
+ isFeatured: false,
+ },
+ {
+ name: "Puffer Down Jacket",
+ slug: "puffer-down-jacket",
+ categoryId: subCategories[2].id,
+ brandId: brands[1].id,
+ price: 189.99,
+ description: "Warm down-filled puffer jacket for cold weather.",
+ shortDescription: "Insulated puffer jacket",
+ image: "/men-category/product-1.jpg",
+ isFeatured: false,
+ },
+ {
+ name: "Track Jacket",
+ slug: "track-jacket",
+ categoryId: subCategories[2].id,
+ brandId: brands[1].id,
+ price: 79.99,
+ description: "Retro-inspired track jacket with modern comfort.",
+ shortDescription: "Retro track jacket",
+ image: "/men-category/product-2.jpg",
+ isFeatured: false,
+ },
+
+ // Accessories (4 products)
+ {
+ name: "Leather Belt",
+ slug: "leather-belt",
+ categoryId: subCategories[3].id,
+ brandId: brands[3].id,
+ price: 49.99,
+ description: "Full-grain leather belt with classic buckle. Available in multiple colors.",
+ shortDescription: "Full-grain leather belt",
+ image: "/men-category/category-accessories.jpg",
+ isFeatured: false,
+ },
+ {
+ name: "Canvas Backpack",
+ slug: "canvas-backpack",
+ categoryId: subCategories[3].id,
+ brandId: brands[0].id,
+ price: 89.99,
+ description: "Durable canvas backpack with laptop compartment.",
+ shortDescription: "Durable canvas backpack",
+ image: "/men-category/category-accessories.jpg",
+ isFeatured: true,
+ },
+ {
+ name: "Wool Beanie",
+ slug: "wool-beanie",
+ categoryId: subCategories[3].id,
+ brandId: brands[1].id,
+ price: 29.99,
+ description: "Warm wool beanie for cold weather. Classic fit.",
+ shortDescription: "Warm wool beanie",
+ image: "/men-category/category-accessories.jpg",
+ isFeatured: false,
+ },
+ {
+ name: "Leather Wallet",
+ slug: "leather-wallet",
+ categoryId: subCategories[3].id,
+ brandId: brands[3].id,
+ price: 59.99,
+ description: "Slim bifold wallet in premium leather with RFID protection.",
+ shortDescription: "RFID leather wallet",
+ image: "/men-category/category-accessories.jpg",
+ isFeatured: false,
+ },
+
+ // Shoes (4 products)
+ {
+ name: "Running Sneakers",
+ slug: "running-sneakers",
+ categoryId: subCategories[4].id,
+ brandId: brands[0].id,
+ price: 129.99,
+ compareAtPrice: 150.00,
+ description: "High-performance running sneakers with responsive cushioning.",
+ shortDescription: "Performance running shoes",
+ image: "/men-category/category-tailoring.jpg",
+ isFeatured: true,
+ },
+ {
+ name: "Classic Leather Oxfords",
+ slug: "classic-leather-oxfords",
+ categoryId: subCategories[4].id,
+ brandId: brands[3].id,
+ price: 159.99,
+ description: "Timeless oxford dress shoes in premium leather.",
+ shortDescription: "Premium oxford shoes",
+ image: "/men-category/category-tailoring.jpg",
+ isFeatured: false,
+ },
+ {
+ name: "Canvas Sneakers",
+ slug: "canvas-sneakers",
+ categoryId: subCategories[4].id,
+ brandId: brands[1].id,
+ price: 69.99,
+ description: "Classic canvas sneakers for everyday wear.",
+ shortDescription: "Everyday canvas sneakers",
+ image: "/men-category/category-tailoring.jpg",
+ isFeatured: false,
+ },
+ {
+ name: "Hiking Boots",
+ slug: "hiking-boots",
+ categoryId: subCategories[4].id,
+ brandId: brands[0].id,
+ price: 149.99,
+ description: "Durable hiking boots with waterproof construction.",
+ shortDescription: "Waterproof hiking boots",
+ image: "/men-category/category-tailoring.jpg",
+ isFeatured: false,
+ },
+ ];
+
+ // Create products
+ const products = [];
+ for (const productData of productsData) {
+ const product = await prisma.product.create({
+ data: {
+ storeId,
+ name: productData.name,
+ slug: productData.slug,
+ categoryId: productData.categoryId,
+ brandId: productData.brandId,
+ price: productData.price,
+ compareAtPrice: productData.compareAtPrice || null,
+ description: productData.description,
+ shortDescription: productData.shortDescription,
+ sku: `MEN-${Math.random().toString(36).substring(2, 10).toUpperCase()}`,
+ barcode: `${Math.floor(Math.random() * 9000000000000) + 1000000000000}`,
+ trackInventory: true,
+ inventoryQty: Math.floor(Math.random() * 100) + 20,
+ lowStockThreshold: 10,
+ inventoryStatus: InventoryStatus.IN_STOCK,
+ images: JSON.stringify([productData.image]),
+ thumbnailUrl: productData.image,
+ status: ProductStatus.ACTIVE,
+ publishedAt: new Date(),
+ isFeatured: productData.isFeatured,
+ metaTitle: `${productData.name} | Men's Fashion`,
+ metaDescription: productData.shortDescription,
+ },
+ });
+ products.push(product);
+
+ // Create product variants (sizes)
+ const sizes = ["S", "M", "L", "XL"];
+ for (const size of sizes) {
+ await prisma.productVariant.create({
+ data: {
+ productId: product.id,
+ name: `${productData.name} - ${size}`,
+ sku: `${product.sku}-${size}`,
+ inventoryQty: Math.floor(Math.random() * 25) + 5,
+ lowStockThreshold: 5,
+ options: JSON.stringify({ size }),
+ isDefault: size === "M",
+ },
+ });
+ }
+ }
+
+ console.log(`✅ Created ${products.length} men's products with variants`);
+ console.log('👔 Men\'s Category seeding complete!');
+
+ return {
+ category: menCategory,
+ subCategories,
+ brands,
+ products,
+ };
+}
+
+// Standalone execution support
+if (require.main === module) {
+ async function run() {
+ try {
+ // You need to provide a valid storeId
+ const storeId = process.env.STORE_ID || 'your-store-id';
+ if (storeId === 'your-store-id') {
+ console.error('❌ Please set STORE_ID environment variable');
+ process.exit(1);
+ }
+
+ await seedMenCategory(storeId);
+ await prisma.$disconnect();
+ } catch (error) {
+ console.error('❌ Error seeding men\'s category:', error);
+ await prisma.$disconnect();
+ process.exit(1);
+ }
+ }
+
+ run();
+}
diff --git a/public/men-category/category-accessories.jpg b/public/men-category/category-accessories.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..113c4a9df0d85fd9c5672955bf03c398f0feff81
GIT binary patch
literal 99344
zcmbTdcUV)~yEVEJdT0VcsY)jaMFK$qK|={bXel%UDpg4kq$tf6Ku{yS6Dgqt2t`FY
zSU?F)P=tVrhzNp;f`VPQdw(mqf9IU>06@TB;GbuJEg&i^EFvrw=(=yam
z)6mycQ9Kmak7|ae`b1O4rOG6WkF~1Xtn3$M^xP*eFq=K=!in{Ut=bwLi0U1$2
zKtN3Zq5(iTgR!t(bC%1-qG3BefM5JcVKX6cw}OdH#PnE$GPMb-@gC&$+rsv2>dY%JpVE5f7vAi+65I96c7~Q+XaEff`@>NppZIRSk{^-;vXre
zVVo!mx5=((?i15AA$^n&h2?xLfz-x%g0=g^%8N&ZOy|sv4nI&WZCqM%V7>F%JY_NkGD3RZ`vy$c5Jv_DjTK|~g8u|?Ci4H%mHFp1u(veQBk&g5$sPeg
zJ2GMrTtJ)uXmaqP+J#(xZvo{D=goHiHV6B_qn#N14(;E%anU~sg0#H}#TV`qYF{)+
z?8T>2WrbBds1{Q-Z#{ylFKAdGDvKdFIN^UE0&gk{iq5ku8Gdl06IRR#2M37Y(aL{=
z10OvPd{FR1;Hy8E?fFO{0Pq6<0<@k51##Gf1_VJ(wg7yfq=GckBm@~!NrxfWEI~FO
zzXA|QJTel5Y12+*B;QW^e@B4d3&WQP8bm>Z{}sd-NV0wGX$IJ{QHK1b_IJAUZ~1t<7r}&YMQp6rdqzC8094%Ulj4qomt!S
zJ&B%AqG+v^)wRt+aH2DvZ_WQYpm;=OQ4*gje49y+{ya9=8Y{#f$3G~x{tuk^j{sWc
z351cAu^
z3${Pl?8Y}B8{8&1Bk|S7`t!@JtUXzt{teSE*$i8oq0WRR)Vf#gq0|O^m%L6XOr#0^
zS^+b2#Q*<+If8jaCwDczY!DzB{){&`<`e{f^#1UI&k{UkQ#+eND&q4?l+T-LBTyIQ
zEkqCqZNvZ2L=F@YUu+Zv2qM=IJV%1};e5T|k<<`KD~O8%C|X1CE?*zu8v%Gg0bf4_
ze3r=mVbOm{3Iq)(+T_nBjC_#D%^>qYB;WsGkOio%y#ICW51-gv5jJ3rT;MoPH;vM+
zoUBHt*0!Fxu{h1bsL%BNBngDuz1T|2%|QKb5mVoRZ?FidG$68s2hobP{p
z383cz^|-09!cBIvK(jz622u&ZHTV}QP=X+qn@DXkjPG3j(LbE*n?-GT0jP)76jO2S^f2
z_wWj}D?Ay9nj>%`D82u2xZt1#b$nbw1^w%gK!5T-gxT7Qry!~!PLANCBSYAH(9l>R
z19&Tt*Gd|P;Qsps*acs#2sS7+?ac<8ZX0a20AkR}7h4e@HxMgOsC*>AKb!8>7Zkc6
z7v4$&s@c#&crSiaakHd_Qt-B@5U5G8^`??HUEIIU3Dj^vAz!J9d^e8+dqtBV4xV&H
zuu~_7Fa`wlEgBTFEpnkzhU-x@0ZkiZ(s?&jm=`A$@+O@es6ala#&`Zl&~H7%Qstsq
zqgCvK)MbOWohRjs-epq?a>ZV%yk<0=6e;+jDyc(>MK3ukWn6RG{?ffTri9?+DGQ1c
zgbqZ44=4y5s55I&zKBm<-0W;}p_T>hg_oj)jo
zmh
Mohy>++xHKilIL)2GwmirUpS96;zD60%wn(0?
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