diff --git a/packages/Webkul/Admin/src/Resources/views/settings/channels/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/settings/channels/edit.blade.php
index dd6b2da91..085b83936 100644
--- a/packages/Webkul/Admin/src/Resources/views/settings/channels/edit.blade.php
+++ b/packages/Webkul/Admin/src/Resources/views/settings/channels/edit.blade.php
@@ -65,17 +65,17 @@
@{{ errors.first('locales[]') }}
-
+
default_locale_id ?>
-
@@ -91,17 +91,17 @@
@{{ errors.first('currencies[]') }}
-
+
base_currency_id ?>
-
+
@foreach(core()->getAllCurrencies() as $currency)
@endforeach
- @{{ errors.first('base_currency') }}
+ @{{ errors.first('base_currency_id') }}
diff --git a/packages/Webkul/Cart/src/Cart.php b/packages/Webkul/Cart/src/Cart.php
index 21ef0a103..246254906 100644
--- a/packages/Webkul/Cart/src/Cart.php
+++ b/packages/Webkul/Cart/src/Cart.php
@@ -102,9 +102,6 @@ class Cart {
*/
public function add($id, $data) {
- // session()->forget('cart');
- // return redirect()->back();
-
if(session()->has('cart')) {
$cart = session()->get('cart');
diff --git a/packages/Webkul/Cart/src/Database/Migrations/2018_09_05_150444_create_cart_table.php b/packages/Webkul/Cart/src/Database/Migrations/2018_09_05_150444_create_cart_table.php
index 9809f692d..f5027b241 100644
--- a/packages/Webkul/Cart/src/Database/Migrations/2018_09_05_150444_create_cart_table.php
+++ b/packages/Webkul/Cart/src/Database/Migrations/2018_09_05_150444_create_cart_table.php
@@ -20,6 +20,11 @@ class CreateCartTable extends Migration
$table->string('session_id')->nullable();
$table->integer('channel_id')->unsigned();
$table->foreign('channel_id')->references('id')->on('channels');
+ $table->string('sku')->nullable();
+ $table->string('type')->nullable();
+ $table->string('name')->nullable();
+ $table->integer('parent_id')->nullable();
+ $table->foreign('parent_id')->references('id')->on('cart');
$table->string('coupon_code')->nullable();
$table->boolean('is_gift')->nullable();
$table->integer('items_count')->nullable();
diff --git a/packages/Webkul/Cart/src/Http/Controllers/CartController.php b/packages/Webkul/Cart/src/Http/Controllers/CartController.php
index a27596180..59af6df1b 100644
--- a/packages/Webkul/Cart/src/Http/Controllers/CartController.php
+++ b/packages/Webkul/Cart/src/Http/Controllers/CartController.php
@@ -4,19 +4,15 @@ namespace Webkul\Cart\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
-
use Webkul\Cart\Repositories\CartRepository;
use Webkul\Cart\Repositories\CartItemRepository;
-
use Webkul\Product\Repositories\ProductRepository;
-
use Webkul\Customer\Repositories\CustomerRepository;
-
use Webkul\Product\Product\ProductImage;
use Webkul\Product\Product\View as ProductView;
+use Webkul\Attribute\Repositories\AttributeOptionRepository;
use Cart;
-use Cookie;
/**
* Cart controller for the customer
@@ -31,9 +27,17 @@ class CartController extends Controller
{
/**
- * Display a listing of the resource.
+ * Protected Variables that
+ * holds instances of the
+ * repository classes.
*
- * @return \Illuminate\Http\Response
+ * @param Array $_config
+ * @param $cart
+ * @param $cartItem
+ * @param $customer
+ * @param $product
+ * @param $productImage
+ * @param $productView
*/
protected $_config;
@@ -47,7 +51,26 @@ class CartController extends Controller
protected $productView;
- public function __construct(CartRepository $cart, CartItemRepository $cartItem, CustomerRepository $customer, ProductRepository $product, ProductImage $productImage, ProductView $productView) {
+ /**
+ * Initializing various
+ * required repositories
+ * and classes.
+ *
+ * @param Mixed $cart
+ * @param Mixed $cartItem
+ * @param Mixed $customer
+ * @param Mixed $product
+ * @param Mixed $productImage
+ * @param Mixed $productView
+ */
+ public function __construct(
+ CartRepository $cart,
+ CartItemRepository $cartItem,
+ CustomerRepository $customer,
+ ProductRepository $product,
+ ProductImage $productImage,
+ ProductView $productView)
+ {
$this->middleware('customer')->except(['add', 'remove', 'test']);
@@ -75,20 +98,34 @@ class CartController extends Controller
*/
public function add($id) {
+
+ session()->forget('cart');
+ return redirect()->back();
+
$data = request()->input();
if(!isset($data['is_configurable']) || !isset($data['product']) ||!isset($data['quantity'])) {
- session()->flash('error', 'Cannot Product Due to User\'s miscreancy in system\'s integrity');
+ session()->flash('error', 'Cart System Integrity Violation');
return redirect()->back();
+ } else {
+ //handle the accidental case
+ //when some one deleted
+ //form fields from the DOM
+ if($data['is_configurable']) {
+ if(!isset($data['super_attributes'])) {
+ session()->flash('error', 'Cart System Integrity Violation');
+
+ return redirect()->back();
+ }
+ }
}
- if($data['is_configurable'] == "false") {
- $data['price'] = $this->product->findOneByField('id', $data['product'])->price;
- } else {
- $id = $data['selected_configurable_option'];
-
+ if(isset($data['is_configurable']) && $data['is_configurable']) {
$data['price'] = $this->product->findOneByField('id', $data['selected_configurable_option'])->price;
+
+ } else {
+ $data['price'] = $this->product->findOneByField('id', $data['product'])->price;
}
Cart::add($id, $data);
diff --git a/packages/Webkul/Cart/src/Http/ViewComposers/CartComposer.php b/packages/Webkul/Cart/src/Http/ViewComposers/CartComposer.php
index d1e88dfbe..6432d6f7e 100644
--- a/packages/Webkul/Cart/src/Http/ViewComposers/CartComposer.php
+++ b/packages/Webkul/Cart/src/Http/ViewComposers/CartComposer.php
@@ -48,8 +48,6 @@ class CartComposer
$cart = $this->cart->findOneByField('customer_id', auth()->guard('customer')->user()->id);
if(isset($cart)) {
- $cart = $this->cart->findOneByField('id', 144);
-
$cartItems = $this->cart->items($cart['id']);
$products = array();
@@ -74,8 +72,6 @@ class CartComposer
$cart = session()->get('cart');
if(isset($cart)) {
- $cart = $this->cart->findOneByField('id', 144);
-
$cartItems = $this->cart->items($cart['id']);
$products = array();
diff --git a/packages/Webkul/Cart/src/Repositories/CartRepository.php b/packages/Webkul/Cart/src/Repositories/CartRepository.php
index 362bad43c..5702461fc 100644
--- a/packages/Webkul/Cart/src/Repositories/CartRepository.php
+++ b/packages/Webkul/Cart/src/Repositories/CartRepository.php
@@ -42,7 +42,6 @@ class CartRepository extends Repository
* @param string $attribute
* @return Mixed
*/
-
public function update(array $data, $id, $attribute = "id")
{
$cart = $this->find($id);
@@ -52,60 +51,6 @@ class CartRepository extends Repository
return $cart;
}
- public function getProducts($id) {
-
- return $this->model->find($id)->with_products;
- }
-
- /**
- * Method to attach
- * associations
- *
- * @return Mixed
- */
- public function attach($cart_id, $product_id, $quantity, $price) {
- return $this->model->findOrFail($cart_id)->with_products()->attach($cart_id, ['product_id' => $product_id, 'cart_id' => $cart_id, 'quantity' => $quantity, 'price' => $price]);
- }
-
- /**
- * Create Cart Item
- * Through Cart.
- *
- * @return Collection
- */
- public function createItem($cartId, $data) {
- $cart = $this->model->findOrFail($cartId);
-
- return $cart->items()->create($data);
- }
-
- /**
- * This will update the
- * quantity of product
- * for the customer,
- * in case of merge.
- *
- * @return Mixed
- */
- public function updateRelatedForMerge($cart_id, $product_id, $column, $value) {
- $cart_product = $this->model->findOrFail($cart_id);
-
- return $cart_product->with_products()->updateExistingPivot($product_id, array($column => $value));
- }
-
- /**
- * Update the quantity of
- * previously added item
- * in the cart.
- *
- * @return Mixed
- */
-
- // public function updateRelatedInItems($cartId, $cartItemId, $column, $value) {
-
- // return $this->updateItem($cartId)->syncWithoutDetaching($cartItemId, [$column => $value]);
- // }
-
/**
* Method to detach
* associations.
@@ -121,6 +66,14 @@ class CartRepository extends Repository
return $this->model->destroy($cart_id);
}
+ /**
+ * Used to get items
+ * for cart explicitly,
+ * use cart instance
+ * instead.
+ *
+ * @return Mixed
+ */
public function items($cartId) {
return $this->model->find($cartId)->items;
}
diff --git a/packages/Webkul/Core/src/Core.php b/packages/Webkul/Core/src/Core.php
index 4457259e3..5c2d895c0 100644
--- a/packages/Webkul/Core/src/Core.php
+++ b/packages/Webkul/Core/src/Core.php
@@ -140,7 +140,7 @@ class Core
$channel = $this->getCurrentChannel();
- $currencyCode = $channel->base_currency;
+ $currencyCode = $channel->base_currency->code;
return currency($price, $currencyCode);
}
diff --git a/packages/Webkul/Core/src/Http/Controllers/ChannelController.php b/packages/Webkul/Core/src/Http/Controllers/ChannelController.php
index 858b69202..5328fc3e9 100644
--- a/packages/Webkul/Core/src/Http/Controllers/ChannelController.php
+++ b/packages/Webkul/Core/src/Http/Controllers/ChannelController.php
@@ -80,7 +80,6 @@ class ChannelController extends Controller
'base_currency' => 'required'
]);
-
$this->channel->create(request()->all());
session()->flash('success', 'Channel created successfully.');
@@ -114,9 +113,9 @@ class ChannelController extends Controller
'code' => ['required', 'unique:channels,code,' . $id, new \Webkul\Core\Contracts\Validations\Code],
'name' => 'required',
'locales' => 'required|array|min:1',
- 'default_locale' => 'required',
+ 'default_locale_id' => 'required',
'currencies' => 'required|array|min:1',
- 'base_currency' => 'required'
+ 'base_currency_id' => 'required'
]);
$this->channel->update(request()->all(), $id);
diff --git a/packages/Webkul/Customer/src/Http/Controllers/SessionController.php b/packages/Webkul/Customer/src/Http/Controllers/SessionController.php
index afa24027a..564777325 100644
--- a/packages/Webkul/Customer/src/Http/Controllers/SessionController.php
+++ b/packages/Webkul/Customer/src/Http/Controllers/SessionController.php
@@ -5,11 +5,8 @@ namespace Webkul\Customer\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Event;
-
use Webkul\Customer\Models\Customer;
use Webkul\Customer\Http\Listeners\CustomerEventsHandler;
-
-use Cookie;
use Cart;
/**
* Session controller for the user customer
diff --git a/packages/Webkul/Shop/src/Http/routes.php b/packages/Webkul/Shop/src/Http/routes.php
index 6fb7371e1..68743d727 100644
--- a/packages/Webkul/Shop/src/Http/routes.php
+++ b/packages/Webkul/Shop/src/Http/routes.php
@@ -35,9 +35,9 @@ Route::group(['middleware' => ['web']], function () {
// //Routes for product cart
- Route::post('products/add/{id}', 'Webkul\Cart\Http\Controllers\CartController@add')->name('cart.add');
+ Route::post('checkout/cart/add/{id}', 'Webkul\Cart\Http\Controllers\CartController@add')->name('cart.add');
- Route::post('product/remove/{id}', 'Webkul\Cart\Http\Controllers\CartController@remove')->name('cart.remove');
+ Route::post('checkout/cart/remove/{id}', 'Webkul\Cart\Http\Controllers\CartController@remove')->name('cart.remove');
//Routes for product cart ends
diff --git a/packages/Webkul/Shop/src/Resources/views/store/cart/index.blade.php b/packages/Webkul/Shop/src/Resources/views/store/cart/index.blade.php
index 4230a8dac..172dc910d 100644
--- a/packages/Webkul/Shop/src/Resources/views/store/cart/index.blade.php
+++ b/packages/Webkul/Shop/src/Resources/views/store/cart/index.blade.php
@@ -6,45 +6,10 @@
-
{{-- {{ dd($products) }} --}}
- {{--
-
 }})
-
-
-
-
- Rainbow Creation Embroided
-
-
-
-
- $24.00
-
-
- $25.00
-
-
- 10% Off
-
-
-
-
- Color : Gray, Size : S, Sleeve type : Puffed Sleeves, Occasion : Birthday, Marriage Anniversary
-
-
-
-
Quantity
-
1
-
Remove
-
Move to Wishlist
-
-
-
-
--}}
@foreach($products as $product)