/** * {@inheritdoc} */ 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); } } }