// Bio Link Routes (Must come FIRST for subdomains!) require __DIR__.'/biolink.php'; ΓΈ use Illuminate\Support\Facades\Route; use App\helper\helper; use App\Http\Controllers\admin\AdminController; use App\Http\Controllers\SitemapController; use App\Http\Controllers\RobotsTxtController; use App\Http\Controllers\admin\PlanPricingController; use App\Http\Controllers\admin\CategoryController; use App\Http\Controllers\admin\SubCategoryController; use App\Http\Controllers\admin\ProductController; use App\Http\Controllers\admin\PaymentController; use App\Http\Controllers\admin\StoreCategoryController; use App\Http\Controllers\admin\TransactionController; use App\Http\Controllers\admin\BannerController; use App\Http\Controllers\Addons\included\BlogController; use App\Http\Controllers\admin\HowItWorkController; use App\Http\Controllers\admin\ThemeController; use App\Http\Controllers\admin\VendorController; use App\Http\Controllers\admin\VendorWizardController; use App\Http\Controllers\admin\OrderController; use App\Http\Controllers\admin\GlobalExtrasController; use App\Http\Controllers\admin\SystemAddonsController; use App\Http\Controllers\admin\OtherPagesController; use App\Http\Controllers\admin\WhoWeAreController; use App\Http\Controllers\admin\FeaturesController; use App\Http\Controllers\admin\WebSettingsController; use App\Http\Controllers\admin\TaxController; use App\Http\Controllers\admin\TopdealsController; use App\Http\Controllers\admin\MarketplaceController; use App\Http\Controllers\Admin\AdminAddonController; use App\Http\Controllers\MarketplacePaymentController; use App\Http\Controllers\landing\HomeController as LandingHomeController; use App\Http\Controllers\web\HomeController; use App\Http\Controllers\web\CartController; use App\Http\Controllers\web\UserController as WebUserController; use App\Http\Controllers\web\CheckoutController; use App\Http\Controllers\web\WalletController; use App\Http\Controllers\web\ProductController as WebProductController; use App\Http\Controllers\web\OtherPagesController as WebOtherPagesController; /* |-------------------------------------------------------------------------- | Web Routes |-------------------------------------------------------------------------- | | Here is where you can register web routes for your application. These | routes are loaded by the RouteServiceProvider within a group which | contains the "web" middleware group. Now create something great! | */ // ------------------------------- ----------- ----------------------------------------- // // ------------------------------- for Admin ----------------------------------------- // // ------------------------------- ----------- ----------------------------------------- // /* |-------------------------------------------------------------------------- | SEO Public Routes (No Authentication Required) |-------------------------------------------------------------------------- */ // XML Sitemap Routes Route::get('/sitemap.xml', [SitemapController::class, 'index'])->name('sitemap.index'); Route::get('/sitemap-{type}.xml', [SitemapController::class, 'show'])->name('sitemap.show'); Route::get('/sitemap-{type}-{chunk}.xml', [SitemapController::class, 'showChunk'])->name('sitemap.chunk'); // Robots.txt Route Route::get('/robots.txt', [RobotsTxtController::class, 'show'])->name('robots.txt'); // FIXED: Set prefix for vendor routes // The original code used url()->current() which is unreliable during route registration // We now default to path-based routing with vendor slug // Use $_ENV directly since config() doesn't work during route registration $domain = $_ENV['WEBSITE_HOST'] ?? '127.0.0.1'; $host = $_ENV['WEBSITE_HOST'] ?? '127.0.0.1'; $prefix = '{vendor_slug}'; Route::post('add-on/session/save', [AdminController::class, 'sessionsave']); // Marketplace Payment Webhooks (no auth required) Route::post('marketplace/webhook/{gateway}', [MarketplacePaymentController::class, 'webhook']) ->name('marketplace.webhook') ->withoutMiddleware(['web', 'csrf']); // Referral tracking route (public - tracks referral link clicks) Route::get('ref/{code}', [\App\Http\Controllers\Marketing\ReferralController::class, 'trackReferral'])->name('referral.track'); // Public referral program join page Route::get('referral/join', [\App\Http\Controllers\Marketing\ReferralController::class, 'joinPage'])->name('referral.join'); // Public referral registration (simplified form) Route::get('referral/register', [\App\Http\Controllers\Marketing\ReferralController::class, 'showRegisterForm'])->name('referral.register'); Route::post('referral/register', [\App\Http\Controllers\Marketing\ReferralController::class, 'register'])->name('referral.register.submit'); // Public referral login (for referral partners) Route::get('referral/login', [\App\Http\Controllers\Marketing\ReferralController::class, 'showLoginForm'])->name('referral.login'); Route::post('referral/login', [\App\Http\Controllers\Marketing\ReferralController::class, 'login'])->name('referral.login.submit'); // Public referral partner dashboard (after login) Route::get('referral/dashboard', [\App\Http\Controllers\Marketing\ReferralController::class, 'partnerDashboard'])->name('referral.partner.dashboard')->middleware('auth'); Route::post('referral/payout/request', [\App\Http\Controllers\Marketing\ReferralController::class, 'requestPayout'])->name('referral.partner.payout')->middleware('auth'); Route::get('referral/logout', [\App\Http\Controllers\Marketing\ReferralController::class, 'logout'])->name('referral.logout')->middleware('auth'); if ($host == ($_ENV['WEBSITE_HOST'] ?? '127.0.0.1')) { // Route::get('/', [AdminController::class, 'login']); Route::group(['namespace' => 'admin', 'prefix' => 'admin'], function () { Route::get('/', [AdminController::class, 'login']); Route::post('checklogin', [AdminController::class, 'check_admin_login']); // Vendor Registration (using wizard form) Route::get('register', [VendorController::class, 'register'])->name('vendor.register'); // Domain search API for registration wizard Route::post('register/search-domains', [VendorController::class, 'searchDomains'])->name('register.searchDomains'); Route::post('register/check-domain', [VendorController::class, 'checkDomainAvailability'])->name('register.checkDomain'); Route::get('register/domain-pricing', [VendorController::class, 'getDomainPricing'])->name('register.domainPricing'); // Vendor Setup Wizard Routes Route::get('register/wizard', [VendorWizardController::class, 'start'])->name('vendor.wizard.start'); Route::get('register/resume', [VendorWizardController::class, 'resume'])->name('vendor.wizard.resume'); Route::post('register/save-step', [VendorWizardController::class, 'saveStep'])->name('vendor.wizard.save'); Route::post('register/validate-step', [VendorWizardController::class, 'validateStep'])->name('vendor.wizard.validate'); Route::post('register/check-availability', [VendorWizardController::class, 'checkAvailability'])->name('vendor.wizard.check'); Route::post('register/upload-logo', [VendorWizardController::class, 'uploadLogo'])->name('vendor.wizard.uploadLogo'); Route::post('register/search-domains', [VendorWizardController::class, 'searchDomains'])->name('vendor.wizard.searchDomains'); Route::post('register/check-domain', [VendorWizardController::class, 'checkDomainAvailability'])->name('vendor.wizard.checkDomain'); Route::post('register/get-domain-pricing', [VendorWizardController::class, 'getDomainPricing'])->name('vendor.wizard.getDomainPricing'); Route::get('register/get-plans', [VendorWizardController::class, 'getPlans'])->name('vendor.wizard.getPlans'); Route::post('register/calculate-total', [VendorWizardController::class, 'calculateTotal'])->name('vendor.wizard.calculateTotal'); Route::post('register/initialize-payment', [VendorWizardController::class, 'initializePayment'])->name('vendor.wizard.initialize-payment'); Route::post('register/verify-payment', [VendorWizardController::class, 'verifyPayment'])->name('vendor.wizard.verify-payment'); Route::post('register/complete', [VendorWizardController::class, 'complete'])->name('vendor.wizard.complete'); // Email Verification Routes Route::post('register/send-verification', [VendorController::class, 'sendVerificationCode'])->name('register.sendVerification'); Route::post('register/verify-email', [VendorController::class, 'verifyEmailCode'])->name('register.verifyEmail'); Route::post('register/resend-verification', [VendorController::class, 'resendVerificationCode'])->name('register.resendVerification'); Route::post('register/check-email-verified', [VendorController::class, 'checkEmailVerified'])->name('register.checkEmailVerified'); Route::post('/getcity', [VendorController::class, 'getcity']); Route::post('register_vendor', [VendorController::class, 'register_vendor']); Route::get('forgot_password', [VendorController::class, 'forgot_password']); Route::post('send_password', [VendorController::class, 'send_password']); Route::get('/verify', function () { return view('admin.auth.verify'); }); Route::post('systemverification', [AdminController::class, 'systemverification'])->name('admin.systemverification'); Route::get('apps', [SystemAddonsController::class, 'index'])->name('systemaddons'); Route::get('createsystem-addons', [SystemAddonsController::class, 'createsystemaddons']); Route::post('systemaddons/store', [SystemAddonsController::class, 'store']); Route::get('systemaddons/status-{id}/{status}', [SystemAddonsController::class, 'change_status']); // Admin Addon Management Routes Route::group(['prefix' => 'addon-management', 'middleware' => 'AuthMiddleware'], function () { Route::get('/', [AdminAddonController::class, 'index'])->name('admin.addon-management.index'); Route::post('/sync', [AdminAddonController::class, 'syncAddons'])->name('admin.addon-management.sync'); Route::get('/{addonKey}', [AdminAddonController::class, 'show'])->name('admin.addon-management.show'); Route::post('/{addonKey}/toggle', [AdminAddonController::class, 'toggleStatus'])->name('admin.addon-management.toggle'); Route::post('/assign-vendor', [AdminAddonController::class, 'assignToVendor'])->name('admin.addon-management.assign-vendor'); Route::post('/bulk-assign', [AdminAddonController::class, 'bulkAssign'])->name('admin.addon-management.bulk-assign'); Route::post('/{addonKey}/assign-all', [AdminAddonController::class, 'assignToAllVendors'])->name('admin.addon-management.assign-all'); Route::post('/vendor/{vendorAddonId}/toggle', [AdminAddonController::class, 'toggleVendorAddon'])->name('admin.addon-management.toggle-vendor'); Route::delete('/vendor/{vendorAddonId}', [AdminAddonController::class, 'removeFromVendor'])->name('admin.addon-management.remove-vendor'); }); Route::group( ['middleware' => 'AuthMiddleware'], function () { // -------- Common -------- Route::get('admin_back', [VendorController::class, 'admin_back']); Route::get('logout', [AdminController::class, 'logout']); Route::get('dashboard', [AdminController::class, 'index']); // -------- Developer Routes -------- Route::prefix('developer')->name('developer.')->group(function () { Route::get('/dashboard', [\App\Http\Controllers\Developer\DeveloperDashboardController::class, 'index'])->name('dashboard'); Route::get('/billing', [\App\Http\Controllers\Developer\DeveloperDashboardController::class, 'billing'])->name('billing'); // Store Management Route::get('/stores/create', [\App\Http\Controllers\Developer\DeveloperDashboardController::class, 'createStoreWizard'])->name('stores.create'); Route::post('/stores/create', [\App\Http\Controllers\Developer\DeveloperDashboardController::class, 'storeFromTemplate'])->name('stores.store'); Route::get('/stores/bulk', [\App\Http\Controllers\Developer\DeveloperDashboardController::class, 'bulkManagement'])->name('stores.bulk'); Route::post('/stores/bulk-action', [\App\Http\Controllers\Developer\DeveloperDashboardController::class, 'bulkAction'])->name('stores.bulk-action'); // Templates Route::get('/templates', [\App\Http\Controllers\Developer\DeveloperDashboardController::class, 'templates'])->name('templates'); // API Hub Route::get('/api', [\App\Http\Controllers\Developer\DeveloperDashboardController::class, 'apiHub'])->name('api'); Route::post('/api/generate', [\App\Http\Controllers\Developer\DeveloperDashboardController::class, 'generateApiKey'])->name('api.generate'); // Advanced Features Route::get('/white-label', [\App\Http\Controllers\Developer\DeveloperDashboardController::class, 'whiteLabel'])->name('white-label'); Route::put('/white-label', [\App\Http\Controllers\Developer\DeveloperDashboardController::class, 'updateWhiteLabel'])->name('white-label.update'); Route::get('/commissions', [\App\Http\Controllers\Developer\DeveloperDashboardController::class, 'commissions'])->name('commissions'); Route::post('/commissions', [\App\Http\Controllers\Developer\DeveloperDashboardController::class, 'createCommission'])->name('commissions.create'); Route::get('/reports', [\App\Http\Controllers\Developer\DeveloperDashboardController::class, 'automatedReports'])->name('reports'); Route::post('/reports', [\App\Http\Controllers\Developer\DeveloperDashboardController::class, 'createReport'])->name('reports.create'); Route::get('/health', [\App\Http\Controllers\Developer\DeveloperDashboardController::class, 'healthMonitoring'])->name('health'); }); // Documentation Route::get('documentation', function() { $path = base_path('CEZN-COMPLETE-DOCUMENTATION.md'); if (!file_exists($path)) { abort(404, 'Documentation not found'); } $markdown = file_get_contents($path); return view('admin.documentation', compact('markdown')); }); // Settings Route::get('settings', [VendorController::class, 'settings_index']); Route::post('settings/update', [VendorController::class, 'settings_update']); Route::post('settings/update-business-type', [VendorController::class, 'updateBusinessType']); Route::post('settings/safe-secure-store', [VendorController::class, 'safe_secure_store']); Route::get('settings/delete-feature-{id}', [VendorController::class, 'delete_feature']); Route::post('settings/update-profile-{id}', [VendorController::class, 'update']); Route::post('settings/change-password', [VendorController::class, 'change_password']); Route::post('other/update', [WebSettingsController::class, 'other_update']); // Transaction Route::get('transaction', [TransactionController::class, 'index']); // Wallet System Route::group(['prefix' => 'wallet'], function () { Route::get('/', [\App\Http\Controllers\Admin\WalletController::class, 'index'])->name('wallet.index'); Route::get('/withdrawal', [\App\Http\Controllers\Admin\WalletController::class, 'withdrawalForm'])->name('wallet.withdrawal'); Route::post('/withdrawal/request', [\App\Http\Controllers\Admin\WalletController::class, 'requestWithdrawal'])->name('wallet.withdrawal.request'); Route::post('/withdrawal/cancel/{id}', [\App\Http\Controllers\Admin\WalletController::class, 'cancelWithdrawal'])->name('wallet.withdrawal.cancel'); Route::get('/transaction/{id}', [\App\Http\Controllers\Admin\WalletController::class, 'transactionDetails'])->name('wallet.transaction.details'); // Admin only routes Route::get('/admin/withdrawals', [\App\Http\Controllers\Admin\WalletController::class, 'adminWithdrawals'])->name('wallet.admin.withdrawals'); Route::post('/admin/withdrawal/{id}/update', [\App\Http\Controllers\Admin\WalletController::class, 'updateWithdrawalStatus'])->name('wallet.admin.withdrawal.update'); Route::post('/admin/credit', [\App\Http\Controllers\Admin\WalletController::class, 'adminCredit'])->name('wallet.admin.credit'); Route::post('/admin/debit', [\App\Http\Controllers\Admin\WalletController::class, 'adminDebit'])->name('wallet.admin.debit'); }); // Reward System Route::group(['prefix' => 'rewards'], function () { Route::get('/', [\App\Http\Controllers\Admin\RewardController::class, 'index'])->name('rewards.index'); // Admin only routes Route::get('/admin/types', [\App\Http\Controllers\Admin\RewardController::class, 'adminRewardTypes'])->name('rewards.admin.types'); Route::post('/admin/types/store', [\App\Http\Controllers\Admin\RewardController::class, 'storeRewardType'])->name('rewards.admin.types.store'); Route::put('/admin/types/{id}', [\App\Http\Controllers\Admin\RewardController::class, 'updateRewardType'])->name('rewards.admin.types.update'); Route::get('/admin/user-rewards', [\App\Http\Controllers\Admin\RewardController::class, 'adminUserRewards'])->name('rewards.admin.user-rewards'); Route::post('/admin/award', [\App\Http\Controllers\Admin\RewardController::class, 'awardReward'])->name('rewards.admin.award'); Route::post('/admin/approve/{id}', [\App\Http\Controllers\Admin\RewardController::class, 'approveReward'])->name('rewards.admin.approve'); Route::post('/admin/reject/{id}', [\App\Http\Controllers\Admin\RewardController::class, 'rejectReward'])->name('rewards.admin.reject'); }); // Plans Route::get('plan', [PlanPricingController::class, 'view_plan']); Route::get('transaction/plandetails-{id}', [PlanPricingController::class, 'plan_details']); Route::get('transaction/generatepdf-{id}', [PlanPricingController::class, 'generatepdf']); Route::get('/themeimages', [PlanPricingController::class, 'themeimages']); // Payment Route::group( ['prefix' => 'payment'], function () { Route::get('/', [PaymentController::class, 'index']); Route::post('update', [PaymentController::class, 'update']); Route::post('/reorder_payment', [PaymentController::class, 'reorder_payment']); } ); // STORE CATEGORIES Route::group( ['prefix' => 'store_categories'], function () { Route::get('/', [StoreCategoryController::class, 'index']); Route::get('add', [StoreCategoryController::class, 'add_category']); Route::post('save', [StoreCategoryController::class, 'save_category']); Route::get('edit-{id}', [StoreCategoryController::class, 'edit_category']); Route::post('update-{id}', [StoreCategoryController::class, 'update_category']); Route::get('change_status-{id}/{status}', [StoreCategoryController::class, 'change_status']); Route::get('delete-{id}', [StoreCategoryController::class, 'delete_category']); Route::post('/reorder_category', [StoreCategoryController::class, 'reorder_category']); } ); // inquiries Route::get('/inquiries', [OtherPagesController::class, 'inquiries']); Route::get('/inquiries/delete-{id}', [OtherPagesController::class, 'inquiries_delete']); // Other Pages Route::get('/subscribers', [OtherPagesController::class, 'subscribers']); Route::get('/subscribers/delete-{id}', [OtherPagesController::class, 'subscribers_delete']); Route::get('/privacypolicy', [OtherPagesController::class, 'privacypolicy']); Route::post('/privacypolicy/update', [OtherPagesController::class, 'update_privacypolicy']); Route::get('/termscondition', [OtherPagesController::class, 'termscondition']); Route::post('/termscondition/update', [OtherPagesController::class, 'update_terms']); Route::get('/aboutus', [OtherPagesController::class, 'aboutus']); Route::post('/aboutus/update', [OtherPagesController::class, 'update_aboutus']); Route::get('/refund_policy', [OtherPagesController::class, 'refund_policy']); Route::post('/refund_policy/update', [OtherPagesController::class, 'refund_policy_update']); Route::group( ['prefix' => 'orders'], function () { Route::get('/invoice/{vendor_id}/{order_number}', [OrderController::class, 'invoice']); Route::get('/print/{order_number}', [OrderController::class, 'print']); Route::get('/generatepdf/{vendor_id}/{order_number}', [OrderController::class, 'generatepdf']); Route::post('/customerinfo', [OrderController::class, 'customerinfo']); Route::post('/vendor_note', [OrderController::class, 'vendor_note']); } ); // website settings Route::get('/basic_settings', [WebSettingsController::class, 'basic_settings']); Route::post('/themeupdate', [WebSettingsController::class, 'themeupdate']); Route::post('/seo_update', [WebSettingsController::class, 'seo_update']); Route::post('/footer_features/update', [WebSettingsController::class, 'footer_features_update']); Route::post('/tips_settings/update', [WebSettingsController::class, 'tips_settings']); Route::post('/contact_settings/update', [WebSettingsController::class, 'contact_settings']); Route::post('/other/update', [WebSettingsController::class, 'other_update']); // tax Route::group( ['prefix' => 'tax'], function () { Route::get('/', [TaxController::class, 'index']); Route::get('add', [TaxController::class, 'add']); Route::post('save', [TaxController::class, 'save']); Route::get('edit-{id}', [TaxController::class, 'edit']); Route::post('update-{id}', [TaxController::class, 'update']); Route::get('change_status-{id}/{status}', [TaxController::class, 'change_status']); Route::get('delete-{id}', [TaxController::class, 'delete']); Route::post('reorder_tax', [TaxController::class, 'reorder_tax']); } ); // FAQs Route::group( ['prefix' => 'faqs'], function () { Route::get('/', [OtherPagesController::class, 'faq_index']); Route::get('/add', [OtherPagesController::class, 'faq_add']); Route::post('/save', [OtherPagesController::class, 'faq_save']); Route::get('/edit-{id}', [OtherPagesController::class, 'faq_edit']); Route::post('/update-{id}', [OtherPagesController::class, 'faq_update']); Route::get('/delete-{id}', [OtherPagesController::class, 'faq_delete']); Route::post('/reorder_faq', [OtherPagesController::class, 'reorder_faq']); } ); Route::post('social_links/update', [WebSettingsController::class, 'social_links_update']); Route::get('settings/delete-sociallinks-{id}', [WebSettingsController::class, 'delete_sociallinks']); Route::post('app_section/update', [WebSettingsController::class, 'app_section']); Route::middleware('adminmiddleware')->group( function () { Route::get('transaction-{id}-{status}', [TransactionController::class, 'status']); // Marketplace Route::group( ['prefix' => 'marketplace'], function () { Route::get('/', [MarketplaceController::class, 'dashboard'])->name('admin.marketplace.dashboard'); // Addons Route::get('/addons', [MarketplaceController::class, 'addons'])->name('admin.marketplace.addons'); Route::get('/addons/create', [MarketplaceController::class, 'createAddon'])->name('admin.marketplace.addons.create'); Route::post('/addons', [MarketplaceController::class, 'storeAddon'])->name('admin.marketplace.addons.store'); Route::get('/addons/{id}/edit', [MarketplaceController::class, 'editAddon'])->name('admin.marketplace.addons.edit'); Route::put('/addons/{id}', [MarketplaceController::class, 'updateAddon'])->name('admin.marketplace.addons.update'); Route::get('/addons/{id}/toggle', [MarketplaceController::class, 'toggleAddonStatus'])->name('admin.marketplace.addons.toggle'); Route::delete('/addons/{id}', [MarketplaceController::class, 'deleteAddon'])->name('admin.marketplace.addons.delete'); Route::post('/addons/reorder', [MarketplaceController::class, 'reorderAddons'])->name('admin.marketplace.addons.reorder'); // Categories Route::get('/categories', [MarketplaceController::class, 'categories'])->name('admin.marketplace.categories'); Route::post('/categories', [MarketplaceController::class, 'storeCategory'])->name('admin.marketplace.categories.store'); Route::put('/categories/{id}', [MarketplaceController::class, 'updateCategory'])->name('admin.marketplace.categories.update'); Route::delete('/categories/{id}', [MarketplaceController::class, 'deleteCategory'])->name('admin.marketplace.categories.delete'); Route::post('/categories/reorder', [MarketplaceController::class, 'reorderCategories'])->name('admin.marketplace.categories.reorder'); // Subscriptions Route::get('/subscriptions', [MarketplaceController::class, 'subscriptions'])->name('admin.marketplace.subscriptions'); Route::get('/subscriptions/{id}', [MarketplaceController::class, 'viewSubscription'])->name('admin.marketplace.subscriptions.view'); Route::post('/subscriptions/{id}/cancel', [MarketplaceController::class, 'cancelSubscription'])->name('admin.marketplace.subscriptions.cancel'); // Payments Route::get('/payments', [MarketplaceController::class, 'payments'])->name('admin.marketplace.payments'); Route::post('/payments/{id}/refund', [MarketplaceController::class, 'refundPayment'])->name('admin.marketplace.payments.refund'); // Reviews Route::get('/reviews', [MarketplaceController::class, 'reviews'])->name('admin.marketplace.reviews'); Route::post('/reviews/{id}/approve', [MarketplaceController::class, 'approveReview'])->name('admin.marketplace.reviews.approve'); Route::post('/reviews/{id}/reject', [MarketplaceController::class, 'rejectReview'])->name('admin.marketplace.reviews.reject'); Route::post('/reviews/{id}/respond', [MarketplaceController::class, 'respondToReview'])->name('admin.marketplace.reviews.respond'); Route::delete('/reviews/{id}', [MarketplaceController::class, 'deleteReview'])->name('admin.marketplace.reviews.delete'); // Analytics Route::get('/analytics', [MarketplaceController::class, 'analytics'])->name('admin.marketplace.analytics'); // Export Route::get('/export', [MarketplaceController::class, 'export'])->name('admin.marketplace.export'); // Payment Gateway Settings Route::get('/settings/payment', [MarketplaceController::class, 'paymentSettings'])->name('admin.marketplace.settings.payment'); } ); // Plan Route::group( ['prefix' => 'plan'], function () { Route::get('add', [PlanPricingController::class, 'add_plan']); Route::post('save_plan', [PlanPricingController::class, 'save_plan']); Route::get('edit-{id}', [PlanPricingController::class, 'edit_plan']); Route::post('update_plan-{id}', [PlanPricingController::class, 'update_plan']); Route::get('status_change-{id}/{status}', [PlanPricingController::class, 'status_change']); Route::get('/delete-{id}', [PlanPricingController::class, 'delete']); Route::post('/updateimage', [PlanPricingController::class, 'updateimage']); Route::post('/reorder_plan', [PlanPricingController::class, 'reorder_plan']); } ); // Users/Vendors Route::group( ['prefix' => 'users'], function () { Route::get('/', [VendorController::class, 'index']); Route::get('add', [VendorController::class, 'add']); Route::get('view-{slug}', [VendorController::class, 'view']); Route::get('edit-{slug}', [VendorController::class, 'edit']); Route::post('update-{slug}', [VendorController::class, 'update']); Route::get('status-{slug}/{status}', [VendorController::class, 'status']); Route::get('login-{slug}', [VendorController::class, 'vendor_login']); Route::get('delete-{slug}', [VendorController::class, 'deletevendor']); } ); //features Route::group( ['prefix' => 'features'], function () { Route::get('/', [FeaturesController::class, 'index']); Route::get('/add', [FeaturesController::class, 'add']); Route::post('/save', [FeaturesController::class, 'save']); Route::get('/edit-{id}', [FeaturesController::class, 'edit']); Route::post('/update-{id}', [FeaturesController::class, 'update']); Route::get('/delete-{id}', [FeaturesController::class, 'delete']); Route::post('/reorder_features', [FeaturesController::class, 'reorder_features']); } ); // countries Route::group( ['prefix' => 'countries'], function () { Route::get('/', [OtherPagesController::class, 'countries']); Route::get('/add', [OtherPagesController::class, 'add_country']); Route::post('/save', [OtherPagesController::class, 'save_country']); Route::get('/edit-{id}', [OtherPagesController::class, 'edit_country']); Route::post('/update-{id}', [OtherPagesController::class, 'update_country']); Route::get('/delete-{id}', [OtherPagesController::class, 'delete_country']); Route::get('/change_status-{id}/{status}', [OtherPagesController::class, 'statuschange_country']); Route::post('/reorder_country', [OtherPagesController::class, 'reorder_country']); } ); // city Route::group( ['prefix' => 'cities'], function () { Route::get('/', [OtherPagesController::class, 'cities']); Route::get('/add', [OtherPagesController::class, 'add_city']); Route::post('/save', [OtherPagesController::class, 'save_city']); Route::get('/edit-{id}', [OtherPagesController::class, 'edit_city']); Route::post('/update-{id}', [OtherPagesController::class, 'update_city']); Route::get('/delete-{id}', [OtherPagesController::class, 'delete_city']); Route::get('/change_status-{id}/{status}', [OtherPagesController::class, 'statuschange_city']); Route::post('/reorder_area', [OtherPagesController::class, 'reorder_area']); } ); // promotional banner Route::group( ['prefix' => 'promotionalbanners'], function () { Route::get('/', [BannerController::class, 'promotional_banner']); Route::get('add', [BannerController::class, 'promotional_banneradd']); Route::get('edit-{id}', [BannerController::class, 'promotional_banneredit']); Route::post('save', [BannerController::class, 'promotional_bannersave_banner']); Route::post('update-{id}', [BannerController::class, 'promotional_bannerupdate']); Route::get('delete-{id}', [BannerController::class, 'promotional_bannerdelete']); Route::post('reorder_promotionalbanner', [BannerController::class, 'reorder_promotionalbanner']); } ); Route::post('/fun_fact/update', [WebSettingsController::class, 'fun_fact_update']); Route::get('/fun_fact/delete-{id}', [WebSettingsController::class, 'fun_fact_delete']); // Landing Page Content Management Route::post('/landing/hero/update', [WebSettingsController::class, 'landing_hero_update']); Route::post('/landing/sections/update', [WebSettingsController::class, 'landing_sections_update']); Route::post('/landing/testimonials/update', [WebSettingsController::class, 'landing_testimonials_update']); Route::get('/landing/testimonials/delete-{id}', [WebSettingsController::class, 'landing_testimonial_delete']); // theme Route::get('/themes', [ThemeController::class, 'index']); Route::get('themes/add', [ThemeController::class, 'add']); Route::post('/themes/save', [ThemeController::class, 'save']); Route::get('/themes/edit-{id}', [ThemeController::class, 'edit']); Route::post('/themes/update-{id}', [ThemeController::class, 'update']); Route::get('/themes/delete-{id}', [ThemeController::class, 'delete']); Route::post('/themes/reorder_theme', [ThemeController::class, 'reorder_theme']); Route::get('/how_it_works', [HowItWorkController::class, 'index']); Route::get('/how_it_works/add', [HowItWorkController::class, 'add']); Route::get('/how_it_works/edit-{id}', [HowItWorkController::class, 'edit']); Route::post('/how_it_works/save', [HowItWorkController::class, 'save']); Route::post('/how_it_works/update-{id}', [HowItWorkController::class, 'update']); Route::get('/how_it_works/delete-{id}', [HowItWorkController::class, 'delete']); Route::post('/how_it_works/reorder_how_work', [HowItWorkController::class, 'reorder_how_work']); } ); Route::middleware('VendorMiddleware')->group( function () { Route::get('settings/delete-banner', [VendorController::class, 'delete_viewall_page_image']); Route::get('/deleteaccount-{id}', [VendorController::class, 'deleteaccount']); // share Route::get('share', [OtherPagesController::class, 'share']); // Orders Route::get('/report', [OrderController::class, 'index']); Route::group( ['prefix' => 'orders'], function () { Route::get('/', [OrderController::class, 'index']); Route::get('/update-{id}-{status}-{type}', [OrderController::class, 'update']); Route::post('/payment_status-{status}', [OrderController::class, 'payment_status']); } ); // Categories Route::group( ['prefix' => 'categories'], function () { Route::get('/', [CategoryController::class, 'index']); Route::get('add', [CategoryController::class, 'add_category']); Route::post('save', [CategoryController::class, 'save_category']); Route::get('edit-{slug}', [CategoryController::class, 'edit_category']); Route::post('update-{slug}', [CategoryController::class, 'update_category']); Route::get('change_status-{slug}/{status}', [CategoryController::class, 'change_status']); Route::get('delete-{slug}', [CategoryController::class, 'delete_category']); Route::post('/reorder_category', [CategoryController::class, 'reorder_category']); } ); // Sub Categories Route::group( ['prefix' => 'sub-categories'], function () { Route::get('/', [SubCategoryController::class, 'index']); Route::get('add', [SubCategoryController::class, 'add']); Route::post('store', [SubCategoryController::class, 'store']); Route::get('edit-{slug}', [SubCategoryController::class, 'edit']); Route::post('update-{slug}', [SubCategoryController::class, 'update']); Route::get('change_status-{slug}/{status}', [SubCategoryController::class, 'change_status']); Route::get('delete-{slug}', [SubCategoryController::class, 'delete']); Route::post('/reorder_category', [SubCategoryController::class, 'subcategory_reorder']); } ); // Products Route::group( ['prefix' => 'products'], function () { Route::get('/', [ProductController::class, 'index']); Route::get('add', [ProductController::class, 'add']); Route::post('save', [ProductController::class, 'save']); Route::get('edit-{slug}', [ProductController::class, 'edit']); Route::post('update-{slug}', [ProductController::class, 'update_product']); Route::get('delete-{slug}', [ProductController::class, 'delete_product']); Route::post('update', [ProductController::class, 'update_image']); Route::get('delete_image-{id}/{service_id}', [ProductController::class, 'delete_image']); Route::get('deletevariation-{id}-{product_id}', [ProductController::class, 'delete_variation']); Route::post('add_image', [ProductController::class, 'add_image']); Route::get('status_change-{slug}/{status}', [ProductController::class, 'status_change']); Route::get('/top_deals-{slug}/{status}', [ProductController::class, 'top_deals']); Route::get('subcategories', [ProductController::class, 'subcategories']); Route::get('/import', [ProductController::class, 'import']); Route::post('/reorder_category', [ProductController::class, 'reorder_category']); Route::get('/review/delete-{id}', [ProductController::class, 'delete_review']); Route::post('/product-variants-possibilities/{product_id}', [ProductController::class, 'getProductVariantsPossibilities']); Route::get('/get-product-variants-possibilities', [ProductController::class, 'getProductVariantsPossibilities']); Route::get('/variants/edit/{product_id}', [ProductController::class, 'productVariantsEdit']); Route::post('/reorder_image-{product_id}', [ProductController::class, 'reorder_image']); Route::get('delete/extras-{id}', [ProductController::class, 'delete_extras']); } ); // Product SEO Route::group( ['prefix' => 'products/seo'], function () { Route::get('/', [\App\Http\Controllers\admin\ProductSeoController::class, 'index'])->name('admin.product-seo.index'); Route::get('edit-{id}', [\App\Http\Controllers\admin\ProductSeoController::class, 'edit'])->name('admin.product-seo.edit'); Route::post('update-{id}', [\App\Http\Controllers\admin\ProductSeoController::class, 'update'])->name('admin.product-seo.update'); Route::post('bulk-update', [\App\Http\Controllers\admin\ProductSeoController::class, 'bulkUpdate'])->name('admin.product-seo.bulk-update'); Route::post('auto-generate-{id}', [\App\Http\Controllers\admin\ProductSeoController::class, 'autoGenerate'])->name('admin.product-seo.auto-generate'); } ); // extras Route::get('/getextras', [GlobalExtrasController::class, 'getextras']); Route::get('/editgetextras-{id}', [GlobalExtrasController::class, 'editgetextras']); Route::group( ['prefix' => 'extras'], function () { Route::get('/', [GlobalExtrasController::class, 'index']); Route::get('/add', [GlobalExtrasController::class, 'add']); Route::post('/save', [GlobalExtrasController::class, 'save']); Route::get('/edit-{id}', [GlobalExtrasController::class, 'edit']); Route::post('/update-{id}', [GlobalExtrasController::class, 'update']); Route::get('/change_status-{id}/{status}', [GlobalExtrasController::class, 'change_status']); Route::get('delete-{id}', [GlobalExtrasController::class, 'delete']); Route::post('/reorder_extras', [GlobalExtrasController::class, 'reorder_extras']); } ); //shipping Route::group(['prefix' => 'shipping'], function () { Route::get('/', [OtherPagesController::class, 'shippingindex']); Route::post('/savecontent', [OtherPagesController::class, 'savecontent']); }); // Plan Route::group( ['prefix' => 'plan'], function () { Route::get('selectplan-{id}', [PlanPricingController::class, 'select_plan']); Route::post('buyplan', [PlanPricingController::class, 'buyplan']); Route::any('buyplan/paymentsuccess/success', [PlanPricingController::class, 'success']); } ); // Banners Route::group( ['prefix' => 'bannersection-1'], function () { Route::get('/', [BannerController::class, 'index']); Route::get('add', [BannerController::class, 'add']); Route::get('edit-{id}', [BannerController::class, 'edit']); Route::post('save', [BannerController::class, 'save_banner']); Route::post('update-{id}', [BannerController::class, 'edit_banner']); Route::get('status_change-{id}/{status}', [BannerController::class, 'status_update']); Route::get('delete-{id}', [BannerController::class, 'delete']); Route::post('reorder_banner', [BannerController::class, 'reorder_banner']); } ); Route::group( ['prefix' => 'bannersection-2'], function () { Route::get('/', [BannerController::class, 'index']); Route::get('add', [BannerController::class, 'add']); Route::get('edit-{id}', [BannerController::class, 'edit']); Route::post('save', [BannerController::class, 'save_banner']); Route::post('update-{id}', [BannerController::class, 'edit_banner']); Route::get('status_change-{id}/{status}', [BannerController::class, 'status_update']); Route::get('delete-{id}', [BannerController::class, 'delete']); Route::post('reorder_banner', [BannerController::class, 'reorder_banner']); } ); Route::group( ['prefix' => 'bannersection-3'], function () { Route::get('/', [BannerController::class, 'index']); Route::get('add', [BannerController::class, 'add']); Route::get('edit-{id}', [BannerController::class, 'edit']); Route::post('save', [BannerController::class, 'save_banner']); Route::post('update-{id}', [BannerController::class, 'edit_banner']); Route::get('status_change-{id}/{status}', [BannerController::class, 'status_update']); Route::get('delete-{id}', [BannerController::class, 'delete']); Route::post('reorder_banner', [BannerController::class, 'reorder_banner']); } ); Route::group( ['prefix' => 'sliders'], function () { Route::get('/', [BannerController::class, 'index']); Route::get('add', [BannerController::class, 'add']); Route::get('edit-{id}', [BannerController::class, 'edit']); Route::post('save', [BannerController::class, 'save_banner']); Route::post('update-{id}', [BannerController::class, 'edit_banner']); Route::get('status_change-{id}/{status}', [BannerController::class, 'status_update']); Route::get('delete-{id}', [BannerController::class, 'delete']); Route::post('reorder_banner', [BannerController::class, 'reorder_banner']); } ); Route::get('/whoweare', [WhoWeAreController::class, 'index']); Route::get('/whoweare/add', [WhoWeAreController::class, 'add']); Route::get('/whoweare/edit-{id}', [WhoWeAreController::class, 'edit']); Route::post('/whoweare/savecontent', [WhoWeAreController::class, 'savecontent']); Route::post('/whoweare/save', [WhoWeAreController::class, 'save']); Route::post('/whoweare/update-{id}', [WhoWeAreController::class, 'update']); Route::get('/whoweare/status_change-{id}/{status}', [WhoWeAreController::class, 'status_update']); Route::get('/whoweare/delete-{id}', [WhoWeAreController::class, 'delete']); Route::post('/whoweare/reorder_whoweare', [WhoWeAreController::class, 'reorder_whoweare']); Route::get('/top_deals', [TopdealsController::class, 'index']); Route::post('/top_deals/update', [TopdealsController::class, 'top_deals']); Route::get('/top_deals/delete-{id}', [TopdealsController::class, 'delete']); // Setup Wizard redirect to Business Types Route::get('setup-wizard', function () { return redirect()->route('vendor.business-types.index'); })->name('vendor.setup-wizard'); // Business Types Management (Vendor) Route::group(['prefix' => 'business-types'], function () { Route::get('/', [\App\Http\Controllers\Vendor\BusinessTypesController::class, 'index'])->name('vendor.business-types.index'); Route::post('/{addonKey}/toggle', [\App\Http\Controllers\Vendor\BusinessTypesController::class, 'toggle'])->name('vendor.business-types.toggle'); Route::get('/{addonKey}/settings', [\App\Http\Controllers\Vendor\BusinessTypesController::class, 'settings'])->name('vendor.business-types.settings'); Route::put('/{addonKey}/settings', [\App\Http\Controllers\Vendor\BusinessTypesController::class, 'updateSettings'])->name('vendor.business-types.settings.update'); // Branding (logo/favicon) routes Route::post('/{type}/branding', [\App\Http\Controllers\Vendor\BusinessTypesController::class, 'updateBranding'])->name('vendor.business-types.update-branding'); Route::post('/{type}/remove-branding', [\App\Http\Controllers\Vendor\BusinessTypesController::class, 'removeBranding'])->name('vendor.business-types.remove-branding'); // API endpoints for real-time sync and recommendations Route::get('/api/status', [\App\Http\Controllers\Vendor\BusinessTypesController::class, 'getStatus'])->name('vendor.business-types.api.status'); Route::get('/api/active', [\App\Http\Controllers\Vendor\BusinessTypesController::class, 'getActiveType'])->name('vendor.business-types.api.active'); Route::get('/api/recommendations', [\App\Http\Controllers\Vendor\BusinessTypesController::class, 'getRecommendations'])->name('vendor.business-types.api.recommendations'); Route::post('/api/switch', [\App\Http\Controllers\Vendor\BusinessTypesController::class, 'switchType'])->name('vendor.business-types.api.switch'); Route::post('/api/deactivate', [\App\Http\Controllers\Vendor\BusinessTypesController::class, 'deactivate'])->name('vendor.business-types.api.deactivate'); }); } ); } ); }); } // ------------------------------- ----------- ----------------------------------------- // // ------------------------------- LANDING PAGE ROUTES (Must come first!) --------------- // // ------------------------------- ----------- ----------------------------------------- // // IMPORTANT: These routes must be registered BEFORE vendor routes to prevent // the {vendor_slug} wildcard from catching landing page URLs like /aboutus, /contact, etc. Route::group(['namespace' => '', 'middleware' => 'landingMiddleware'], function () { // Main pages Route::get('/', [LandingHomeController::class, 'index'])->name('home'); Route::post('/emailsubscribe', [LandingHomeController::class, 'emailsubscribe'])->name('emailsubscribe'); Route::post('/inquiry', [LandingHomeController::class, 'inquiry'])->name('inquiry'); // About & Legal pages Route::get('/about', [LandingHomeController::class, 'aboutus'])->name('about'); Route::get('/aboutus', [LandingHomeController::class, 'aboutus']); // Legacy URL support Route::get('/privacy-policy', [LandingHomeController::class, 'privacypolicy'])->name('privacy-policy'); Route::get('/privacypolicy', [LandingHomeController::class, 'privacypolicy']); // Legacy URL support Route::get('/refund-policy', [LandingHomeController::class, 'refund_policy'])->name('refund-policy'); Route::get('/refund_policy', [LandingHomeController::class, 'refund_policy']); // Legacy URL support Route::get('/terms', [LandingHomeController::class, 'termscondition'])->name('terms'); Route::get('/termscondition', [LandingHomeController::class, 'termscondition']); // Legacy URL support // Blog routes Route::get('/blogdetail-{slug}', [BlogController::class, 'pageblogdetail'])->name('blog.detail'); Route::get('/blog', [BlogController::class, 'allblogs'])->name('blog'); Route::get('/blogs', [BlogController::class, 'allblogs']); // Legacy URL support // Marketing blog routes (for markdown-based blog posts) Route::get('/marketing-blog', [BlogController::class, 'marketingBlogs'])->name('marketing.blog.index'); Route::get('/marketing-blog/{slug}', [BlogController::class, 'marketingBlogDetail'])->name('marketing.blog.show'); Route::get('/marketing-blog/feed/rss', [BlogController::class, 'marketingBlogRss'])->name('marketing.blog.rss'); // Other landing pages Route::get('/faq', [LandingHomeController::class, 'faqs'])->name('faq'); Route::get('/faqs', [LandingHomeController::class, 'faqs']); // Legacy URL support Route::get('/contact', [LandingHomeController::class, 'contact'])->name('contact'); Route::get('/stores', [LandingHomeController::class, 'allstores'])->name('stores'); Route::get('/templates', [LandingHomeController::class, 'templatePreview'])->name('templates'); Route::post('/getcity', [AdminController::class, 'getcity']); Route::get('/themeimages', [LandingHomeController::class, 'themeimages']); // New multi-page website routes Route::get('/features', [LandingHomeController::class, 'features'])->name('features'); Route::get('/addons', [LandingHomeController::class, 'addons'])->name('addons'); Route::get('/addon/{slug}', [LandingHomeController::class, 'addonDetail'])->name('addon.detail'); Route::get('/feature/{slug}', [LandingHomeController::class, 'featureDetail'])->name('feature.detail'); Route::get('/pricing', [LandingHomeController::class, 'pricing'])->name('pricing'); // Product Pages (SEO-optimized individual pages) Route::get('/products/ecommerce-store', [LandingHomeController::class, 'productEcommerceStore'])->name('products.ecommerce'); Route::get('/products/ai-agents', [LandingHomeController::class, 'productAiAgents'])->name('products.ai-agents'); Route::get('/products/social-bot', [LandingHomeController::class, 'productSocialBot'])->name('products.social-bot'); Route::get('/products/webmail', [LandingHomeController::class, 'productWebmail'])->name('products.webmail'); Route::get('/products/biolink', [LandingHomeController::class, 'productBiolink'])->name('products.biolink'); Route::get('/products/seo-tools', [LandingHomeController::class, 'productSeoTools'])->name('products.seo-tools'); // Authentication routes - redirect to admin panel Route::get('/login', function () { return redirect('/admin/'); })->name('landing.login'); Route::get('/register', function () { return redirect('/admin/register'); })->name('landing.register'); Route::get('/vendor/login', function () { return redirect('/admin/'); }); Route::get('/vendor/register', function () { return redirect('/admin/register'); }); Route::get('/signin', function () { return redirect('/admin/'); }); Route::get('/signup', function () { return redirect('/admin/register'); }); }); // Developer/Agency Account Routes (Must come BEFORE vendor routes to prevent {vendor_slug} catching 'developer') require __DIR__.'/developer.php'; // ------------------------------- ----------- ----------------------------------------- // // ------------------------------- for Web/Front (Vendor Stores) ----------------------- // // ------------------------------- ----------- ----------------------------------------- // Route::group(['prefix' => $prefix, 'middleware' => 'FrontMiddleware'], function () { Route::get('/', [HomeController::class, 'index']); Route::get('/pwa', [HomeController::class, 'pwaindex']); Route::get('/test_debug', function(Illuminate\Http\Request $request) { return 'TEST DEBUG WORKS! website_host config: ' . config('app.website_host') . '
vendor_slug from request: ' . ($request->vendor_slug ?? 'NULL') . '
vendor_slug from route: ' . ($request->route('vendor_slug') ?? 'NULL'); }); Route::get('/test_controller', [HomeController::class, 'index']); Route::get('/shop_all', [WebProductController::class, 'category_wise_products']); Route::get('/categories', [HomeController::class, 'categories']); Route::get('/checkvendor', [HomeController::class, 'checkvendor']); Route::post('/managefavorite', [HomeController::class, 'managefavorite']); Route::get('/wallet', [WalletController::class, 'wallet']); Route::get('/addmoneywallet', [WalletController::class, 'addmoneywallet']); Route::post('/wallet/recharge', [WalletController::class, 'addwallet']); Route::any('/addwalletsuccess', [WalletController::class, 'addsuccess']); Route::any('/addfail', [WalletController::class, 'addfail']); // product-search-filter Route::get('/category', [WebProductController::class, 'category_wise_products']); Route::get('/categories-{category_slug}/subcategory-{subcategory_slug}', [WebProductController::class, 'category_wise_products']); Route::get('/products', [WebProductController::class, 'category_wise_products']); Route::get('/products-{type}', [WebProductController::class, 'category_wise_products']); Route::get('/products/{product_slug}', [WebProductController::class, 'productdetails']); Route::get('/topdeals', [WebProductController::class, 'alltopdeals']); // Cart Route::get('/cart', [CartController::class, 'index']); Route::get('/cart/clear', [CartController::class, 'clearcart']); Route::get('/cart/clear-{vid}', [CartController::class, 'clearcart']); Route::post('/cart/add', [CartController::class, 'addtocart']); // checkout-orders Route::get('/checkout', [CheckoutController::class, 'index']); Route::post('/checkout/orderlimit', [CheckoutController::class, 'orderlimit']); Route::post('/placeorder', [CheckoutController::class, 'placeorder']); Route::post('/copycode', [CheckoutController::class, 'copycode']); // third party suucess route Route::any('/payment', [CheckoutController::class, 'paymentrequestsuccess']); // third party suucess route Route::get('/orders-success-{order_number}', [CheckoutController::class, 'ordersuccess']); Route::get('/find-order', [CheckoutController::class, 'orderdetails']); Route::get('/orders-cancel-{order_number}', [CheckoutController::class, 'cancelorder']); // other-pages Route::get('/contact-us', [WebOtherPagesController::class, 'contact_us']); Route::post('/contact-us/store', [WebOtherPagesController::class, 'contact_store']); Route::post('/subscribe', [WebOtherPagesController::class, 'subscribe']); // legal (commented out - these routes conflict with landing page routes) // NOTE: These are now handled by LandingHomeController in the landing middleware group // Route::get('/termscondition', [WebOtherPagesController::class, 'termscondition']); // Route::get('/privacypolicy', [WebOtherPagesController::class, 'privacypolicy']); // Route::get('/aboutus', [WebOtherPagesController::class, 'aboutus']); // Route::get('/refund_policy', [WebOtherPagesController::class, 'refund_policy']); // Login Page Route::get('/login', [WebUserController::class, 'user_login']); Route::get('/register', [WebUserController::class, 'user_register']); Route::post('/checklogin-{logintype}', [WebUserController::class, 'check_login']); Route::post('/register_customer', [WebUserController::class, 'register_customer']); Route::get('/forgotpassword', [WebUserController::class, 'userforgotpassword']); Route::post('/send_userpassword', [WebUserController::class, 'send_userpassword']); Route::get('/logout', [WebUserController::class, 'logout']); Route::get('/deleteaccount', [WebUserController::class, 'deleteaccount']); Route::get('/deleteprofile', [WebUserController::class, 'deleteprofile']); //User profile Route::get('/profile', [WebUserController::class, 'my_profile']); Route::post('/editprofile', [WebUserController::class, 'edit_profile']); Route::get('/change-password', [WebUserController::class, 'changepassword']); Route::post('/updatepassword', [WebUserController::class, 'updatepassword']); Route::get('/orders', [WebUserController::class, 'orders']); Route::get('/favourite', [WebUserController::class, 'wishlist_product']); Route::get('/refer-earn', [WebUserController::class, 'referearn']); Route::get('/getproductdata', [WebProductController::class, 'getproductdata']); // Route::get('/shop_all', [WebProductController::class, 'category_wise_products']); // DUPLICATE - removed Route::post('/postreview', [WebProductController::class, 'postreview']); Route::get('/category', [WebProductController::class, 'category_wise_products']); // Route::get('/faqs', [WebOtherPagesController::class, 'faqs']); // Commented - handled by LandingHomeController Route::get('/gallery', [WebOtherPagesController::class, 'gallery']); // NOTE: /blogs and /blogs-{slug} routes are defined in routes/included/blog.php }); Route::get('get-products-variant-quantity', [WebProductController::class, 'getProductsVariantQuantity']); Route::post('changeqty', [WebProductController::class, 'changeqty']); Route::post('cart/qtyupdate', [WebProductController::class, 'qtyupdate']); // NOTE: Landing page routes have been moved ABOVE vendor routes (line 593) // to prevent route conflicts with {vendor_slug} wildcard // Bio Link Addon Routes require __DIR__.'/biolink.php'; // Advanced SEO Addon Routes require __DIR__.'/seo.php'; // Supplier Management Addon Routes require __DIR__.'/suppliers.php'; // Invoicing Addon Routes require __DIR__.'/invoices.php'; // Advanced Paylink Addon Routes require __DIR__.'/paylink.php'; // Advanced Price Quote Addon Routes require __DIR__.'/pricequote.php'; // Advanced Proposal Addon Routes require __DIR__.'/proposal.php'; // Google Ads Addon Routes require __DIR__.'/googleads.php'; // Facebook Ads Addon Routes require __DIR__.'/facebookads.php'; // Instagram Ads Addon Routes require __DIR__.'/instagramads.php'; // HRM Addon Routes require __DIR__.'/hrm.php'; // Domain Management Routes require __DIR__.'/domain.php'; // NOTE: Developer routes are now included earlier (before vendor routes) // to prevent {vendor_slug} wildcard from catching '/developer' path // Temporary debug route - remove after testing // DEBUG ROUTE REMOVED - Security patch 2026-01-24 // This test route has been removed for production security // If needed for development, uncomment locally only CEZN SaaS | Admin Panel

404

Opps!

Page not found

Page you are looking for doesn't exit or an other error ocurred or temporarily unavailable.

Go To Home