-
- {params.slug.replace(/-/g, ' ')}
-
-
$99.99
-
- This is a placeholder product page for {params.slug} .
- When connected to a CMS or database, this page will display real product data.
-
-
- Add to Cart
-
+
+
+ {/* Breadcrumb */}
+
+ Home
+ /
+ Products
+ /
+ {productName}
+
+
+ {/* Product Layout */}
+
+ {/* Image Gallery */}
+
+ {/* Main Image */}
+
+ {/* Thumbnails */}
+
+ {[0, 1, 2, 3].map((i) => (
+
+ ))}
+
+
+
+ {/* Product Info */}
+
+
{productName}
+
+ {/* Rating */}
+
+
+ {[1, 2, 3, 4, 5].map((star) => (
+
+
+
+ ))}
+
+
4.5 (128 reviews)
+
+
+ {/* Price */}
+
+ $99.99
+ $129.99
+ -23%
+
+
+ {/* Description */}
+
+ Crafted from premium materials with meticulous attention to detail. This piece combines timeless design with modern comfort, making it a versatile addition to any wardrobe.
+
+
+ {/* Color Selector */}
+
+
Color: Black
+
+ {colors.map((c, i) => (
+
+ ))}
+
+
+
+ {/* Size Selector */}
+
+
+
Size
+ Size Guide
+
+
+ {sizes.map((size, i) => (
+
+ {size}
+
+ ))}
+
+
+
+ {/* Quantity */}
+
+
Quantity
+
+
+ −
+
+ 1
+
+ +
+
+
+
+
+ {/* Add to Cart */}
+
+ Add to Cart
+
+
+ {/* Wishlist */}
+
+
+
+
+ Add to Wishlist
+
+
+ {/* Accordion Sections */}
+
+ {/* Description */}
+
+
+ Description
+
+
+
+
+
+ Made from carefully sourced materials, this product features reinforced stitching, premium hardware, and a refined silhouette. The versatile design transitions seamlessly from casual to formal settings. Machine washable for easy care.
+
+
+
+ {/* Shipping */}
+
+
+ Shipping Info
+
+
+
+
+
+
Free standard shipping on orders over $100.
+
Standard delivery: 5–7 business days.
+
Express delivery: 2–3 business days ($12.99).
+
International shipping available to select countries.
+
+
+
+ {/* Returns */}
+
+
+ Returns
+
+
+
+
+
+
30-day return policy for unworn items with tags attached.
+
Free returns on all domestic orders.
+
Exchanges available for different sizes or colors.
+
Refunds processed within 5–7 business days.
+
+
+
+
+
+ {/* Related Products */}
+
+ You May Also Like
+
+ {relatedProducts.map((product) => (
+
+
+
+
+ {product.name}
+
+ {product.price}
+
+
+ ))}
+
+
);
diff --git a/templates/ecommerce/nextjs-monolith/app/products/page.tsx b/templates/ecommerce/nextjs-monolith/app/products/page.tsx
index 8459f68..bc43036 100644
--- a/templates/ecommerce/nextjs-monolith/app/products/page.tsx
+++ b/templates/ecommerce/nextjs-monolith/app/products/page.tsx
@@ -1,30 +1,152 @@
import Link from 'next/link';
-const products = [
- { slug: 'product-1', name: 'Classic T-Shirt', price: '$29.99' },
- { slug: 'product-2', name: 'Denim Jacket', price: '$89.99' },
- { slug: 'product-3', name: 'Running Shoes', price: '$119.99' },
- { slug: 'product-4', name: 'Leather Bag', price: '$149.99' },
- { slug: 'product-5', name: 'Sunglasses', price: '$59.99' },
- { slug: 'product-6', name: 'Watch', price: '$199.99' },
-];
-
export default function ProductsPage() {
+ const products = [
+ { slug: 'classic-white-sneakers', name: 'Classic White Sneakers', price: '$89.99', originalPrice: null, badge: null, color: '#f1f5f9' },
+ { slug: 'leather-crossbody-bag', name: 'Leather Crossbody Bag', price: '$129.99', originalPrice: '$159.99', badge: 'Sale', color: '#d4a574' },
+ { slug: 'oversized-wool-coat', name: 'Oversized Wool Coat', price: '$249.99', originalPrice: null, badge: 'New', color: '#1e293b' },
+ { slug: 'silk-scarf-collection', name: 'Silk Scarf Collection', price: '$59.99', originalPrice: null, badge: null, color: '#c4b5fd' },
+ { slug: 'cashmere-sweater', name: 'Cashmere V-Neck Sweater', price: '$179.99', originalPrice: '$219.99', badge: 'Sale', color: '#fef3c7' },
+ { slug: 'tailored-blazer', name: 'Tailored Linen Blazer', price: '$199.99', originalPrice: null, badge: 'New', color: '#e2e8f0' },
+ { slug: 'canvas-tote-bag', name: 'Canvas Tote Bag', price: '$49.99', originalPrice: null, badge: null, color: '#d6d3d1' },
+ { slug: 'gold-hoop-earrings', name: 'Gold Hoop Earrings', price: '$39.99', originalPrice: null, badge: null, color: '#fde68a' },
+ { slug: 'leather-chelsea-boots', name: 'Leather Chelsea Boots', price: '$189.99', originalPrice: null, badge: 'New', color: '#292524' },
+ { slug: 'merino-wool-beanie', name: 'Merino Wool Beanie', price: '$34.99', originalPrice: '$44.99', badge: 'Sale', color: '#7c3aed' },
+ { slug: 'linen-wide-leg-pants', name: 'Linen Wide-Leg Pants', price: '$109.99', originalPrice: null, badge: null, color: '#f5f5f4' },
+ { slug: 'structured-leather-belt', name: 'Structured Leather Belt', price: '$69.99', originalPrice: null, badge: null, color: '#78350f' },
+ ];
+
+ const categories = ['Clothing', 'Shoes', 'Bags', 'Accessories', 'Jewelry'];
+ const priceRanges = ['$0 – $50', '$50 – $100', '$100 – $200', '$200+'];
+
return (
-
-
All Products
-
- {products.map((product) => (
-
-
-
{product.name}
-
{product.price}
-
- ))}
+
+
+ {/* Page Header */}
+
+
All Products
+
Showing 12 products
+
+
+
+ {/* Filter Sidebar */}
+
+
+ {/* Product Grid */}
+
+
+ {products.map((product) => (
+
+
+
+ {product.badge && (
+
+ {product.badge}
+
+ )}
+
+
+ Quick View
+
+
+
+
+
+ {product.name}
+
+
+ {product.price}
+ {product.originalPrice && (
+ {product.originalPrice}
+ )}
+
+
+
+ ))}
+
+
+ {/* Pagination */}
+
+
+ Previous
+
+
+ 1
+
+
+ 2
+
+
+ 3
+
+
+ Next
+
+
+
+
);
diff --git a/templates/ecommerce/nextjs-monolith/components/CartItem.tsx b/templates/ecommerce/nextjs-monolith/components/CartItem.tsx
new file mode 100644
index 0000000..7531425
--- /dev/null
+++ b/templates/ecommerce/nextjs-monolith/components/CartItem.tsx
@@ -0,0 +1,56 @@
+interface CartItemProps {
+ name: string;
+ price: number;
+ quantity: number;
+ color: string;
+ size: string;
+ imageColor: string;
+}
+
+export default function CartItem({ name, price, quantity, color, size, imageColor }: CartItemProps) {
+ const lineTotal = (price * quantity).toFixed(2);
+
+ return (
+
+ {/* Image */}
+
+
+ {/* Info */}
+
+
+
+
{name}
+
+ {color} · Size {size}
+
+
+ {/* Remove Button */}
+
+
+
+
+
+
+
+ {/* Quantity & Price */}
+
+
+
+ −
+
+
+ {quantity}
+
+
+ +
+
+
+
${lineTotal}
+
+
+
+ );
+}
diff --git a/templates/ecommerce/nextjs-monolith/components/Footer.tsx b/templates/ecommerce/nextjs-monolith/components/Footer.tsx
new file mode 100644
index 0000000..252c7e6
--- /dev/null
+++ b/templates/ecommerce/nextjs-monolith/components/Footer.tsx
@@ -0,0 +1,146 @@
+import Link from 'next/link';
+
+export default function Footer() {
+ const shopLinks = [
+ { label: 'New Arrivals', href: '/products' },
+ { label: 'Best Sellers', href: '/products' },
+ { label: 'Sale', href: '/products' },
+ { label: 'Collections', href: '/products' },
+ { label: 'Gift Cards', href: '/products' },
+ ];
+
+ const serviceLinks = [
+ { label: 'Contact Us', href: '/contact' },
+ { label: 'Shipping & Returns', href: '/shipping' },
+ { label: 'FAQ', href: '/faq' },
+ { label: 'Size Guide', href: '/size-guide' },
+ { label: 'Order Tracking', href: '/tracking' },
+ ];
+
+ return (
+
+ {/* Newsletter Strip */}
+
+
+
+
Join Our Newsletter
+
Get 10% off your first order + exclusive access to new drops.
+
+
+
+
+ Subscribe
+
+
+
+
+
+ {/* Main Footer */}
+
+
+ {/* Brand */}
+
+
+ {{projectName}}
+
+
+ Curated fashion and lifestyle essentials for the modern individual. Quality craftsmanship meets contemporary design.
+
+ {/* Social Icons */}
+
+
+
+ {/* Shop Links */}
+
+
Shop
+
+ {shopLinks.map((link) => (
+
+
+ {link.label}
+
+
+ ))}
+
+
+
+ {/* Customer Service */}
+
+
Customer Service
+
+ {serviceLinks.map((link) => (
+
+
+ {link.label}
+
+
+ ))}
+
+
+
+ {/* Connect */}
+
+
Connect
+
+ Mon–Fri: 9am – 6pm EST
+ support@{{projectName}}.com
+
+
+
We Accept
+
+ {['Visa', 'Mastercard', 'Amex', 'PayPal'].map((method) => (
+
+ {method}
+
+ ))}
+
+
+
+
+
+ {/* Bottom Bar */}
+
+
+ © 2024 {{projectName}}. All rights reserved.
+
+
+ Privacy Policy
+ Terms of Service
+
+
+
+
+ );
+}
diff --git a/templates/ecommerce/nextjs-monolith/components/ProductCard.tsx b/templates/ecommerce/nextjs-monolith/components/ProductCard.tsx
new file mode 100644
index 0000000..733b368
--- /dev/null
+++ b/templates/ecommerce/nextjs-monolith/components/ProductCard.tsx
@@ -0,0 +1,55 @@
+import Link from 'next/link';
+
+interface ProductCardProps {
+ name: string;
+ price: string;
+ originalPrice?: string;
+ imageColor: string;
+ badge?: 'New' | 'Sale';
+ slug: string;
+}
+
+export default function ProductCard({ name, price, originalPrice, imageColor, badge, slug }: ProductCardProps) {
+ return (
+
+ {/* Image */}
+
+
+ {/* Badge */}
+ {badge && (
+
+ {badge}
+
+ )}
+ {/* Quick View Overlay */}
+
+
+ Quick View
+
+
+
+ {/* Info */}
+
+
+ {name}
+
+
+ {price}
+ {originalPrice && (
+ {originalPrice}
+ )}
+
+
+
+ );
+}