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; } $cartItem = Yard::instance('shopping') ->add($product->id, $product->getLang('name'), $quantity, $product->getPriceWith(Yard::instance('shopping')->getUserTaxFree(), false, Yard::instance('shopping')->getUserCountry()), false, false, ['image' => $image, 'slug' => $product->slug, 'weight' => $product->weight, 'points' => $product->points, 'no_commission' => $product->no_commission, 'no_free_shipping' => $product->no_free_shipping]); if(Yard::instance('shopping')->getUserTaxFree()){ Yard::setTax($cartItem->rowId, 0); }else{ Yard::setTax($cartItem->rowId, $product->getTaxWith(Yard::instance('shopping')->getUserCountry())); } Yard::instance('shopping')->reCalculateShippingPrice(); \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 = Request::get('quantity') ? Request::get('quantity') : 1; $cartItem = Yard::instance('shopping') ->add($product->id, $product->getLang('name'), $quantity, $product->getPriceWith(Yard::instance('shopping')->getUserTaxFree(), false, Yard::instance('shopping')->getUserCountry()), false, false, ['image' => $image, 'slug' => $product->slug, 'weight' => $product->weight, 'points' => $product->points, 'no_commission' => $product->no_commission, 'no_free_shipping' => $product->no_free_shipping]); if(Yard::instance('shopping')->getUserTaxFree()){ Yard::setTax($cartItem->rowId, 0); }else{ Yard::setTax($cartItem->rowId, $product->getTaxWith(Yard::instance('shopping')->getUserCountry())); } Yard::instance('shopping')->reCalculateShippingPrice(); \Session()->flash('show-card-after-add', true); } return back(); } public function showCard(){ if(Request::get('selected_country')){ Yard::instance('shopping')->setShippingCountryWithPrice(Request::get('selected_country')); }else{ Yard::instance('shopping')->reCalculateShippingPrice(); } $data = [ 'user_shop' => Util::getUserShop(), 'mylangs' => Shop::getLangChange(), ]; return view('web.templates.card', $data); } public function updateCard(){ $data = Request::all(); if(isset($data['quantity'])){ foreach ($data['quantity'] as $rowId => $qty){ Yard::instance('shopping')->update($rowId, $qty); Yard::instance('shopping')->reCalculateShippingPrice(); } }else{ $this->deleteCard(); } return back(); } public function checkoutServer(){ $user_shop = Util::getUserShop(); do { $identifier = Util::getToken(); } while( ShoppingInstance::where('identifier', $identifier)->count() ); $data = []; $data['is_from'] = 'shopping'; $data['user_price_infos'] = Yard::instance('shopping')->getUserPriceInfos(); ShoppingInstance::create([ 'identifier' => $identifier, 'user_shop_id' => $user_shop->id, 'payment' => 1, //Customer Shop Payment 'subdomain' => url('/'), 'country_id' => Yard::instance('shopping')->getShippingCountryId(), 'language' => \App::getLocale(), 'shopping_data' => $data, 'back' => url()->previous(), ]); Yard::instance('shopping')->store($identifier); //add to DB $path = route('checkout.checkout_card', ['identifier'=>$identifier]); if(strpos($path, 'https') === false){ $path = str_replace('http', 'https', $path); } return redirect()->secure($path); } public function backToShop(){ $this->deleteCard(); return redirect(url('/')); } public function removeCard($rowId){ Yard::instance('shopping')->remove($rowId); return back(); } public function deleteCard(){ $setCode = Shop::getUserShopLang(); $mylangs = Shop::getLangChange(); foreach($mylangs as $code => $country){ if(strtolower($setCode) === strtolower($code)){ Shop::initUserShopLang($country); return back(); } } } }