Sonata\ProductBundle\Model\BaseProductProvider::synchronizeVariationsProduct PHP Method

synchronizeVariationsProduct() public method

public synchronizeVariationsProduct ( Sonata\Component\Product\ProductInterface $product, ArrayCollection $variations = null )
$product Sonata\Component\Product\ProductInterface
$variations Doctrine\Common\Collections\ArrayCollection
    public function synchronizeVariationsProduct(ProductInterface $product, ArrayCollection $variations = null)
    {
        $variationFields = array_merge(array('id', 'parent'), $this->getVariationFields());
        $values = $product->toArray();
        foreach ($variationFields as $field) {
            if (array_key_exists($field, $values)) {
                unset($values[$field]);
            }
        }
        if (!$variations) {
            $variations = $product->getVariations();
        }
        $accessor = PropertyAccess::createPropertyAccessor();
        foreach ($variations as $variation) {
            foreach ($values as $name => $value) {
                $accessor->setValue($variation, $name, $value);
            }
        }
    }