From 3b91c813dae2f500ee2c1ade5f25983d8a5c3070 Mon Sep 17 00:00:00 2001 From: Bayu Lukman Yusuf Date: Fri, 9 Jan 2026 10:20:44 +0700 Subject: [PATCH] popular product, brand --- app/Http/Controllers/ComponentController.php | 34 +++ app/Http/Controllers/ProductController.php | 92 +++++++ app/View/Components/Home/BrandHome.php | 14 +- .../Components/Home/HomePopularProducts.php | 22 ++ app/View/Components/Home/HomeSlider.php | 22 ++ app/View/Components/Home/ProductHighlight.php | 9 +- resources/icons/cartzilla-icons.min.css | 2 +- resources/js/components/product-highlights.js | 0 resources/js/theme.js | 2 +- .../home/brand-home-fashion-v1.blade.php | 95 +++++-- .../home/home-popular-products.blade.php | 248 +++++++++++++++++ .../components/home/home-slider.blade.php | 99 +++++++ .../components/home/new-arrivals.blade.php | 2 +- .../home/product-highlight.blade.php | 231 +++++++++++++--- resources/views/home/fashion-v1.blade.php | 260 +----------------- routes/web.php | 8 +- 16 files changed, 812 insertions(+), 328 deletions(-) create mode 100644 app/Http/Controllers/ComponentController.php create mode 100644 app/View/Components/Home/HomePopularProducts.php create mode 100644 app/View/Components/Home/HomeSlider.php create mode 100644 resources/js/components/product-highlights.js create mode 100644 resources/views/components/home/home-popular-products.blade.php create mode 100644 resources/views/components/home/home-slider.blade.php diff --git a/app/Http/Controllers/ComponentController.php b/app/Http/Controllers/ComponentController.php new file mode 100644 index 0000000..a65e2b2 --- /dev/null +++ b/app/Http/Controllers/ComponentController.php @@ -0,0 +1,34 @@ +get('template'); + + // Map component names to their blade views + $componentMap = [ + 'home-popular-products' => 'components.home.home-popular-products', + 'product-highlight' => 'components.home.product-highlight', + 'new-arrivals' => 'components.home.new-arrivals', + 'brand-home' => 'components.home.brand-home-' . ($template ?? 'fashion-v1'), + ]; + + $view = $componentMap[$component] ?? null; + + if (!$view) { + return response()->json(['error' => 'Component not found'], 404); + } + + // For brand-home component, we need to pass the template parameter + if ($component === 'brand-home') { + return view($view, ['template' => $template]); + } + + return view($view); + } +} diff --git a/app/Http/Controllers/ProductController.php b/app/Http/Controllers/ProductController.php index 52278fb..8b1ae90 100644 --- a/app/Http/Controllers/ProductController.php +++ b/app/Http/Controllers/ProductController.php @@ -174,6 +174,98 @@ class ProductController extends Controller ]); } + public function brands(Request $request) + { + $brandRepository = new \App\Repositories\Catalog\BrandRepository; + $brands = $brandRepository->getList([]); + + // Render brand HTML + $brandHtml = ''; + foreach ($brands as $brand) { + $brandHtml .= ''; + $brandHtml .= '' . $brand->name . ''; + $brandHtml .= ''; + } + + return response()->json([ + 'success' => true, + 'brands' => $brandHtml + ]); + } + + public function highlights(Request $request) + { + $type = $request->input('type', 'new'); + $limit = 8; + + $user = auth()->user(); + $userId = $user ? $user->id : 0; + [$location_id, $is_consignment] = Cache::remember('employee_user_'.$userId, 60 * 60 * 24, function () use ($user) { + + if ($user == null) { + return [10, false]; + } + + $employee = @$user->employee; + $location_id = @$employee->location_id; + $location = @$employee->location; + $is_consignment = (bool) @$location->is_consignment; + + return [$location_id, $is_consignment]; + + }); + + $productRepository = new ProductRepository; + + // Set parameters based on type + $params = [ + 'limit' => $limit, + 'location_id' => $location_id, + 'is_consignment' => $is_consignment, + ]; + + switch ($type) { + case 'best_sellers': + $params['sort'] = 'random'; + break; + case 'new_arrivals': + $params['sort'] = 'new'; + break; + case 'sale_items': + $params['event'] = 'special-offer'; + break; + case 'top_rated': + $params['sort'] = 'random'; + break; + default: + $params['sort'] = 'new'; + break; + } + + $products = $productRepository->getList($params); + + // Render product cards HTML + $productHtml = ''; + if (count($products) == 0) { + $productHtml = '
'; + $productHtml .= 'No products found'; + $productHtml .= '
'; + } else { + foreach ($products as $product) { + $productHtml .= '
'; + $productHtml .= view('components.home.product-card', ['product' => $product])->render(); + $productHtml .= '
'; + } + } + + return response()->json([ + 'success' => true, + 'products' => $productHtml, + 'count' => count($products), + 'type' => $type + ]); + } + public function detail($slug, Request $request, ProductRepository $productRepository) { diff --git a/app/View/Components/Home/BrandHome.php b/app/View/Components/Home/BrandHome.php index d42bc49..5842fb0 100644 --- a/app/View/Components/Home/BrandHome.php +++ b/app/View/Components/Home/BrandHome.php @@ -9,24 +9,16 @@ use Illuminate\View\Component; class BrandHome extends Component { - public $brands; + public $template = 'fashion-v1'; /** * Create a new component instance. */ - public function __construct(BrandRepository $brandRepository) + public function __construct() { - $this->brands = $brandRepository->getList([]); - - if ($this->brands->count() < 9) { - // Ensure we have at least 9 brands by duplicating if necessary - while ($this->brands->count() < 9) { - $this->brands = $this->brands->concat($this->brands); - } - $this->brands = $this->brands->take(9); - } + } /** diff --git a/app/View/Components/Home/HomePopularProducts.php b/app/View/Components/Home/HomePopularProducts.php new file mode 100644 index 0000000..9094351 --- /dev/null +++ b/app/View/Components/Home/HomePopularProducts.php @@ -0,0 +1,22 @@ + 'new', - ]; - $this->products = $productRepository->getList($params); + } /** diff --git a/resources/icons/cartzilla-icons.min.css b/resources/icons/cartzilla-icons.min.css index adcda1b..22bd6a7 100644 --- a/resources/icons/cartzilla-icons.min.css +++ b/resources/icons/cartzilla-icons.min.css @@ -1 +1 @@ -@font-face{font-display:block;font-family:AsiaGolf-icons;src:url(AsiaGolf-icons.woff2) format("woff2")}[class*=" ci-"]:before,[class^=ci-]:before{font-family:AsiaGolf-icons!important;font-style:normal;font-variant:normal;font-weight:400!important;line-height:1;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ci-activity:before{content:"\f101"}.ci-airbnb:before{content:"\f102"}.ci-airplay:before{content:"\f103"}.ci-alert-circle:before{content:"\f104"}.ci-alert-octagon:before{content:"\f105"}.ci-alert-triangle:before{content:"\f106"}.ci-align-center:before{content:"\f107"}.ci-align-justify:before{content:"\f108"}.ci-align-left:before{content:"\f109"}.ci-align-right:before{content:"\f10a"}.ci-anchor:before{content:"\f10b"}.ci-aperture:before{content:"\f10c"}.ci-apple:before{content:"\f10d"}.ci-archive:before{content:"\f10e"}.ci-arrow-down-circle:before{content:"\f10f"}.ci-arrow-down-left:before{content:"\f110"}.ci-arrow-down-right:before{content:"\f111"}.ci-arrow-down:before{content:"\f112"}.ci-arrow-left-circle:before{content:"\f113"}.ci-arrow-left:before{content:"\f114"}.ci-arrow-right-circle:before{content:"\f115"}.ci-arrow-right:before{content:"\f116"}.ci-arrow-up-circle:before{content:"\f117"}.ci-arrow-up-left:before{content:"\f118"}.ci-arrow-up-right:before{content:"\f119"}.ci-arrow-up:before{content:"\f11a"}.ci-at-sign:before{content:"\f11b"}.ci-auto:before{content:"\f11c"}.ci-avocado:before{content:"\f11d"}.ci-award:before{content:"\f11e"}.ci-banned:before{content:"\f11f"}.ci-bar-chart-2:before{content:"\f120"}.ci-bar-chart:before{content:"\f121"}.ci-battery-2:before{content:"\f122"}.ci-battery-charging:before{content:"\f123"}.ci-battery:before{content:"\f124"}.ci-behance:before{content:"\f125"}.ci-bell-off:before{content:"\f126"}.ci-bell:before{content:"\f127"}.ci-blogger:before{content:"\f128"}.ci-bluetooth:before{content:"\f129"}.ci-bold:before{content:"\f12a"}.ci-book-open:before{content:"\f12b"}.ci-book:before{content:"\f12c"}.ci-bookmark:before{content:"\f12d"}.ci-box:before{content:"\f12e"}.ci-briefcase:before{content:"\f12f"}.ci-broccoli:before{content:"\f130"}.ci-bullet:before{content:"\f131"}.ci-calendar:before{content:"\f132"}.ci-camera-2:before{content:"\f133"}.ci-camera-off:before{content:"\f134"}.ci-camera:before{content:"\f135"}.ci-cast:before{content:"\f136"}.ci-chat:before{content:"\f137"}.ci-check-circle:before{content:"\f138"}.ci-check-search:before{content:"\f139"}.ci-check-shield:before{content:"\f13a"}.ci-check-square:before{content:"\f13b"}.ci-check:before{content:"\f13c"}.ci-chevron-down:before{content:"\f13d"}.ci-chevron-left:before{content:"\f13e"}.ci-chevron-right:before{content:"\f13f"}.ci-chevron-up:before{content:"\f140"}.ci-chevrons-down:before{content:"\f141"}.ci-chevrons-left:before{content:"\f142"}.ci-chevrons-right:before{content:"\f143"}.ci-chevrons-up:before{content:"\f144"}.ci-click:before{content:"\f145"}.ci-clipboard:before{content:"\f146"}.ci-clock:before{content:"\f147"}.ci-close-circle:before{content:"\f148"}.ci-close-octagon:before{content:"\f149"}.ci-close-square:before{content:"\f14a"}.ci-close:before{content:"\f14b"}.ci-cloud-drizzle:before{content:"\f14c"}.ci-cloud-lightning:before{content:"\f14d"}.ci-cloud-off:before{content:"\f14e"}.ci-cloud-rain:before{content:"\f14f"}.ci-cloud-snow:before{content:"\f150"}.ci-cloud:before{content:"\f151"}.ci-code:before{content:"\f152"}.ci-codepen:before{content:"\f153"}.ci-coffee:before{content:"\f154"}.ci-columns:before{content:"\f155"}.ci-command:before{content:"\f156"}.ci-compass:before{content:"\f157"}.ci-computer:before{content:"\f158"}.ci-copy:before{content:"\f159"}.ci-corner-down-left:before{content:"\f15a"}.ci-corner-down-right:before{content:"\f15b"}.ci-corner-left-down:before{content:"\f15c"}.ci-corner-left-up:before{content:"\f15d"}.ci-corner-right-down:before{content:"\f15e"}.ci-corner-right-up:before{content:"\f15f"}.ci-corner-up-left:before{content:"\f160"}.ci-corner-up-right:before{content:"\f161"}.ci-credit-card:before{content:"\f162"}.ci-crop:before{content:"\f163"}.ci-crosshair:before{content:"\f164"}.ci-database:before{content:"\f165"}.ci-delete:before{content:"\f166"}.ci-delivery-2:before{content:"\f167"}.ci-delivery:before{content:"\f168"}.ci-disc:before{content:"\f169"}.ci-discord:before{content:"\f16a"}.ci-disqus:before{content:"\f16b"}.ci-divide:before{content:"\f16c"}.ci-dollar-sign:before{content:"\f16d"}.ci-download-cloud:before{content:"\f16e"}.ci-download:before{content:"\f16f"}.ci-dribbble:before{content:"\f170"}.ci-dropbox:before{content:"\f171"}.ci-droplet:before{content:"\f172"}.ci-edit-2:before{content:"\f173"}.ci-edit-3:before{content:"\f174"}.ci-edit:before{content:"\f175"}.ci-envato:before{content:"\f176"}.ci-evernote:before{content:"\f177"}.ci-external-link:before{content:"\f178"}.ci-eye-off:before{content:"\f179"}.ci-eye:before{content:"\f17a"}.ci-facebook:before{content:"\f17b"}.ci-fast-forward:before{content:"\f17c"}.ci-feather:before{content:"\f17d"}.ci-file-minus:before{content:"\f17e"}.ci-file-plus:before{content:"\f17f"}.ci-file-text:before{content:"\f180"}.ci-file:before{content:"\f181"}.ci-film:before{content:"\f182"}.ci-filter:before{content:"\f183"}.ci-flag:before{content:"\f184"}.ci-flickr:before{content:"\f185"}.ci-folder-minus:before{content:"\f186"}.ci-folder-plus:before{content:"\f187"}.ci-folder:before{content:"\f188"}.ci-food:before{content:"\f189"}.ci-foursquare:before{content:"\f18a"}.ci-frown:before{content:"\f18b"}.ci-game:before{content:"\f18c"}.ci-gift:before{content:"\f18d"}.ci-github:before{content:"\f18e"}.ci-globe:before{content:"\f18f"}.ci-gluten-free:before{content:"\f190"}.ci-google-drive:before{content:"\f191"}.ci-google-play:before{content:"\f192"}.ci-google:before{content:"\f193"}.ci-grid-2:before{content:"\f194"}.ci-grid:before{content:"\f195"}.ci-hanger:before{content:"\f196"}.ci-hangouts:before{content:"\f197"}.ci-hard-drive-2:before{content:"\f198"}.ci-hard-drive:before{content:"\f199"}.ci-hash:before{content:"\f19a"}.ci-headphones-2:before{content:"\f19b"}.ci-headphones:before{content:"\f19c"}.ci-heart-filled:before{content:"\f19d"}.ci-heart:before{content:"\f19e"}.ci-help-circle:before{content:"\f19f"}.ci-home:before{content:"\f1a0"}.ci-id-card:before{content:"\f1a1"}.ci-image:before{content:"\f1a2"}.ci-inbox:before{content:"\f1a3"}.ci-info:before{content:"\f1a4"}.ci-instagram:before{content:"\f1a5"}.ci-italic:before{content:"\f1a6"}.ci-key:before{content:"\f1a7"}.ci-kickstarter:before{content:"\f1a8"}.ci-layers-2:before{content:"\f1a9"}.ci-layers:before{content:"\f1aa"}.ci-layout:before{content:"\f1ab"}.ci-leaf:before{content:"\f1ac"}.ci-life-buoy:before{content:"\f1ad"}.ci-link-2:before{content:"\f1ae"}.ci-link:before{content:"\f1af"}.ci-linkedin:before{content:"\f1b0"}.ci-list:before{content:"\f1b1"}.ci-loader:before{content:"\f1b2"}.ci-lock:before{content:"\f1b3"}.ci-log-in:before{content:"\f1b4"}.ci-log-out:before{content:"\f1b5"}.ci-mail:before{content:"\f1b6"}.ci-map-pin:before{content:"\f1b7"}.ci-map:before{content:"\f1b8"}.ci-maximize-2:before{content:"\f1b9"}.ci-maximize:before{content:"\f1ba"}.ci-medium:before{content:"\f1bb"}.ci-meh:before{content:"\f1bc"}.ci-menu:before{content:"\f1bd"}.ci-message-circle:before{content:"\f1be"}.ci-message-square:before{content:"\f1bf"}.ci-messenger:before{content:"\f1c0"}.ci-mic-off:before{content:"\f1c1"}.ci-mic:before{content:"\f1c2"}.ci-minimize-2:before{content:"\f1c3"}.ci-minimize:before{content:"\f1c4"}.ci-minus-circle:before{content:"\f1c5"}.ci-minus-square:before{content:"\f1c6"}.ci-minus:before{content:"\f1c7"}.ci-monitor-2:before{content:"\f1c8"}.ci-monitor:before{content:"\f1c9"}.ci-moon:before{content:"\f1ca"}.ci-more-horizontal:before{content:"\f1cb"}.ci-more-vertical:before{content:"\f1cc"}.ci-mouse-pointer:before{content:"\f1cd"}.ci-move:before{content:"\f1ce"}.ci-music:before{content:"\f1cf"}.ci-myspace:before{content:"\f1d0"}.ci-navigation-2:before{content:"\f1d1"}.ci-navigation:before{content:"\f1d2"}.ci-odnoklassniki:before{content:"\f1d3"}.ci-open-source:before{content:"\f1d4"}.ci-package:before{content:"\f1d5"}.ci-paint:before{content:"\f1d6"}.ci-paperclip:before{content:"\f1d7"}.ci-patreon:before{content:"\f1d8"}.ci-pause-circle:before{content:"\f1d9"}.ci-pause:before{content:"\f1da"}.ci-pen-tool:before{content:"\f1db"}.ci-percent:before{content:"\f1dc"}.ci-phone-call:before{content:"\f1dd"}.ci-phone-forwarded:before{content:"\f1de"}.ci-phone-incoming:before{content:"\f1df"}.ci-phone-missed:before{content:"\f1e0"}.ci-phone-off:before{content:"\f1e1"}.ci-phone-outgoing:before{content:"\f1e2"}.ci-phone:before{content:"\f1e3"}.ci-pie-chart:before{content:"\f1e4"}.ci-pinterest:before{content:"\f1e5"}.ci-play-circle:before{content:"\f1e6"}.ci-play-filled:before{content:"\f1e7"}.ci-play:before{content:"\f1e8"}.ci-plus-circle:before{content:"\f1e9"}.ci-plus-square:before{content:"\f1ea"}.ci-plus:before{content:"\f1eb"}.ci-power:before{content:"\f1ec"}.ci-powerbank:before{content:"\f1ed"}.ci-printer-2:before{content:"\f1ee"}.ci-printer:before{content:"\f1ef"}.ci-product-hunt:before{content:"\f1f0"}.ci-quora:before{content:"\f1f1"}.ci-radio:before{content:"\f1f2"}.ci-reddit:before{content:"\f1f3"}.ci-refresh-ccw:before{content:"\f1f4"}.ci-refresh-cw:before{content:"\f1f5"}.ci-repeat:before{content:"\f1f6"}.ci-rewind:before{content:"\f1f7"}.ci-rocket:before{content:"\f1f8"}.ci-rotate-ccw:before{content:"\f1f9"}.ci-rotate-cw:before{content:"\f1fa"}.ci-rss-2:before{content:"\f1fb"}.ci-rss:before{content:"\f1fc"}.ci-ruler:before{content:"\f1fd"}.ci-save:before{content:"\f1fe"}.ci-scan:before{content:"\f1ff"}.ci-schedule:before{content:"\f200"}.ci-scissors:before{content:"\f201"}.ci-search:before{content:"\f202"}.ci-send:before{content:"\f203"}.ci-server:before{content:"\f204"}.ci-settings:before{content:"\f205"}.ci-share-2:before{content:"\f206"}.ci-share:before{content:"\f207"}.ci-shield-off:before{content:"\f208"}.ci-shield:before{content:"\f209"}.ci-shopping-bag:before{content:"\f20a"}.ci-shopping-cart:before{content:"\f20b"}.ci-shuffle:before{content:"\f20c"}.ci-sidebar:before{content:"\f20d"}.ci-skip-back:before{content:"\f20e"}.ci-skip-forward:before{content:"\f20f"}.ci-skype:before{content:"\f210"}.ci-slack:before{content:"\f211"}.ci-sliders:before{content:"\f212"}.ci-smartphone-2:before{content:"\f213"}.ci-smartphone:before{content:"\f214"}.ci-smile:before{content:"\f215"}.ci-snapchat:before{content:"\f216"}.ci-sort:before{content:"\f217"}.ci-soundcloud:before{content:"\f218"}.ci-speaker-2:before{content:"\f219"}.ci-speaker:before{content:"\f21a"}.ci-spotify:before{content:"\f21b"}.ci-stack-overflow:before{content:"\f21c"}.ci-star-filled:before{content:"\f21d"}.ci-star-half:before{content:"\f21e"}.ci-star:before{content:"\f21f"}.ci-steam:before{content:"\f220"}.ci-stop-circle:before{content:"\f221"}.ci-stumbleupon:before{content:"\f222"}.ci-sun:before{content:"\f223"}.ci-sunrise:before{content:"\f224"}.ci-sunset:before{content:"\f225"}.ci-table:before{content:"\f226"}.ci-tablet:before{content:"\f227"}.ci-tag:before{content:"\f228"}.ci-target:before{content:"\f229"}.ci-telegram:before{content:"\f22a"}.ci-terminal:before{content:"\f22b"}.ci-thermometer:before{content:"\f22c"}.ci-thumbs-down:before{content:"\f22d"}.ci-thumbs-up:before{content:"\f22e"}.ci-ticket:before{content:"\f22f"}.ci-tiktok:before{content:"\f230"}.ci-tinder:before{content:"\f231"}.ci-tool:before{content:"\f232"}.ci-trash-empty:before{content:"\f233"}.ci-trash:before{content:"\f234"}.ci-trello:before{content:"\f235"}.ci-trending-down:before{content:"\f236"}.ci-trending-up:before{content:"\f237"}.ci-triangle:before{content:"\f238"}.ci-truck:before{content:"\f239"}.ci-tumblr:before{content:"\f23a"}.ci-tv:before{content:"\f23b"}.ci-twitch:before{content:"\f23c"}.ci-type:before{content:"\f23d"}.ci-umbrella:before{content:"\f23e"}.ci-unlock:before{content:"\f23f"}.ci-upload-cloud:before{content:"\f240"}.ci-upload:before{content:"\f241"}.ci-user-check:before{content:"\f242"}.ci-user-plus:before{content:"\f243"}.ci-user-x:before{content:"\f244"}.ci-user:before{content:"\f245"}.ci-viber:before{content:"\f246"}.ci-video-off:before{content:"\f247"}.ci-video:before{content:"\f248"}.ci-vimeo:before{content:"\f249"}.ci-vk:before{content:"\f24a"}.ci-voicemail:before{content:"\f24b"}.ci-volume-1:before{content:"\f24c"}.ci-volume-2:before{content:"\f24d"}.ci-volume-x:before{content:"\f24e"}.ci-volume:before{content:"\f24f"}.ci-watch-2:before{content:"\f250"}.ci-watch:before{content:"\f251"}.ci-wechat:before{content:"\f252"}.ci-whatsapp:before{content:"\f253"}.ci-wifi-off:before{content:"\f254"}.ci-wifi:before{content:"\f255"}.ci-wind:before{content:"\f256"}.ci-x:before{content:"\f257"}.ci-xing:before{content:"\f258"}.ci-yelp:before{content:"\f259"}.ci-youtube:before{content:"\f25a"}.ci-zap-off:before{content:"\f25b"}.ci-zap:before{content:"\f25c"}.ci-zoom-in:before{content:"\f25d"}.ci-zoom-out:before{content:"\f25e"} \ No newline at end of file +@font-face{font-display:block;font-family:CartZilla-icons;src:url(CartZilla-icons.woff2) format("woff2")}[class*=" ci-"]:before,[class^=ci-]:before{font-family:CartZilla-icons!important;font-style:normal;font-variant:normal;font-weight:400!important;line-height:1;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ci-activity:before{content:"\f101"}.ci-airbnb:before{content:"\f102"}.ci-airplay:before{content:"\f103"}.ci-alert-circle:before{content:"\f104"}.ci-alert-octagon:before{content:"\f105"}.ci-alert-triangle:before{content:"\f106"}.ci-align-center:before{content:"\f107"}.ci-align-justify:before{content:"\f108"}.ci-align-left:before{content:"\f109"}.ci-align-right:before{content:"\f10a"}.ci-anchor:before{content:"\f10b"}.ci-aperture:before{content:"\f10c"}.ci-apple:before{content:"\f10d"}.ci-archive:before{content:"\f10e"}.ci-arrow-down-circle:before{content:"\f10f"}.ci-arrow-down-left:before{content:"\f110"}.ci-arrow-down-right:before{content:"\f111"}.ci-arrow-down:before{content:"\f112"}.ci-arrow-left-circle:before{content:"\f113"}.ci-arrow-left:before{content:"\f114"}.ci-arrow-right-circle:before{content:"\f115"}.ci-arrow-right:before{content:"\f116"}.ci-arrow-up-circle:before{content:"\f117"}.ci-arrow-up-left:before{content:"\f118"}.ci-arrow-up-right:before{content:"\f119"}.ci-arrow-up:before{content:"\f11a"}.ci-at-sign:before{content:"\f11b"}.ci-auto:before{content:"\f11c"}.ci-avocado:before{content:"\f11d"}.ci-award:before{content:"\f11e"}.ci-banned:before{content:"\f11f"}.ci-bar-chart-2:before{content:"\f120"}.ci-bar-chart:before{content:"\f121"}.ci-battery-2:before{content:"\f122"}.ci-battery-charging:before{content:"\f123"}.ci-battery:before{content:"\f124"}.ci-behance:before{content:"\f125"}.ci-bell-off:before{content:"\f126"}.ci-bell:before{content:"\f127"}.ci-blogger:before{content:"\f128"}.ci-bluetooth:before{content:"\f129"}.ci-bold:before{content:"\f12a"}.ci-book-open:before{content:"\f12b"}.ci-book:before{content:"\f12c"}.ci-bookmark:before{content:"\f12d"}.ci-box:before{content:"\f12e"}.ci-briefcase:before{content:"\f12f"}.ci-broccoli:before{content:"\f130"}.ci-bullet:before{content:"\f131"}.ci-calendar:before{content:"\f132"}.ci-camera-2:before{content:"\f133"}.ci-camera-off:before{content:"\f134"}.ci-camera:before{content:"\f135"}.ci-cast:before{content:"\f136"}.ci-chat:before{content:"\f137"}.ci-check-circle:before{content:"\f138"}.ci-check-search:before{content:"\f139"}.ci-check-shield:before{content:"\f13a"}.ci-check-square:before{content:"\f13b"}.ci-check:before{content:"\f13c"}.ci-chevron-down:before{content:"\f13d"}.ci-chevron-left:before{content:"\f13e"}.ci-chevron-right:before{content:"\f13f"}.ci-chevron-up:before{content:"\f140"}.ci-chevrons-down:before{content:"\f141"}.ci-chevrons-left:before{content:"\f142"}.ci-chevrons-right:before{content:"\f143"}.ci-chevrons-up:before{content:"\f144"}.ci-click:before{content:"\f145"}.ci-clipboard:before{content:"\f146"}.ci-clock:before{content:"\f147"}.ci-close-circle:before{content:"\f148"}.ci-close-octagon:before{content:"\f149"}.ci-close-square:before{content:"\f14a"}.ci-close:before{content:"\f14b"}.ci-cloud-drizzle:before{content:"\f14c"}.ci-cloud-lightning:before{content:"\f14d"}.ci-cloud-off:before{content:"\f14e"}.ci-cloud-rain:before{content:"\f14f"}.ci-cloud-snow:before{content:"\f150"}.ci-cloud:before{content:"\f151"}.ci-code:before{content:"\f152"}.ci-codepen:before{content:"\f153"}.ci-coffee:before{content:"\f154"}.ci-columns:before{content:"\f155"}.ci-command:before{content:"\f156"}.ci-compass:before{content:"\f157"}.ci-computer:before{content:"\f158"}.ci-copy:before{content:"\f159"}.ci-corner-down-left:before{content:"\f15a"}.ci-corner-down-right:before{content:"\f15b"}.ci-corner-left-down:before{content:"\f15c"}.ci-corner-left-up:before{content:"\f15d"}.ci-corner-right-down:before{content:"\f15e"}.ci-corner-right-up:before{content:"\f15f"}.ci-corner-up-left:before{content:"\f160"}.ci-corner-up-right:before{content:"\f161"}.ci-credit-card:before{content:"\f162"}.ci-crop:before{content:"\f163"}.ci-crosshair:before{content:"\f164"}.ci-database:before{content:"\f165"}.ci-delete:before{content:"\f166"}.ci-delivery-2:before{content:"\f167"}.ci-delivery:before{content:"\f168"}.ci-disc:before{content:"\f169"}.ci-discord:before{content:"\f16a"}.ci-disqus:before{content:"\f16b"}.ci-divide:before{content:"\f16c"}.ci-dollar-sign:before{content:"\f16d"}.ci-download-cloud:before{content:"\f16e"}.ci-download:before{content:"\f16f"}.ci-dribbble:before{content:"\f170"}.ci-dropbox:before{content:"\f171"}.ci-droplet:before{content:"\f172"}.ci-edit-2:before{content:"\f173"}.ci-edit-3:before{content:"\f174"}.ci-edit:before{content:"\f175"}.ci-envato:before{content:"\f176"}.ci-evernote:before{content:"\f177"}.ci-external-link:before{content:"\f178"}.ci-eye-off:before{content:"\f179"}.ci-eye:before{content:"\f17a"}.ci-facebook:before{content:"\f17b"}.ci-fast-forward:before{content:"\f17c"}.ci-feather:before{content:"\f17d"}.ci-file-minus:before{content:"\f17e"}.ci-file-plus:before{content:"\f17f"}.ci-file-text:before{content:"\f180"}.ci-file:before{content:"\f181"}.ci-film:before{content:"\f182"}.ci-filter:before{content:"\f183"}.ci-flag:before{content:"\f184"}.ci-flickr:before{content:"\f185"}.ci-folder-minus:before{content:"\f186"}.ci-folder-plus:before{content:"\f187"}.ci-folder:before{content:"\f188"}.ci-food:before{content:"\f189"}.ci-foursquare:before{content:"\f18a"}.ci-frown:before{content:"\f18b"}.ci-game:before{content:"\f18c"}.ci-gift:before{content:"\f18d"}.ci-github:before{content:"\f18e"}.ci-globe:before{content:"\f18f"}.ci-gluten-free:before{content:"\f190"}.ci-google-drive:before{content:"\f191"}.ci-google-play:before{content:"\f192"}.ci-google:before{content:"\f193"}.ci-grid-2:before{content:"\f194"}.ci-grid:before{content:"\f195"}.ci-hanger:before{content:"\f196"}.ci-hangouts:before{content:"\f197"}.ci-hard-drive-2:before{content:"\f198"}.ci-hard-drive:before{content:"\f199"}.ci-hash:before{content:"\f19a"}.ci-headphones-2:before{content:"\f19b"}.ci-headphones:before{content:"\f19c"}.ci-heart-filled:before{content:"\f19d"}.ci-heart:before{content:"\f19e"}.ci-help-circle:before{content:"\f19f"}.ci-home:before{content:"\f1a0"}.ci-id-card:before{content:"\f1a1"}.ci-image:before{content:"\f1a2"}.ci-inbox:before{content:"\f1a3"}.ci-info:before{content:"\f1a4"}.ci-instagram:before{content:"\f1a5"}.ci-italic:before{content:"\f1a6"}.ci-key:before{content:"\f1a7"}.ci-kickstarter:before{content:"\f1a8"}.ci-layers-2:before{content:"\f1a9"}.ci-layers:before{content:"\f1aa"}.ci-layout:before{content:"\f1ab"}.ci-leaf:before{content:"\f1ac"}.ci-life-buoy:before{content:"\f1ad"}.ci-link-2:before{content:"\f1ae"}.ci-link:before{content:"\f1af"}.ci-linkedin:before{content:"\f1b0"}.ci-list:before{content:"\f1b1"}.ci-loader:before{content:"\f1b2"}.ci-lock:before{content:"\f1b3"}.ci-log-in:before{content:"\f1b4"}.ci-log-out:before{content:"\f1b5"}.ci-mail:before{content:"\f1b6"}.ci-map-pin:before{content:"\f1b7"}.ci-map:before{content:"\f1b8"}.ci-maximize-2:before{content:"\f1b9"}.ci-maximize:before{content:"\f1ba"}.ci-medium:before{content:"\f1bb"}.ci-meh:before{content:"\f1bc"}.ci-menu:before{content:"\f1bd"}.ci-message-circle:before{content:"\f1be"}.ci-message-square:before{content:"\f1bf"}.ci-messenger:before{content:"\f1c0"}.ci-mic-off:before{content:"\f1c1"}.ci-mic:before{content:"\f1c2"}.ci-minimize-2:before{content:"\f1c3"}.ci-minimize:before{content:"\f1c4"}.ci-minus-circle:before{content:"\f1c5"}.ci-minus-square:before{content:"\f1c6"}.ci-minus:before{content:"\f1c7"}.ci-monitor-2:before{content:"\f1c8"}.ci-monitor:before{content:"\f1c9"}.ci-moon:before{content:"\f1ca"}.ci-more-horizontal:before{content:"\f1cb"}.ci-more-vertical:before{content:"\f1cc"}.ci-mouse-pointer:before{content:"\f1cd"}.ci-move:before{content:"\f1ce"}.ci-music:before{content:"\f1cf"}.ci-myspace:before{content:"\f1d0"}.ci-navigation-2:before{content:"\f1d1"}.ci-navigation:before{content:"\f1d2"}.ci-odnoklassniki:before{content:"\f1d3"}.ci-open-source:before{content:"\f1d4"}.ci-package:before{content:"\f1d5"}.ci-paint:before{content:"\f1d6"}.ci-paperclip:before{content:"\f1d7"}.ci-patreon:before{content:"\f1d8"}.ci-pause-circle:before{content:"\f1d9"}.ci-pause:before{content:"\f1da"}.ci-pen-tool:before{content:"\f1db"}.ci-percent:before{content:"\f1dc"}.ci-phone-call:before{content:"\f1dd"}.ci-phone-forwarded:before{content:"\f1de"}.ci-phone-incoming:before{content:"\f1df"}.ci-phone-missed:before{content:"\f1e0"}.ci-phone-off:before{content:"\f1e1"}.ci-phone-outgoing:before{content:"\f1e2"}.ci-phone:before{content:"\f1e3"}.ci-pie-chart:before{content:"\f1e4"}.ci-pinterest:before{content:"\f1e5"}.ci-play-circle:before{content:"\f1e6"}.ci-play-filled:before{content:"\f1e7"}.ci-play:before{content:"\f1e8"}.ci-plus-circle:before{content:"\f1e9"}.ci-plus-square:before{content:"\f1ea"}.ci-plus:before{content:"\f1eb"}.ci-power:before{content:"\f1ec"}.ci-powerbank:before{content:"\f1ed"}.ci-printer-2:before{content:"\f1ee"}.ci-printer:before{content:"\f1ef"}.ci-product-hunt:before{content:"\f1f0"}.ci-quora:before{content:"\f1f1"}.ci-radio:before{content:"\f1f2"}.ci-reddit:before{content:"\f1f3"}.ci-refresh-ccw:before{content:"\f1f4"}.ci-refresh-cw:before{content:"\f1f5"}.ci-repeat:before{content:"\f1f6"}.ci-rewind:before{content:"\f1f7"}.ci-rocket:before{content:"\f1f8"}.ci-rotate-ccw:before{content:"\f1f9"}.ci-rotate-cw:before{content:"\f1fa"}.ci-rss-2:before{content:"\f1fb"}.ci-rss:before{content:"\f1fc"}.ci-ruler:before{content:"\f1fd"}.ci-save:before{content:"\f1fe"}.ci-scan:before{content:"\f1ff"}.ci-schedule:before{content:"\f200"}.ci-scissors:before{content:"\f201"}.ci-search:before{content:"\f202"}.ci-send:before{content:"\f203"}.ci-server:before{content:"\f204"}.ci-settings:before{content:"\f205"}.ci-share-2:before{content:"\f206"}.ci-share:before{content:"\f207"}.ci-shield-off:before{content:"\f208"}.ci-shield:before{content:"\f209"}.ci-shopping-bag:before{content:"\f20a"}.ci-shopping-cart:before{content:"\f20b"}.ci-shuffle:before{content:"\f20c"}.ci-sidebar:before{content:"\f20d"}.ci-skip-back:before{content:"\f20e"}.ci-skip-forward:before{content:"\f20f"}.ci-skype:before{content:"\f210"}.ci-slack:before{content:"\f211"}.ci-sliders:before{content:"\f212"}.ci-smartphone-2:before{content:"\f213"}.ci-smartphone:before{content:"\f214"}.ci-smile:before{content:"\f215"}.ci-snapchat:before{content:"\f216"}.ci-sort:before{content:"\f217"}.ci-soundcloud:before{content:"\f218"}.ci-speaker-2:before{content:"\f219"}.ci-speaker:before{content:"\f21a"}.ci-spotify:before{content:"\f21b"}.ci-stack-overflow:before{content:"\f21c"}.ci-star-filled:before{content:"\f21d"}.ci-star-half:before{content:"\f21e"}.ci-star:before{content:"\f21f"}.ci-steam:before{content:"\f220"}.ci-stop-circle:before{content:"\f221"}.ci-stumbleupon:before{content:"\f222"}.ci-sun:before{content:"\f223"}.ci-sunrise:before{content:"\f224"}.ci-sunset:before{content:"\f225"}.ci-table:before{content:"\f226"}.ci-tablet:before{content:"\f227"}.ci-tag:before{content:"\f228"}.ci-target:before{content:"\f229"}.ci-telegram:before{content:"\f22a"}.ci-terminal:before{content:"\f22b"}.ci-thermometer:before{content:"\f22c"}.ci-thumbs-down:before{content:"\f22d"}.ci-thumbs-up:before{content:"\f22e"}.ci-ticket:before{content:"\f22f"}.ci-tiktok:before{content:"\f230"}.ci-tinder:before{content:"\f231"}.ci-tool:before{content:"\f232"}.ci-trash-empty:before{content:"\f233"}.ci-trash:before{content:"\f234"}.ci-trello:before{content:"\f235"}.ci-trending-down:before{content:"\f236"}.ci-trending-up:before{content:"\f237"}.ci-triangle:before{content:"\f238"}.ci-truck:before{content:"\f239"}.ci-tumblr:before{content:"\f23a"}.ci-tv:before{content:"\f23b"}.ci-twitch:before{content:"\f23c"}.ci-type:before{content:"\f23d"}.ci-umbrella:before{content:"\f23e"}.ci-unlock:before{content:"\f23f"}.ci-upload-cloud:before{content:"\f240"}.ci-upload:before{content:"\f241"}.ci-user-check:before{content:"\f242"}.ci-user-plus:before{content:"\f243"}.ci-user-x:before{content:"\f244"}.ci-user:before{content:"\f245"}.ci-viber:before{content:"\f246"}.ci-video-off:before{content:"\f247"}.ci-video:before{content:"\f248"}.ci-vimeo:before{content:"\f249"}.ci-vk:before{content:"\f24a"}.ci-voicemail:before{content:"\f24b"}.ci-volume-1:before{content:"\f24c"}.ci-volume-2:before{content:"\f24d"}.ci-volume-x:before{content:"\f24e"}.ci-volume:before{content:"\f24f"}.ci-watch-2:before{content:"\f250"}.ci-watch:before{content:"\f251"}.ci-wechat:before{content:"\f252"}.ci-whatsapp:before{content:"\f253"}.ci-wifi-off:before{content:"\f254"}.ci-wifi:before{content:"\f255"}.ci-wind:before{content:"\f256"}.ci-x:before{content:"\f257"}.ci-xing:before{content:"\f258"}.ci-yelp:before{content:"\f259"}.ci-youtube:before{content:"\f25a"}.ci-zap-off:before{content:"\f25b"}.ci-zap:before{content:"\f25c"}.ci-zoom-in:before{content:"\f25d"}.ci-zoom-out:before{content:"\f25e"} \ No newline at end of file diff --git a/resources/js/components/product-highlights.js b/resources/js/components/product-highlights.js new file mode 100644 index 0000000..e69de29 diff --git a/resources/js/theme.js b/resources/js/theme.js index 3f73dfa..ba7a96b 100644 --- a/resources/js/theme.js +++ b/resources/js/theme.js @@ -34,4 +34,4 @@ import './components/binded-label' import './components/image-zoom' import './components/code-highlight' import './components/copy-text' -import './components/chart' +import './components/chart' \ No newline at end of file diff --git a/resources/views/components/home/brand-home-fashion-v1.blade.php b/resources/views/components/home/brand-home-fashion-v1.blade.php index 2344018..ee921c6 100644 --- a/resources/views/components/home/brand-home-fashion-v1.blade.php +++ b/resources/views/components/home/brand-home-fashion-v1.blade.php @@ -1,6 +1,6 @@ -
-
-
+
+ +
- + +
+
- - @foreach($brands as $brand) - - {{ $brand->name }} - - - @endforeach - -
- - -
+ +
+
+
+ @for ($i = 1; $i <= 6; $i++) +
+
+
+
+
+
+
+
+
+
+ @endfor
-
\ No newline at end of file + + + + + diff --git a/resources/views/components/home/home-popular-products.blade.php b/resources/views/components/home/home-popular-products.blade.php new file mode 100644 index 0000000..94e4199 --- /dev/null +++ b/resources/views/components/home/home-popular-products.blade.php @@ -0,0 +1,248 @@ + + + diff --git a/resources/views/components/home/home-slider.blade.php b/resources/views/components/home/home-slider.blade.php new file mode 100644 index 0000000..5420346 --- /dev/null +++ b/resources/views/components/home/home-slider.blade.php @@ -0,0 +1,99 @@ +
+
+
+ + +
+
+
+
+ + +
+

The new warm collection

+

New fall
season 2024

+ + Shop now + + +
+ + +
+

Ready for the party?

+

Choose outfits for parties

+ + Shop now + + +
+ + +
+

Shades of gray for your look

+

-50% on gray Collection

+ + Shop now + + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+
+ Image +
+
+ Image +
+
+ Image +
+
+
+
+
+
+
+
diff --git a/resources/views/components/home/new-arrivals.blade.php b/resources/views/components/home/new-arrivals.blade.php index 256ef6b..2f23a5c 100644 --- a/resources/views/components/home/new-arrivals.blade.php +++ b/resources/views/components/home/new-arrivals.blade.php @@ -76,7 +76,7 @@ {{ $product->name }} -
{{ number_format($product->price, 0, ',', '.') }}
+
Rp {{ number_format($product->display_price, 0, ',', '.') }}
@endforeach diff --git a/resources/views/components/home/product-highlight.blade.php b/resources/views/components/home/product-highlight.blade.php index 7f8f31c..04a0685 100644 --- a/resources/views/components/home/product-highlight.blade.php +++ b/resources/views/components/home/product-highlight.blade.php @@ -1,35 +1,204 @@ -
-

{{ __('weeks_highlights.this_weeks_highlights') }}

+ + +
+

{{ __('weeks_highlights.this_weeks_highlights') }}

+ + + +
+
+ + + +
+ +
- - - @foreach ($products as $key => $product) -
- -
- @endforeach - + @for ($i = 1; $i <= 8; $i++) +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @endfor
-
+ + +
+ + + + diff --git a/resources/views/home/fashion-v1.blade.php b/resources/views/home/fashion-v1.blade.php index f1a5e96..c0c307c 100644 --- a/resources/views/home/fashion-v1.blade.php +++ b/resources/views/home/fashion-v1.blade.php @@ -8,267 +8,11 @@
-
-
-
- - -
-
-
-
- - -
-

The new warm collection

-

New fall
season 2024

- - Shop now - - -
- - -
-

Ready for the party?

-

Choose outfits for parties

- - Shop now - - -
- - -
-

Shades of gray for your look

-

-50% on gray Collection

- - Shop now - - -
-
-
-
- - -
-
-
-
- - -
-
-
-
-
-
- Image -
-
- Image -
-
- Image -
-
-
-
-
-
-
-
+ -
-
- - -
-
-
-

Popular products

- - -
- - -
-
- - - -
-
- - -
-
-
-
-
-
-
- Image -
-
-
-
-
- Image -
-
-
-
-
-
+ diff --git a/routes/web.php b/routes/web.php index 1234d8a..f9a6a76 100644 --- a/routes/web.php +++ b/routes/web.php @@ -7,6 +7,7 @@ use App\Http\Controllers\LocationController; use App\Http\Controllers\LocaleController; use App\Http\Controllers\ProductController; use App\Http\Controllers\SearchController; +use App\Http\Controllers\ComponentController; Route::group(['prefix' => '/dummy'], function () { Route::get('', [RoutingController::class, 'index'])->name('root'); @@ -26,9 +27,14 @@ Route::get('/', [HomeController::class, 'index'])->name('home'); Route::get('/products',[ProductController::class, 'index'])->name('product.index'); Route::get('/products/ajax',[ProductController::class, 'ajax'])->name('product.ajax'); +Route::get('/products/ajax/highlights',[ProductController::class, 'highlights'])->name('product.ajax.highlights'); +Route::get('/products/ajax/brands',[ProductController::class, 'brands'])->name('product.ajax.brands'); Route::get('/products/ajax/categories',[ProductController::class, 'categories'])->name('product.ajax.categories'); Route::get('/products/ajax/genders',[ProductController::class, 'genders'])->name('product.ajax.genders'); Route::get('/product/{slug}',[ProductController::class, 'detail'])->name('product.detail'); // Search routes -Route::get('/search', [SearchController::class, 'search'])->name('search.ajax'); \ No newline at end of file +Route::get('/search', [SearchController::class, 'search'])->name('search.ajax'); + +// Component loading routes +Route::get('/components/{component}', [ComponentController::class, 'load'])->name('component.load'); \ No newline at end of file