public function duplicate_prod() { $prodId = Input::get('id'); //save products basic fields $prods = Product::where('id', '=', $prodId)->get()->toArray(); $cats = []; $cats_prod = Product::find($prods[0]['id'])->categories()->get(); // $catalogImages = []; $catalogImages = Product::find($prods[0]['id'])->catalogimgs()->get(); // dd($catalogImages); unset($prods[0]['id'], $prods[0]['created_at'], $prods[0]['updated_at']); $prods[0]['product'] = "duplicate-" . $prods[0]['product']; $prods[0]['url_key'] = "duplicate-" . $prods[0]['url_key']; $saveDupProd = Product::create($prods[0]); //sync categories $saveDupProd->categories()->sync($cats_prod); //sync images foreach ($catalogImages as $catImg) { $saveImg = new CatalogImage(); $saveImg->filename = $catImg->filename; $saveImg->alt_text = $catImg->alt_text; $saveImg->image_mode = $catImg->image_mode; $saveImg->sort_order = $catImg->sort_order; $saveImg->catalog_id = $saveDupProd->id; $saveImg->save(); } // $saveDupProd->catalogimgs()->sync($catalogImages); //varients prods of products $chkProdVar = Product::where('parent_prod_id', '=', $prodId)->get()->toArray(); $prods_varients = []; if (!empty($chkProdVar)) { foreach ($chkProdVar as $prodVar) { unset($prodVar['id'], $prodVar['created_at'], $prodVar['updated_at']); $prodVar['product'] = "duplicate-" . $prodVar['product']; $prodVar['parent_prod_id'] = $saveDupProd->id; array_push($prods_varients, $prodVar); } } foreach ($prods_varients as $prod_var) { $saveDupProdVar = Product::create($prod_var); $attributes = AttributeSet::find($saveDupProdVar->attributeset['id'])->attributes; $saveDupProdVar->attributes()->sync($attributes); // DB::update(DB::raw("update has_options set attr_val = '$opt' where attr_id = $op and prod_id = " . $newConfigProduct->id)); } Session::flash("successDupProd", "Duplicate Product created successfully"); return redirect()->route("admin.products.view"); }
public function saveImg() { // dd(Product::find(Input::get('prod_id'))->catalogimgs()->where("image_type", "=", 1)->get()); // dd(Input::get('id_img')); foreach (Input::file('images') as $key => $value) { if ($value != null) { $destinationPath = public_path() . '/admin/uploads/catalog/products/'; $fileName = "prod-" . $key . date("YmdHis") . "." . $value->getClientOriginalExtension(); $upload_success = $value->move($destinationPath, $fileName); } else { $fileName = null; } $saveImgs = CatalogImage::findOrNew(Input::get('id_img')[$key]); $saveImgs->catalog_id = Input::get('prod_id'); $saveImgs->filename = is_null($fileName) ? $saveImgs->filename : $fileName; $saveImgs->image_type = 1; $saveImgs->alt_text = Input::get('alt_text')[$key]; $saveImgs->sort_order = Input::get('sort_order')[$key]; $saveImgs->save(); } $prod = Product::find(Input::get('prod_id')); $attrs = AttributeSet::find($prod->attributeset['id'])->attributes->toArray(); if (!empty(Input::get('return_url'))) { $nextView = redirect()->to(Input::get('return_url')); } else { // if ($prod->prod_type == 2) { $nextView = redirect()->route("admin.products.updateComboProds", ['id' => $prod->id]); } elseif ($prod->prod_type == 3) { $nextView = redirect()->route("admin.products.ConfigProdAttrs", ['id' => $prod->id]); } else { $nextView = redirect()->route("admin.products.updateUpsellRelatedProds", ['id' => $prod->id]); } } return $nextView; }