prefix('public') ->withPolicy('PublicPolicy')->group(function (Router $router) { $router->get('products', [ShopController::class, 'getProducts']); $router->get('product-views', [ShopController::class, 'getProductViews']); $router->get('product-search', [ShopController::class, 'searchProduct']); }); $router->prefix('cart') ->withPolicy('PublicPolicy')->group(function (Router $router) { // add_item removed — cart updates go through the WordPress AJAX handler // (fluent_cart_cart_update action in WebCheckoutHandler), not this REST route. //$router->post('/apply-coupon', [CartController::class, 'applyCoupon']); //$router->post('/cancel-coupon', [CartController::class, 'cancelCoupon']); //$router->post('/re-apply-coupon', [CartController::class, 'reapplyCoupon']); }); $router->prefix('checkout') ->withPolicy('PublicPolicy')->group(function (Router $router) { $router->post('place-order', [CheckoutController::class, 'placeOrder']); $router->get('get-order-info', [CheckoutController::class, 'getOrderInfo']); $router->get('get-checkout-summary-view', [CheckoutController::class, 'getCheckoutSummary']); $router->get('/get-available-shipping-methods', [ShippingFrontendController::class, 'getAvailableShippingMethods']); $router->get('/get-shipping-methods-list-view', [ShippingFrontendController::class, 'getShippingMethodsListView']); $router->get('/get-country-info', [ShippingFrontendController::class, 'getCountryInfo']); }); $router->prefix('user')->withPolicy('PublicPolicy')->group(function (Router $router) { //$router->post('register', [UserController::class, 'register']); $router->post('login', [UserController::class, 'login']); }); $router->prefix('customers') ->withPolicy('CustomerFrontendPolicy')->group(function (Router $router) { //$router->post('/', [CustomerController::class, 'store']); $router->get('/{customerId}', [CustomerController::class, 'getDetails']); $router->put('/{customerId}', [CustomerController::class, 'updateDetails']); $router->get('/{customerId}/orders', [CustomerController::class, 'getCustomerOrders']); $router->get('/{customerAddressId}/update-address-select', [CustomerController::class, 'updateAddressSelect']); $router->put('/{customerId}/address', [CustomerController::class, 'updateAddress']); $router->post('/add-address', [CustomerController::class, 'createAddress']); $router->delete('/{customerId}/address', [CustomerController::class, 'removeAddress']); $router->post('/{customerId}/address/make-primary', [CustomerController::class, 'setAddressPrimary']); }); $router->prefix('customer-profile')->withPolicy('CustomerFrontendPolicy')->group(function (Router $router) { $router->get('/', [CustomerProfileController::class, 'index']); $router->get('/downloads', [CustomerProfileController::class, 'getDownloads']); $router->get('/profile', [CustomerProfileController::class, 'getCustomerProfileDetails']); $router->post('/create-address', [CustomerProfileController::class, 'createCustomerProfileAddress']); $router->post('/edit-address', [CustomerProfileController::class, 'updateCustomerProfileAddress']); $router->post('/make-primary-address', [CustomerProfileController::class, 'makePrimaryCustomerProfileAddress']); $router->post('/delete-address', [CustomerProfileController::class, 'deleteCustomerProfileAddress']); $router->post('/update', [CustomerProfileController::class, 'updateCustomerProfileDetails']); // orders $router->get('orders', [CustomerOrderController::class, 'getOrders']); $router->get('orders/{order_uuid}', [CustomerOrderController::class, 'orderDetails'])->alphaNumDash('order_uuid'); $router->get('orders/{order_uuid}/upgrade-paths', [CustomerProfileController::class, 'getUpgradePaths'])->alphaNumDash('order_uuid'); // Order billing address $router->get('orders/{transaction_uuid}/billing-address', [CustomerOrderController::class, 'getTransactionBillingAddress'])->alphaNumDash('transaction_uuid'); $router->put('orders/{transaction_uuid}/billing-address', [CustomerOrderController::class, 'saveTransactionBillingAddress'])->alphaNumDash('transaction_uuid'); // subscriptions $router->get('subscriptions', [CustomerSubscriptionController::class, 'getSubscriptions']); $router->get('subscriptions/{subscription_uuid}', [CustomerSubscriptionController::class, 'getSubscription'])->alphaNumDash('subscription_uuid'); $router->get('subscriptions/{subscription_uuid}/setup-intent-attempts', [CustomerSubscriptionController::class, 'getSetupIntentRemainingAttempts'])->alphaNumDash('subscription_uuid'); $router->post('subscriptions/{subscription_uuid}/update-payment-method', [CustomerSubscriptionController::class, 'updatePaymentMethod'])->alphaNumDash('subscription_uuid'); $router->post('subscriptions/{subscription_uuid}/get-or-create-plan', [CustomerSubscriptionController::class, 'getOrCreatePlan'])->alphaNumDash('subscription_uuid'); $router->post('subscriptions/{subscription_uuid}/switch-payment-method', [CustomerSubscriptionController::class, 'switchPaymentMethod'])->alphaNumDash('subscription_uuid'); $router->post('subscriptions/{subscription_uuid}/confirm-subscription-switch', [CustomerSubscriptionController::class, 'confirmSubscriptionSwitch'])->alphaNumDash('subscription_uuid'); $router->post('subscriptions/{subscription_uuid}/cancel-auto-renew', [CustomerSubscriptionController::class, 'cancelAutoRenew'])->alphaNumDash('subscription_uuid'); $router->post('subscriptions/{subscription_uuid}/initiate-early-payment', [CustomerSubscriptionController::class, 'initiateEarlyPayment'])->alphaNumDash('subscription_uuid'); });