Backend Completed. Now Wiring To Shop Pending.

This commit is contained in:
devansh bawari 2021-06-17 17:53:28 +05:30
parent fa503c87d0
commit 3c60ecf4d5
2 changed files with 46 additions and 5 deletions

View File

@ -67,7 +67,7 @@ abstract class AbstractType
/**
* Product instance
*
* @var \Webkul\Product\Contracts\Product
* @var \Webkul\Product\Models\Product
*/
protected $product;

View File

@ -66,6 +66,46 @@ class Configurable extends AbstractType
*/
protected $productOptions = [];
/**
* Get default variant id.
*
* @return int
*/
public function getDefaultVariantId()
{
return $this->product->additional['default_variant_id'] ?? null;
}
/**
* Set default variant id.
*
* @param int $defaultVariantId
* @return bool
*/
public function setDefaultVariantId($defaultVariantId)
{
$this->product->additional = array_merge($this->product->additional ?? [], [
'default_variant_id' => $defaultVariantId
]);
return $this->product->save();
}
/**
* Update default variant id if present in request.
*
* @return void
*/
public function updateDefaultVariantId()
{
$defaultVariantId = request()->get('default_variant_id');
if ($defaultVariantId) {
$this->setDefaultVariantId($defaultVariantId);
}
}
/**
* Create configurable product.
*
@ -106,6 +146,9 @@ class Configurable extends AbstractType
public function update(array $data, $id, $attribute = "id")
{
$product = parent::update($data, $id, $attribute);
$this->updateDefaultVariantId();
$route = request()->route() ? request()->route()->getName() : '';
if ($route != 'admin.catalog.products.massupdate') {
@ -670,8 +713,7 @@ class Configurable extends AbstractType
/**
* Validate cart item product price.
*
* @param \Webkul\Product\Type\CartItem $item
*
* @param \Webkul\Product\Type\CartItem $item
* @return \Webkul\Product\Datatypes\CartItemValidationResult
*/
public function validateCartItem(CartItemModel $item): CartItemValidationResult
@ -704,8 +746,7 @@ class Configurable extends AbstractType
/**
* Get product options.
*
* @param string $product
*
* @param string $product
* @return array
*/
public function getProductOptions($product = "")