/home/techb158/immovalet.com/platform/plugins/ecommerce/src/Http/Controllers
NameSizeModeActions
Customers/-0755rm
Fronts/-0755rm
BrandController.php46840644editdlrm
DiscountController.php65100644editdlrm
EcommerceController.php83520644editdlrm
FlashSaleController.php62740644editdlrm
OrderController.php403980644editdlrm
ProductAttributeSetsController.php62270644editdlrm
ProductCategoryController.php89890644editdlrm
ProductCollectionController.php62370644editdlrm
ProductController.php96000644editdlrm
ProductLabelController.php51930644editdlrm
ProductTagController.php52570644editdlrm
ReportController.php72910644editdlrm
ReviewController.php26600644editdlrm
ShipmentController.php54410644editdlrm
ShippingMethodController.php97670644editdlrm
TaxController.php44490644editdlrm
Edit: /home/techb158/immovalet.com/platform/plugins/ecommerce/src/Http/Controllers/ProductController.php (9600B)
setTitle(trans('plugins/ecommerce::products.name')); Assets::addScripts(['bootstrap-editable']) ->addStyles(['bootstrap-editable']); return $dataTable->renderTable(); } /** * @param FormBuilder $formBuilder * @return string */ public function create(FormBuilder $formBuilder) { page_title()->setTitle(trans('plugins/ecommerce::products.create')); Assets::addStyles(['datetimepicker']) ->addScripts([ 'moment', 'datetimepicker', 'jquery-ui', 'input-mask', 'blockui', ]) ->addStylesDirectly(['vendor/core/plugins/ecommerce/css/ecommerce.css']) ->addScriptsDirectly([ 'vendor/core/plugins/ecommerce/libraries/bootstrap-confirmation/bootstrap-confirmation.min.js', 'vendor/core/plugins/ecommerce/js/edit-product.js', ]); return $formBuilder->create(ProductForm::class)->renderForm(); } /** * @param int $id * @param FormBuilder $formBuilder * @return string */ public function edit($id, FormBuilder $formBuilder) { $product = $this->productRepository->findOrFail($id); if ($product->is_variation) { abort(404); } page_title()->setTitle(trans('plugins/ecommerce::products.edit', ['name' => $product->name])); Assets::addStyles(['datetimepicker']) ->addScripts([ 'moment', 'datetimepicker', 'jquery-ui', 'input-mask', 'blockui', ]) ->addStylesDirectly(['vendor/core/plugins/ecommerce/css/ecommerce.css']) ->addScriptsDirectly([ 'vendor/core/plugins/ecommerce/libraries/bootstrap-confirmation/bootstrap-confirmation.min.js', 'vendor/core/plugins/ecommerce/js/edit-product.js', ]); return $formBuilder ->create(ProductForm::class, ['model' => $product]) ->renderForm(); } /** * @param ProductRequest $request * @param StoreProductService $service * @param BaseHttpResponse $response * @param ProductVariationInterface $variationRepository * @param ProductVariationItemInterface $productVariationItemRepository * @param GroupedProductInterface $groupedProductRepository * @param StoreAttributesOfProductService $storeAttributesOfProductService * @param StoreProductTagService $storeProductTagService * @return BaseHttpResponse * @throws Exception */ public function store( ProductRequest $request, StoreProductService $service, BaseHttpResponse $response, ProductVariationInterface $variationRepository, ProductVariationItemInterface $productVariationItemRepository, GroupedProductInterface $groupedProductRepository, StoreAttributesOfProductService $storeAttributesOfProductService, StoreProductTagService $storeProductTagService ) { $product = $this->productRepository->getModel(); $product = $service->execute($request, $product); $storeProductTagService->execute($request, $product); $addedAttributes = $request->input('added_attributes', []); if ($request->input('is_added_attributes') == 1 && $addedAttributes) { $storeAttributesOfProductService->execute($product, array_keys($addedAttributes)); $variation = $variationRepository->create([ 'configurable_product_id' => $product->id, ]); foreach ($addedAttributes as $attribute) { $productVariationItemRepository->createOrUpdate([ 'attribute_id' => $attribute, 'variation_id' => $variation->id, ]); } $variation = $variation->toArray(); $variation['variation_default_id'] = $variation['id']; $variation['sku'] = $product->sku; $variation['auto_generate_sku'] = true; $variation['images'] = $request->input('images', []); $this->postSaveAllVersions([$variation['id'] => $variation], $variationRepository, $product->id, $response); } if ($request->has('grouped_products')) { $groupedProductRepository->createGroupedProducts($product->id, array_map(function ($item) { return [ 'id' => $item, 'qty' => 1, ]; }, array_filter(explode(',', $request->input('grouped_products', ''))))); } return $response ->setPreviousUrl(route('products.index')) ->setNextUrl(route('products.edit', $product->id)) ->setMessage(trans('core/base::notices.create_success_message')); } /** * @param int $id * @param ProductRequest $request * @param StoreProductService $service * @param GroupedProductInterface $groupedProductRepository * @param BaseHttpResponse $response * @param ProductVariationInterface $variationRepository * @param ProductVariationItemInterface $productVariationItemRepository * @param StoreProductTagService $storeProductTagService * @return BaseHttpResponse|JsonResponse|RedirectResponse */ public function update( $id, ProductRequest $request, StoreProductService $service, GroupedProductInterface $groupedProductRepository, BaseHttpResponse $response, ProductVariationInterface $variationRepository, ProductVariationItemInterface $productVariationItemRepository, StoreProductTagService $storeProductTagService ) { $product = $this->productRepository->findOrFail($id); $product = $service->execute($request, $product); $storeProductTagService->execute($request, $product); $variationRepository ->getModel() ->where('configurable_product_id', $product->id) ->update(['is_default' => 0]); $defaultVariation = $variationRepository->findById($request->input('variation_default_id')); if ($defaultVariation) { $defaultVariation->is_default = true; $defaultVariation->save(); } $addedAttributes = $request->input('added_attributes', []); if ($request->input('is_added_attributes') == 1 && $addedAttributes) { $result = $variationRepository->getVariationByAttributesOrCreate($id, $addedAttributes); /** * @var Collection $variation */ $variation = $result['variation']; foreach ($addedAttributes as $attribute) { $productVariationItemRepository->createOrUpdate([ 'attribute_id' => $attribute, 'variation_id' => $variation->id, ]); } $variation = $variation->toArray(); $variation['variation_default_id'] = $variation['id']; $product->productAttributeSets()->sync(array_keys($addedAttributes)); $variation['sku'] = $product->sku; $variation['auto_generate_sku'] = true; $this->postSaveAllVersions([$variation['id'] => $variation], $variationRepository, $product->id, $response); } elseif ($product->variations()->count() === 0) { $product->productAttributeSets()->detach(); $product->productAttributes()->detach(); } if ($request->has('grouped_products')) { $groupedProductRepository->createGroupedProducts($product->id, array_map(function ($item) { return [ 'id' => $item, 'qty' => 1, ]; }, array_filter(explode(',', $request->input('grouped_products', ''))))); } $relatedProductIds = $product->variations()->pluck('product_id')->all(); $this->productRepository->update([['id', 'IN', $relatedProductIds]], ['status' => $product->status]); return $response ->setPreviousUrl(route('products.index')) ->setMessage(trans('core/base::notices.update_success_message')); } }