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);
}
}
}