shell bypass 403

GrazzMean Shell

Uname: Linux peekpos.com 6.8.0-1060-aws #63~22.04.1-Ubuntu SMP Tue Jun 30 02:32:53 UTC 2026 x86_64
Software: Apache
PHP version: 8.3.25 [ PHP INFO ] PHP os: Linux
Server Ip: 47.130.192.226
Your Ip: 10.1.31.86
User: www (1001) | Group: www (1001)
Safe Mode: OFF
Disable Function:
passthru,putenv,chroot,chgrp,chown,shell_exec,popen,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv

name : ItemController.php
<?php

namespace App\Http\Controllers\admin;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Helpers\helper;
use App\Models\Category;
use App\Models\Subcategory;
use App\Models\Item;
use App\Models\Variation;
use App\Models\Banner;
use App\Models\Ratting;
use App\Models\ItemImages;
use App\Models\GlobalExtras;
use App\Models\Extra;
use App\Models\Cart;
use App\Models\Tax;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Str;

class ItemController extends Controller
{
    public function index(Request $request)
    {
        $getitem = Item::with('category_info', 'subcategory_info', 'variation', 'item_image')->select('item.*')->where('item.is_deleted', '2');
        if ($request->has('search') && $request->search != "") {
            $search = $request->search;
            $getitem = $getitem->where(function ($query) use ($search) {
                $query->where('item.item_name', 'like', '%' . $search . '%');
            });
        }
        if ($request->has('option') && $request->option != "") {
            $getitem = $getitem->where('item.item_type', $request->option == "veg" ? 1 : 2);
        }
        $getitem = $getitem->orderBy('item.reorder_id')->get();
        return view('admin.item.item', compact('getitem'));
    }
    public function additem()
    {
        $getcategory = Category::where('is_available', '1')->where('is_deleted', '2')->orderBy('reorder_id')->get();

        $gettaxlist = Tax::where('is_deleted', 2)->where('is_available', 1)->orderBy('reorder_id')->get();
        $globalextras = GlobalExtras::where('is_available', 1)->orderBy('reorder_id')->get();
        return view('admin.item.additem', compact('getcategory', 'gettaxlist', 'globalextras'));
    }
    public function edititem($id)
    {

        $getitem = Item::with('category_info', 'subcategory_info', 'item_image', 'item_images', 'extras')->where('id', $id)->first();
        $globalextras = GlobalExtras::where('is_available', 1)->orderBy('reorder_id')->get();
        $getitemimages = ItemImages::where('item_id', $id)->orderBy('reorder_id')->get();
        $getsubcategory = Subcategory::where('cat_id', $getitem->cat_id)->where('is_available', '1')->where('is_deleted', '2')->orderBy('reorder_id')->get();

        $gettaxlist = Tax::where('is_deleted', 2)->where('is_available', 1)->orderBy('reorder_id')->get();
        $productVariantArrays = [];
        if (!empty($getitem)) {
            $getcategory = Category::where('is_available', '1')->where('is_deleted', '2')->get();
            $product_variant_names = [];
            $variant_options = [];
            if ($getitem->has_variation == '1') {
                $productVariants = Variation::where('item_id', $getitem->id)->get();

                if (!empty(json_decode($getitem->variants_json, true))) {

                    $variant_options = array_column(json_decode($getitem->variants_json), 'variant_name');
                    $product_variant_names = $variant_options;
                }

                foreach ($productVariants as $key => $productVariant) {
                    $productVariantArrays[$key]['product_variants'] = $productVariant->toArray();
                }
            }
            return view('admin.item.edititem', compact('getitem', 'getcategory', 'getsubcategory', 'getitemimages', 'productVariantArrays', 'product_variant_names', 'variant_options', 'gettaxlist', 'globalextras'));
        }
    }
    public function store(Request $request)
    {
        $validator = Validator::make($request->all(), [
            'image.*' => 'image|max:' . helper::imagesize() . '|' . helper::imageext(),
        ], [
            'image.max' => trans('messages.image_size_message'),
        ]);
        if ($validator->fails()) {
            return redirect()->back()->with('error', trans('messages.image_size_message') . ' ' . helper::appdata('')->image_size . ' ' . 'MB');
        }
        $item = new Item;
        $item->cat_id = $request->cat_id;
        $item->subcat_id = $request->subcat_id == "" ? "" : $request->subcat_id;
        $item->preparation_time = "";

        $item->item_name = $request->item_name;
        $item->slug = $this->getitemslug($request->item_name, '');
        $item->item_type = $request->item_type;
        $item->has_variation = $request->has_variants;
        $item->sku = $request->sku;
        $item->video_url = $request->video_url;
        if ($request->has_variants == 1) {
            $variants_json = json_decode($request->hiddenVariantOptions, true);
            $variant_options = array_column($variants_json, 'variant_options');
            $possibilities = Item::possibleVariants($variant_options);

            foreach ($possibilities as $key => $possibility) {
                $price = $request->verians[$key]['price'];
                $qty = $request->verians[$key]['qty'];
                $original_price = $request->verians[$key]['original_price'];
                break;
            }
        } else {
            $price = $request->price;
            $original_price = $request->original_price;
            $qty = $request->qty;
        }
        if ($request->has_variants == 1) {
            $item->variants_json = $request->hiddenVariantOptions;
        } else {
            $item->variants_json = "";
        }
        $item->stock_management = $request->has_stock;
        $item->price = $price;
        $item->original_price = $original_price;

        if ($request->has_stock == 1) {
            $item->qty = $qty;
            $item->min_order = $request->min_order;
            $item->max_order = $request->max_order;
            $item->low_qty = $request->low_qty;
        } else {
            $item->qty = "";
            $item->low_qty = "";
            $item->min_order = "";
            $item->max_order = "";
        }
        $item->item_description = $request->description;
        $item->tax =  $request->tax != null ? implode('|', $request->tax) : '';
        if ($item->save()) {
            if ($request->has_variants == 1) {
                $item->variants_json = json_decode($item->variants_json, true);
                $variant_options = array_column($item->variants_json, 'variant_options');
                $possibilities = Item::possibleVariants($variant_options);
                foreach ($possibilities as $key => $possibility) {
                    $VariantOption = new Variation();
                    $VariantOption->name = $possibility;
                    $VariantOption->item_id = $item->id;
                    $VariantOption->price =  array_key_exists('price', $request->verians[$key]) ? $request->verians[$key]['price'] : '';
                    $VariantOption->qty = array_key_exists('qty', $request->verians[$key]) ? $request->verians[$key]['qty'] : '';
                    $VariantOption->original_price = array_key_exists('original_price', $request->verians[$key]) ? $request->verians[$key]['original_price'] : '';
                    $VariantOption->min_order =  array_key_exists('min_order', $request->verians[$key]) ? $request->verians[$key]['min_order'] : '';
                    $VariantOption->max_order =  array_key_exists('max_order', $request->verians[$key]) ?  $request->verians[$key]['max_order'] : '';
                    $VariantOption->low_qty =  array_key_exists('low_qty', $request->verians[$key]) ? $request->verians[$key]['low_qty'] : '';
                    $VariantOption->stock_management = array_key_exists('stock_management', $request->verians[$key]) ? $request->verians[$key]['stock_management'] : 2;
                    $VariantOption->is_available = array_key_exists('is_available', $request->verians[$key]) ? 1 : 2;
                    $VariantOption->save();
                }
            }
            // $img->move(env('ASSETSPATHURL').'admin-assets/images/item', $image);
            foreach ($request->file('image') as $img) {
                $itemimage = new ItemImages;
                $image = 'item-' . uniqid() . '.' . $img->getClientOriginalExtension();
                $img->move(env('ASSETSPATHURL') . 'admin-assets/images/item', $image);
                $itemimage->item_id = $item->id;
                $itemimage->image = $image;
                $itemimage->save();
            }
            if ($request->extras_name != null && $request->extras_name != "") {
                foreach ($request->extras_name as $key => $no) {
                    if (@$no != "" && @$request->extras_price[$key] != "") {
                        $extras = new Extra();
                        $extras->item_id = $item->id;
                        $extras->name = $no;
                        $extras->price = $request->extras_price[$key];
                        $extras->save();
                    }
                }
            }
            return redirect('admin/item')->with('success', trans('messages.success'));
        } else {
            return redirect()->back()->with('error', trans('messages.wrong'));
        }
    }
    public function storeimages(Request $request)
    {
        $error_array = array();
        $success_output = '';
        $validator = Validator::make($request->all(), [
            'file.*' => 'image|max:' . helper::imagesize() . '|' . helper::imageext(),
        ], [
            'file.max' => trans('messages.image_size_message'),
        ]);
        if ($validator->fails()) {
            return redirect()->back()->with('error', trans('messages.image_size_message') . ' ' . helper::appdata('')->image_size . ' ' . 'MB');
        } else {
            if ($request->hasFile('file')) {
                $files = $request->file('file');
                foreach ($files as $file) {
                    $itemimage = new ItemImages;
                    $image = 'item-' . uniqid() . '.' . $file->getClientOriginalExtension();
                    $file->move(env('ASSETSPATHURL') . 'admin-assets/images/item', $image);
                    $itemimage->item_id = $request->itemid;
                    $itemimage->image = $image;
                    $itemimage->save();
                }
            }
            $success_output = trans('messages.success');
        }
        $output = array('error'     =>  $error_array, 'success'   =>  $success_output);
        echo json_encode($output);
    }
    public function showimage(Request $request)
    {
        $getitem = ItemImages::where('id', $request->id)->first();
        if ($getitem->image) {
            $getitem->img = url(env('ASSETSPATHURL') . 'admin-assets/images/item/' . $getitem->image);
        }
        return response()->json(['ResponseCode' => 1, 'ResponseText' => trans('messages.success'), 'ResponseData' => $getitem], 200);
    }
    public function update(Request $request)
    {
        if ($request->has_variants == 1) {
            if ($request->verians == null && $request->variants == null) {
                return redirect('admin/products/edit-' . $request->slug)->with('error', trans('messages.variation_required'));
            }
        }
        if ($request->has_variants == 1) {
            $variants_json = json_decode($request->hiddenVariantOptions, true);
            $variant_options = array_column($variants_json, 'variant_options');
            $newpossibilities = Item::possibleVariants($variant_options);
            if ($request->verians == null) {
                foreach ($request->variants as $key => $possibility) {
                    $price = $request->variants[$key]['price'];
                    $qty = $request->variants[$key]['qty'];
                    $original_price = $request->variants[$key]['original_price'];
                    break;
                }
            } else {
                foreach ($newpossibilities as $key => $possibility) {
                    $price = $request->verians[$key]['price'];
                    $qty = $request->verians[$key]['qty'];
                    $original_price = $request->verians[$key]['original_price'];
                    break;
                }
            }
        } else {
            $price = $request->price;
            $original_price = $request->original_price;
            $qty = $request->qty;
        }

        $deletefromcart = Cart::where('item_id', $request->id)->delete();
        $item = Item::find($request->id);
        $item->cat_id = $request->cat_id;
        $item->subcat_id = $request->subcat_id == "" ? "" : $request->subcat_id;
        $item->preparation_time = "";

        $item->item_type = $request->item_type;
        $item->has_variation = $request->has_variants;
        $item->price = $price;
        $item->original_price = $original_price;
        $item->qty = $qty;
        $item->item_name = $request->item_name;
        $item->slug = $this->getitemslug($request->item_name, $request->id);;
        $item->item_description = $request->description;
        $item->tax =  $request->tax != null ? implode('|', $request->tax) : '';
        $item->sku = $request->sku;
        $item->video_url = $request->video_url;
        if ($request->has_variants == '1') {
            $item['has_variation'] = '1';
            $item['variants_json'] = !empty($request->hiddenVariantOptions) ? $request->hiddenVariantOptions : $item->variants_json;

            if (!empty($request->verians) && count($request->verians) > 0) {

                foreach ($request->verians as $key => $possibility) {
                    $possibilities = Variation::where('id', $key)->where('item_id', $item->id)->first();
                    if (is_null($possibilities)) {
                        $VariantOptionNew = new Variation();
                        $VariantOptionNew->item_id = $item->id;
                        $VariantOptionNew->name = $possibility['name'];
                        $VariantOptionNew->price = $possibility['price'];
                        $VariantOptionNew->original_price = $possibility['original_price'];
                        $VariantOptionNew->qty = $possibility['qty'] ?? $possibility['qty'];
                        $VariantOptionNew->min_order = $possibility['min_order'] ?? $possibility['min_order'];
                        $VariantOptionNew->max_order = $possibility['max_order'] ?? $possibility['max_order'];
                        $VariantOptionNew->low_qty =  $possibility['low_qty'];
                        $VariantOptionNew->stock_management = array_key_exists('stock_management', $possibility) ? $possibility['stock_management'] : 2;
                        $VariantOptionNew->is_available = array_key_exists('is_available',  $possibility) ?  $possibility['is_available'] : 2;
                        $VariantOptionNew->save();
                    } else {

                        $possibilities->price = $possibility['price'];
                        $possibilities->original_price = $possibility['original_price'];
                        $possibilities->qty = $possibility['qty'] ?? $possibility['qty'];
                        $possibilities->min_order = $possibility['min_order'] ?? $possibility['min_order'];
                        $possibilities->max_order = $possibility['max_order'] ?? $possibility['max_order'];
                        $possibilities->low_qty = $possibility['low_qty'] ?? $possibility['low_qty'];
                        $possibilities->stock_management = array_key_exists('stock_management', $possibility) ? $possibility['stock_management'] : 2;
                        $possibilities->is_available = array_key_exists('is_available',  $possibility) ?  $possibility['is_available'] : 2;
                        $possibilities->save();
                    }
                }
            } else if (!empty($request->variants) && count($request->variants) > 0) {

                foreach ($request->variants as $key => $possibility) {
                    $possibilities = Variation::find($key);
                    $possibilities->price = $possibility['price'];
                    $possibilities->original_price = $possibility['original_price'];
                    $possibilities->qty = $possibility['qty'] ?? $possibility['qty'];
                    $possibilities->min_order = $possibility['min_order'] ?? $possibility['min_order'];
                    $possibilities->max_order = $possibility['max_order'] ?? $possibility['max_order'];
                    $possibilities->low_qty = $possibility['low_qty'] ?? $possibility['low_qty'];
                    $possibilities->stock_management = array_key_exists('stock_management', $possibility) ? $possibility['stock_management'] : 2;
                    $possibilities->is_available = array_key_exists('is_available',  $possibility) ?  $possibility['is_available'] : 2;
                    if (!array_key_exists('is_available',  $possibility)) {

                        $carts = Cart::where('variation_id', $possibilities->id)->get();
                        foreach ($carts as $cart) {
                            $cart->delete();
                        }
                    }
                    $possibilities->save();
                }
            }
        } else {
            $item['has_variation'] = '2';
        }
        $item->stock_management = $request->has_stock;
        if ($request->has_stock == 1) {
            $item->qty = $qty;
            $item->low_qty = $request->low_qty;
            $item->min_order = $request->min_order;
            $item->max_order = $request->max_order;
        } else {
            $item->qty = "";
            $item->low_qty = "";
            $item->min_order = "";
            $item->max_order = "";
        }

        if ($request->has_variants == 2) {
            Variation::where('item_id', $request->id)->delete();
            $item->variants_json = '';
        }
        $carts = Cart::where('item_id', $item->id)->delete();

        $item->save();
        if ($request->has_variants == 1) {
            if (!empty($request->variants)) {

                foreach ($request->variants as $key => $variant) {
                    $newVal = '';

                    foreach (array_values($variant['variants']) as $k => $v) {
                        if (!empty($newVal)) {
                            $newVal .= '|' . $v[0];
                        } else {
                            $newVal .= $v[0];
                        }
                    }
                    $VariantOption = Variation::find($key);
                    $VariantOption->name = $newVal;
                    $VariantOption->price = $variant['price'];
                    $VariantOption->original_price = $variant['original_price'];
                    $VariantOption->qty = $variant['qty'] ?? $variant['qty'];
                    $VariantOption->min_order = $variant['min_order'] ?? $variant['min_order'];
                    $VariantOption->max_order = $variant['max_order'] ?? $variant['max_order'];
                    $VariantOption->low_qty = $variant['low_qty'] ?? $variant['low_qty'];
                    $VariantOption->stock_management = array_key_exists('stock_management',  $variant) ?  $variant['stock_management'] : 2;
                    $VariantOption->is_available = array_key_exists('is_available',  $variant) ?  $variant['is_available'] : 2;
                    $VariantOption->save();
                }
            }
        }
        $extras_id = $request->extras_id;
        if ($request->has_extras == 1) {
            if ($request->extras_name != null && $request->extras_name != "") {
                foreach ($request->extras_name as $key => $no) {
                    if (@$no != "" && @$request->extras_price[$key] != "") {
                        if (@$extras_id[$key] == "") {
                            $extras = new Extra();
                            $extras->item_id = $item->id;
                            $extras->name = $no;
                            $extras->price = $request->extras_price[$key];
                            $extras->save();
                        } else if (@$extras_id[$key] != "") {
                            Extra::where('id', @$extras_id[$key])->update(['name' => $request->extras_name[$key], 'price' => $request->extras_price[$key]]);
                        }
                    }
                }
            }
        } else {
            Extra::where('item_id', $item->id)->delete();
        }
        if ($item) {
            return redirect('admin/item')->with('success', trans('messages.success'));
        } else {
            return redirect()->back()->with('error', trans('messages.wrong'));
        }
    }
    public function updateimage(Request $request)
    {
        $validation = Validator::make($request->all(), ['image' => 'image']);
        $error_array = array();
        $success_output = '';
        if ($validation->fails()) {
            foreach ($validation->messages()->getMessages() as $field_name => $messages) {
                $error_array[] = $messages;
            }
        } else {
            $validator = Validator::make($request->all(), [
                'image' => 'image|max:' . helper::imagesize() . '|' . helper::imageext(),
            ], [
                'image.max' => trans('messages.image_size_message'),
            ]);
            if ($validator->fails()) {
                return redirect()->back()->with('error', trans('messages.image_size_message') . ' ' . helper::appdata('')->image_size . ' ' . 'MB');
            }
            $itemimage = ItemImages::find($request->id);
            if ($request->hasFile('image')) {
                $image = 'item-' . uniqid() . '.' . $request->image->getClientOriginalExtension();
                $request->image->move(env('ASSETSPATHURL') . 'admin-assets/images/item', $image);
                $itemimage->image = $image;
            }
            $itemimage->save();
            $success_output = trans('messages.success');
        }
        $output = array('error' => $error_array, 'success' => $success_output);
        echo json_encode($output);
    }
    public function getitemslug($item_name, $id)
    {
        $slug = Str::slug($item_name, '-');
        $checkslug = Item::where('slug', $slug);
        if ($id != "") {
            $checkslug = $checkslug->where('id', '!=', $id);
        }
        $checkslug = $checkslug->first();
        if (!empty($checkslug)) {
            $lastid = Item::select('id')->orderByDesc('id')->first();
            $slug .= '-' . $lastid->id;
        }
        return $slug;
    }

    public function reorder_item(Request $request)
    {
        $getitem = Item::all();
        foreach ($getitem as $item) {
            foreach ($request->order as $order) {
                $it = Item::where('id', $order['id'])->first();
                $it->reorder_id = $order['position'];
                $it->save();
            }
        }
        return response()->json(['status' => 1, 'msg' => 'Update Successfully!!'], 200);
    }

    public function status(Request $request)
    {
        $UpdateDetails = Item::where('id', $request->id)->update(['item_status' => $request->status]);
        if ($UpdateDetails) {
            $deletefromcart = Cart::where('item_id', $request->id)->delete();
            return 1;
        } else {
            return 0;
        }
    }
    public function delete(Request $request)
    {

        try {
            $checkproduct = Item::where('id', $request->id)->first();
            $checkvariation = Variation::where('item_id', $checkproduct->id)->delete();
            $checkextras = Extra::where('item_id', $checkproduct->id)->delete();
            $productimage = ItemImages::where('item_id', $checkproduct->id)->get();
            $getbanner = Banner::where('item_id', $checkproduct->id)->get();
            foreach ($getbanner as $banner) {
                $banner->type = "";
                $banner->product_id = "";
                $banner->update();
            }
            foreach ($productimage as $image) {
                if ($image->is_imported == 2) {
                    if ($image->image != "" && $image->image != null && file_exists(storage_path('app/public/item/' . $image->image))) {
                        unlink(storage_path('app/public/item/' . $image->image));
                    }
                }
                $image->delete();
            }
            Cart::where('item_id', $checkproduct->id)->delete();
            $checkproduct->delete();
            return 1;
        } catch (\Throwable $th) {

            return 0;
        }
    }
    public function deletevariation(Request $request)
    {
        $checkvariationcount = Variation::where('item_id', $request->item_id)->count();
        if ($checkvariationcount > 1) {
            $UpdateDetails = Variation::where('id', $request->id)->delete();
            if ($UpdateDetails) {
                Cart::where('variation_id', $request->id)->delete();
                return 1;
            } else {
                return 0;
            }
        } else {
            return 2;
        }
    }
    public function destroyimage(Request $request)
    {
        $getitemimages = ItemImages::where('item_id', $request->item_id)->count();
        if ($getitemimages > 1) {
            $itemimage = ItemImages::where('id', $request->id)->delete();
            if ($itemimage) {
                return 1;
            } else {
                return 0;
            }
        } else {
            return 2;
        }
    }
    public function featured(Request $request)
    {
        $updatedata = Item::where('id', $request->id)->update(['is_featured' => $request->status]);
        if ($updatedata) {
            return 1;
        } else {
            return 0;
        }
    }
    public function subcategories(Request $request)
    {
        $data = Subcategory::where('cat_id', $request->id)->orderBy('reorder_id')->where('is_available', 1)->where('is_deleted', 2)->get();
        return response()->json(['status' => 1, 'message' => trans('messages.success'), 'data' => $data], 200);
    }


    public function getProductVariantsPossibilities(Request $request, $item_id = 0)
    {
        $variant_edit = $request->variant_edit;

        if (!empty($variant_edit) && $variant_edit == 'edit') {
            $variant_option123 = json_decode($request->hiddenVariantOptions, true);
            foreach ($variant_option123 as $key => $value) {
                $new_key = array_search($value['variant_name'], array_column($request->variant_edt, 'variant_name'));
                if (!empty($request->variant_edt[$new_key]['variant_options'])) {
                    $new_val = explode('|', $request->variant_edt[$new_key]['variant_options']);
                    $variant_option123[$key]['variant_options'] = array_merge($variant_option123[$key]['variant_options'], $new_val);
                }
            }
            $request->hiddenVariantOptions = json_encode($variant_option123);
        }

        $variant_name = $request->variant_name;
        $variant_options = $request->variant_options;
        $hiddenVariantOptions = $request->hiddenVariantOptions;
        $hiddenVariantOptions = json_decode($hiddenVariantOptions, true);
        $result = [
            'hiddenVariantOptions' => json_encode($hiddenVariantOptions),
            'message' => trans('messages.variant_attribute_exist'),
        ];
        if (!empty($hiddenVariantOptions)) {
            foreach ($hiddenVariantOptions as $key => $value) {
                if (in_array($request->variant_name, $hiddenVariantOptions[$key])) {
                    return response()->json($result);
                }
            }
        }
        $variants = [
            [
                'variant_name' => $variant_name,
                'variant_options' => explode('|', $variant_options),
            ],
        ];
        if (empty($variant_edit) && $variant_edit != 'edit') {
            $hiddenVariantOptions = array_merge($hiddenVariantOptions, $variants);
        }
        $hiddenVariantOptions = array_map("unserialize", array_unique(array_map("serialize", $hiddenVariantOptions)));
        $optionArray = $variantArray = [];
        foreach ($hiddenVariantOptions as $variant) {
            $variantArray[] = $variant['variant_name'];
            $optionArray[] = $variant['variant_options'];
        }
        $possibilities = Item::possibleVariants($optionArray);
        $variantArray = array_unique($variantArray);
        if (!empty($variant_edit) && $variant_edit == 'edit') {
            $varitantHTML = view('admin.item.variants.edit_list', compact('possibilities', 'variantArray', 'item_id'))->render();
        } else {
            $varitantHTML = view('admin.item.variants.list', compact('possibilities', 'variantArray'))->render();
        }
        $result = [
            'status' => false,
            'hiddenVariantOptions' => json_encode($hiddenVariantOptions),
            'varitantHTML' => $varitantHTML,
        ];
        return response()->json($result);
    }

    public function productVariantsEdit(Request $request, $item_id)
    {

        $product = Item::where('id', $item_id)->first();
        $productVariantOption = json_decode($product->variants_json, true);
        if (empty($productVariantOption)) {
            return view('admin.item.variants.create')->render();
        } else {
            return view('admin.item.variants.edit', compact('product', 'productVariantOption', 'item_id'))->render();
        }
    }

    public function delete_review(Request $request)
    {
        $ratting = Ratting::where('id', $request->id)->first();
        $ratting->delete();
        return redirect()->back()->with('success', trans('messages.success'));
    }
    public function reorder_image(Request $request)
    {


        $getproducts = ItemImages::where('item_id', $request->item_id)->get();
        $arr = explode('|', $request->input('ids'));
        foreach ($arr as $sortOrder => $id) {
            if ($id != "" && $id != null) {
                $menu = ItemImages::find($id);
                $menu->reorder_id = $sortOrder;
                $menu->save();
            }
        }

        return response()->json(['status' => 1, 'msg' => trans('messages.success')], 200);
    }
    public function delete_extras(Request $request)
    {
        $deletedata = Extra::where('id', $request->id)->delete();
        if ($deletedata) {
            return redirect()->back()->with('success', trans('messages.success'));
        } else {
            return redirect()->back()->with('error', trans('messages.wrong'));
        }
    }
}
© 2026 GrazzMean