public function createVariant($name = '', $description = '', $categoryId = null, $metricId = null)
{
$variant = $this->newVariant($name);
$this->dbStartTransaction();
try {
if (!empty($description)) {
$variant->description = $description;
}
if ($categoryId !== null) {
$variant->category_id = $categoryId;
}
if ($metricId !== null) {
$variant->metric_id = $metricId;
}
if ($variant->save()) {
$this->dbCommitTransaction();
$this->fireEvent('inventory.variant.created', ['item' => $this]);
return $variant;
}
} catch (\Exception $e) {
$this->dbRollbackTransaction();
}
return false;
}