示例#1
0
 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");
 }