Sonata\Component\Product\ProductCollectionManagerInterface::addCollectionToProduct PHP Method

addCollectionToProduct() public method

Adds a Category to a Product.
public addCollectionToProduct ( Sonata\Component\Product\ProductInterface $product, Sonata\ClassificationBundle\Model\CollectionInterface $collection )
$product Sonata\Component\Product\ProductInterface
$collection Sonata\ClassificationBundle\Model\CollectionInterface
    public function addCollectionToProduct(ProductInterface $product, CollectionInterface $collection);

Usage Example

 /**
  * {@inheritdoc}
  */
 public function synchronizeVariationsCollections(ProductInterface $product, ArrayCollection $variations = null)
 {
     if (in_array('productCollections', $this->getVariationFields())) {
         return;
     }
     if (!$variations) {
         $variations = $product->getVariations();
     }
     $productCollections = $product->getCollections();
     /** @var ProductInterface $variation */
     foreach ($variations as $variation) {
         $variationCollections = $variation->getCollections();
         // browsing variation collections and remove excessing collections
         foreach ($variationCollections as $variationCollection) {
             if ($variationCollection && !$productCollections->contains($variationCollection)) {
                 $this->productCollectionManager->removeCollectionFromProduct($variation, $variationCollection);
             }
         }
         // browsing Product collections and add missing collections
         foreach ($productCollections as $productCollection) {
             if ($productCollection && !$variationCollections->contains($productCollection)) {
                 $this->productCollectionManager->addCollectionToProduct($variation, $productCollection);
             }
         }
     }
 }