Example #1
0
 /**
  * Get variations data for curl
  *
  * @param ConfigurableProduct $fixture
  * @return array
  */
 protected function _getVariationMatrix(ConfigurableProduct $fixture)
 {
     $config = $fixture->getDataConfig();
     $variationData = $fixture->getData('fields/variations-matrix/value');
     $curlData = [];
     $variationNumber = 0;
     foreach ($config['options'] as $attributeId => $options) {
         foreach ($options['id'] as $option) {
             foreach ($variationData[$variationNumber]['value'] as $fieldName => $fieldData) {
                 if ($fieldName == 'qty') {
                     $curlData[$option]['quantity_and_stock_status'][$fieldName] = $fieldData['value'];
                 } else {
                     $curlData[$option][$fieldName] = $fieldData['value'];
                 }
             }
             if (!isset($curlData[$option]['weight']) && $fixture->getData('fields/weight/value')) {
                 $curlData[$option]['weight'] = $fixture->getData('fields/weight/value');
             }
             $curlData[$option]['configurable_attribute'] = '{"' . $config['attributes'][$attributeId]['code'] . '":"' . $option . '"}';
             ++$variationNumber;
         }
     }
     return $curlData;
 }