Apply And Remove Coupon API Implemented

This commit is contained in:
Devansh 2020-08-10 16:07:08 +05:30
parent e401da600e
commit eed4cce3b0
2 changed files with 60 additions and 6 deletions

View File

@ -2,15 +2,15 @@
namespace Webkul\API\Http\Controllers\Shop;
use Cart;
use Exception;
use Illuminate\Http\JsonResponse;
use Illuminate\Support\Facades\Event;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Event;
use Webkul\Checkout\Repositories\CartRepository;
use Webkul\Checkout\Repositories\CartItemRepository;
use Webkul\API\Http\Resources\Checkout\Cart as CartResource;
use Cart;
use Webkul\Customer\Repositories\WishlistRepository;
use Webkul\API\Http\Resources\Checkout\Cart as CartResource;
class CartController extends Controller
{
@ -70,7 +70,7 @@ class CartController extends Controller
}
/**
* Get customer cart
* Get customer cart.
*
* @return \Illuminate\Http\JsonResponse
*/
@ -242,4 +242,55 @@ class CartController extends Controller
'data' => $cart ? new CartResource($cart) : null,
]);
}
/**
* Apply coupon code.
*
* @return \Illuminate\Http\JsonResponse
*/
public function applyCoupon()
{
$couponCode = request()->get('code');
try {
if (strlen($couponCode)) {
Cart::setCouponCode($couponCode)->collectTotals();
if (Cart::getCart()->coupon_code == $couponCode) {
return response()->json([
'success' => true,
'message' => trans('shop::app.checkout.total.success-coupon'),
]);
}
}
return response()->json([
'success' => false,
'message' => trans('shop::app.checkout.total.invalid-coupon'),
]);
} catch (\Exception $e) {
report($e);
return response()->json([
'success' => false,
'message' => trans('shop::app.checkout.total.coupon-apply-issue'),
]);
}
}
/**
* Remove coupon code.
*
* @return \Illuminate\Http\JsonResponse
*/
public function removeCoupon()
{
Cart::removeCouponCode()->collectTotals();
return response()->json([
'success' => true,
'message' => trans('shop::app.checkout.total.remove-coupon'),
]);
}
}

View File

@ -75,7 +75,7 @@ Route::group(['prefix' => 'api'], function ($router) {
'resource' => 'Webkul\API\Http\Resources\Catalog\ProductReview',
'authorization_required' => true
]);
//Channel routes
Route::get('channels', 'ResourceController@index')->defaults('_config', [
@ -246,7 +246,6 @@ Route::group(['prefix' => 'api'], function ($router) {
Route::get('wishlist/add/{id}', 'WishlistController@create');
//Checkout routes
Route::group(['prefix' => 'checkout'], function ($router) {
Route::post('cart/add/{id}', 'CartController@store');
@ -259,6 +258,10 @@ Route::group(['prefix' => 'api'], function ($router) {
Route::get('cart/remove-item/{id}', 'CartController@destroyItem');
Route::post('cart/coupon', 'CartController@applyCoupon');
Route::delete('cart/coupon', 'CartController@removeCoupon');
Route::get('cart/move-to-wishlist/{id}', 'CartController@moveToWishlist');
Route::post('save-address', 'CheckoutController@saveAddress');