function it_adds_attributes_to_product($entityManager, $builder, AttributeRepository $attRepository, ProductInterface $product, AvailableAttributes $attributes, AbstractAttribute $sku, AbstractAttribute $name, AbstractAttribute $size) { $attributes->getAttributes()->willReturn([$sku, $name, $size]); $builder->addAttributeToProduct($product, $sku)->shouldBeCalled(); $builder->addAttributeToProduct($product, $name)->shouldBeCalled(); $builder->addAttributeToProduct($product, $size)->shouldBeCalled(); $this->addAttributesToProduct($product, $attributes); }
/** * Creates required value(s) to add the attribute to the product * * @param ProductInterface $product * @param AvailableAttributes $availableAttributes * @param array $savingOptions */ public function addAttributesToProduct(ProductInterface $product, AvailableAttributes $availableAttributes, array $savingOptions = []) { foreach ($availableAttributes->getAttributes() as $attribute) { $this->builder->addAttributeToProduct($product, $attribute); } $options = array_merge(['recalculate' => false, 'schedule' => false], $savingOptions); $this->productSaver->save($product, $options); }
/** * Creates required value(s) to add the attribute to the product * * @param ProductInterface $product * @param AvailableAttributes $availableAttributes * * @return null */ public function addAttributesToProduct(ProductInterface $product, AvailableAttributes $availableAttributes) { foreach ($availableAttributes->getAttributes() as $attribute) { $this->builder->addAttributeToProduct($product, $attribute); } }