public function addOption(ValueInterface $option)
    {
        if (!$this->product instanceof ProductInterface) {
            throw new \LogicException('Cannot add options to a Variant before setting a parent Product');
        }

        $this
            ->options
            ->add($option);

        $this
            ->product
            ->addAttribute(
                $option->getAttribute()
            );

        return $this;
    }
public function addOption(ValueInterface $option)
    {
        if (!$this->product instanceof ProductInterface) {
            throw new \LogicException('Cannot add options to a Variant before setting a parent Product');
        }

        $this
            ->options
            ->add($option);

        $this
            ->product
            ->addAttribute(
                $option->getAttribute()
            );

        return $this;
    }
public function addOption ( ValueInterface $ option ) { if ( ! $ this -> product instanceof ProductInterface ) { throw new \ LogicException ( 'Cannot add options to a Variant before setting a parent Product' ) ; } $ this -> options -> add ( $ option ) ; $ this -> product -> addAttribute ( $ option -> getAttribute ( ) ) ; return $ this ; }
Adds an option to this variant.

Passed option Attribute is also added to the attribute collection
of the parent Product.

If Variant::product is not set or does not implement ProductInterface
a LogicException is thrown: presence of the parent product is mandatory
since adding an Option to a Variant also updates the Parent product
Attribute collection. This way Variant::options and Product::attributes
are synchronized

@param ValueInterface $option

@throws \LogicException

@return $this Self object
Adds an option to this variant .