/**
  * @param array $configurableAttributes
  * @return array
  */
 protected function getProductAttributes($configurableAttributes)
 {
     $attributesData = [];
     foreach ($configurableAttributes as $attributeCode => $value) {
         $attribute = $this->eavConfig->getAttribute('catalog_product', $attributeCode);
         if (!$attribute->getId()) {
             continue;
         }
         $options = $this->productConverter->getAttributeOptions($attribute->getAttributeCode());
         $attributeOption = $options->getItemByColumnValue('value', $value);
         $attributeId = $attributeOption->getDataByKey('attribute_id');
         $attributesData[$attributeId] = $attributeOption->getDataByKey('option_id');
     }
     return $attributesData;
 }
 /**
  * @param string $urlAttributes
  * @return string
  */
 protected function getUrlFilter($urlAttributes)
 {
     $separatedAttributes = $this->getArrayValue($urlAttributes, ';');
     $urlFilter = null;
     foreach ($separatedAttributes as $attributeNumber => $attributeValue) {
         $attributeData = $this->getArrayValue($attributeValue, '=');
         $attributeOptions = $this->productConverter->getAttributeOptions($attributeData[0]);
         $attributeValue = $attributeOptions->getItemByColumnValue('value', $attributeData[1]);
         if ($attributeNumber == 0) {
             $urlFilter = $attributeData[0] . '=' . $attributeValue->getId();
             continue;
         }
         $urlFilter .= '&' . $attributeData[0] . '=' . $attributeValue->getId();
     }
     return $urlFilter;
 }