diff --git a/app/Http/Controllers/Web/CheckoutController.php b/app/Http/Controllers/Web/CheckoutController.php new file mode 100755 index 0000000..8681111 --- /dev/null +++ b/app/Http/Controllers/Web/CheckoutController.php @@ -0,0 +1,154 @@ +add('sdjk922', 'Product 2', 1, 19.95, ['size' => 'medium']); + public function addToCardGet($id, $quantity = 1, $product_slug = false) + { + + $product = Product::find($id); + if($product){ + $image = ""; + if($product->images->count()){ + $image = $product->images->first()->slug; + } + Yard::instance('shopping')->add($product->id, $product->getLang('name'), $quantity, $product->price, ['image' => $image, 'slug' => $product_slug, 'weight' => $product->weight]); + \Session()->flash('show-card-after-add', true); + } + + return back(); + + } + + public function addToCardPost($id) + { + + $product = Product::find($id); + + if($product){ + $image = ""; + if($product->images->count()){ + $image = $product->images->first()->slug; + } + $quantity = Input::get('quantity') ? Input::get('quantity') : 1; + Yard::instance('shopping')->add($product->id, $product->getLang('name'), $quantity, $product->price, ['image' => $image, 'slug' => $product->slug, 'weight' => $product->weight]); + \Session()->flash('show-card-after-add', true); + } + return back(); + + + } + + public function showCard(){ + + if(Input::get('selected_country')){ + Yard::instance('shopping')->setShippingCountryWithPrice(Input::get('selected_country')); + }else{ + // $ShippingCountry = ShippingCountry::where('country_id', 1)->first(); + // $selected_country = $ShippingCountry->id; + } + + $data = [ + 'user_shop' => Util::getUserShop(), + ]; + return view('web.templates.card', $data); + } + + public function updateCard(){ + + $data = Input::all(); + if(isset($data['quantity'])){ + foreach ($data['quantity'] as $rowId => $qty){ + Yard::instance('shopping')->update($rowId, $qty); + } + }else{ + $this->deleteCard(); + } + return back(); + } + + public function checkoutCard(){# + if(Input::get('selected_country')){ + Yard::instance('shopping')->setShippingCountryWithPrice(Input::get('selected_country')); + }else{ + // $ShippingCountry = ShippingCountry::where('country_id', 1)->first(); + // $selected_country = $ShippingCountry->id; + } + $data = [ + 'user_shop' => Util::getUserShop(), + ]; + return view('web.templates.checkout', $data); + } + + public function checkoutFinalCard(){ + + $rules = array( + 'billing.firstname'=>'required', + 'billing.lastname'=>'required', + 'billing.email'=>'required|email', + 'billing.address'=>'required', + 'billing.zipcode'=>'required', + 'billing.city' => 'required', + 'accepted_data_checkbox' => 'accepted', + ); + + if(!Input::get('shipping.same_as_billing')){ + $rules = array_merge($rules, [ + 'shipping.firstname'=>'required', + 'shipping.lastname'=>'required', + 'shipping.address'=>'required', + 'shipping.zipcode'=>'required', + 'shipping.city' => 'required', + ]); + } + $validator = Validator::make(Input::all(), $rules); + if ($validator->fails()) { + return back()->withErrors($validator)->withErrors($validator)->withInput(Input::all()); + } + + $data = [ + 'user_shop' => Util::getUserShop(), + ]; + return view('web.templates.checkout-final', $data); + } + + + + public function removeCard($rowId){ + + Yard::instance('shopping')->remove($rowId); + return back(); + } + + public function deleteCard(){ + + Yard::instance('shopping')->destroy(); + return back(); + } + + + + + +} \ No newline at end of file diff --git a/app/Http/Middleware/Checkout.php b/app/Http/Middleware/Checkout.php new file mode 100755 index 0000000..99c0004 --- /dev/null +++ b/app/Http/Middleware/Checkout.php @@ -0,0 +1,34 @@ +route('subdomain'))){ + $user_shop = UserShop::where('slug', $request->route('subdomain'))->where('active', 1)->first(); + $request->route()->forgetParameter('subdomain'); + Util::setPostRoute('user.'); + if($user_shop){ + \Session::put('user_shop', $user_shop); + return $next($request); + } + } + return redirect(config('app.url')); + + } +}