public function testVariationMatrix() { $size = ProductVariationType::getNewInstance($this->product); $size->setValueByLang('name', 'en', 'Size'); $size->save(); $color = ProductVariationType::getNewInstance($this->product); $color->setValueByLang('name', 'en', 'Color'); $color->save(); $sizes = $colors = array(); foreach (array('Small', 'Large') as $name) { $variation = ProductVariation::getNewInstance($size); $variation->setValueByLang('name', 'en', $name); $variation->save(); $sizes[] = $variation; } foreach (array('Red', 'Green', 'Blue') as $name) { $variation = ProductVariation::getNewInstance($size); $variation->setValueByLang('name', 'en', $name); $variation->save(); $colors[] = $variation; } // create product variations $variations = array(); foreach ($sizes as $sizeVar) { foreach ($colors as $colorVar) { $child = $this->product->createVariation(array($sizeVar, $colorVar)); $child->save(); $variations[$sizeVar->getID()][$colorVar->getID()] = $child; } } $matrix = $this->product->getVariationMatrix(); //var_dump($matrix); }