protected function importSpecificPriceRules() { $this->truncateTables(array('specific_price_rule', 'specific_price_rule_condition', 'specific_price_rule_condition_group')); $handle = $this->openCsvFile('specific_price_rules.csv'); for ($current_line = 0; $line = fgetcsv($handle, MAX_LINE_SIZE, ';'); $current_line++) { $res = false; $fields = $this->filterFields('SpecificPriceRule', $this->specific_price_rule_fields, $line); if (!isset($fields['id'])) { $specific_price_rule = new SpecificPriceRule($line[0]); $specific_price_rule->id = $line[0]; } else { $specific_price_rule = new SpecificPriceRule($fields['id']); } foreach ($fields as $key => $field) { $specific_price_rule->{$key} = $field; } // add price rule conditions ps_specific_price_rule_condition if (trim($line[13])) { $conditions = explode(',', $line[13]); $values = array(); foreach ($conditions as $condition) { $cond = explode(':', $condition); $values[] = array('type' => $cond[0], 'value' => $cond[1]); } $specific_price_rule->addConditions($values); } $specific_price_rule->force_id = true; if (!$res) { $res = $specific_price_rule->add(); } } $this->closeCsvFile($handle); return true; }