private function _convert($feature, $to) { $feature_id = $feature['id']; // change only multiple/selectable flags if ($to['type'] == $feature['type']) { $this->feature_model->updateById($feature_id, array('multiple' => $to['multiple'], 'selectable' => $to['selectable'])); } else { // get all features values $values = $this->getValues($feature, $to); // change type of feature (with removing old values) $feature = $this->changeType($feature, $to); // reset values taking into account new type $new_values = $this->setValues($feature, $values); // bind new values to products $this->bindToProducts($feature, $new_values); } }