'addDefaultVariant', ]; } /** * Creates new default product's variant and sets it's to stock * marked as default and sets to it unit also marked as default */ public function addDefaultVariant() { /** * @var Stock $stock * @var ProductUnit $defaultUnit */ $defaultVariant = new ProductVariant(); $defaultVariant->product_id = $this->owner->product_id; /** * Gets default unit for variant */ $defaultUnit = ProductUnit::find() ->where([ 'is_default' => true, ])->one(); $defaultVariant->product_unit_id = $defaultUnit->product_unit_id; $defaultVariant->stock = 1; $defaultVariant->name = 'default'; $defaultVariant->sku = 'default'; $defaultVariant->save(); /** * Gets default stock */ $stock = Stock::find() ->where([ 'is_default' => true, ])->one(); $image = ProductImage::find()->where([ 'product_id' => $this->owner->product_id ])->one(); // $image->product_variant_id = $defaultVariant->product_variant_id; // $image->save(); /** * Add a new stock record */ $defaultStock = new ProductStock(); $defaultStock->product_id = $this->owner->product_id; $defaultStock->stock_id = $stock->stock_id; $defaultStock->quantity = $defaultVariant->stock; $defaultStock->product_variant_id = $defaultVariant->product_variant_id; $defaultStock->save(); } }