Пытаюсь сделать импорт товаров из csv файла. Версия 2.1.0.2. По туториалу: http://code.tutsplus.com/tutorials/building-a-product-csv-import-tool-in-opencart-part-2--cms-24503 эта обучалка под версию 1.5, но я решил попытаться. код в контроллере ( /catalog/product.php):
public function importCSV() {
$data['error_csv'] = '';
if ($this->request->server['REQUEST_METHOD'] == 'POST'){
$file = $_FILES['csv']['tmp_name'];
if (empty($file)) {
$this->session->data['warning'] = 'CSV Not selected!';
}
else {
$f = fopen($file,"r");
while (($line = fgetcsv($f, 1000, ",")) !== FALSE)
{
if ($line[0]!='') // if column 1 is not empty
{
$this->model_catalog_product->importCsvData($line); // parse the data to model
}
else
{
$data['error_csv'] += 'error';
}
}
$this->session->data['success'] = 'CSV Successfully Imported!'; //success message
}
$this->response->redirect($this->url->link('catalog/product/importCSV', 'token=' . $this->session->data['token'], 'SSL'));
}
$this->document->setTitle('Import CSV');
$data['heading_title']="Import CSV"; // parsing up heading title
$this->load->model('catalog/product'); // Loading the Model of Products
$data['cancel'] = $this->url->link('catalog/product', 'token=' . $this->session->data['token'], 'SSL');
$data['action'] = $this->url->link('catalog/product/importCSV', 'token=' . $this->session->data['token'], 'SSL');
if (isset($this->session->data['warning'])) {
$data['error_warning'] = $this->session->data['warning'];
unset($this->session->data['warning']);
} else {
$data['error_warning'] = '';
}
if (isset($this->session->data['success'])) {
$data['success'] = $this->session->data['success'];
unset($this->session->data['success']);
} else {
$data['success'] = '';
}
// Breadcrumbs start here
$data['breadcrumbs'] = array();
$data['breadcrumbs'][] = array(
'text' => $this->language->get('text_home'),
'href' => $this->url->link('common/dashboard', 'token=' . $this->session->data['token'], 'SSL')
);
$data['breadcrumbs'][] = array(
'text' => 'Товары',
'href' => $this->url->link('catalog/product', 'token=' . $this->session->data['token'], 'SSL')
);
$data['breadcrumbs'][] = array(
'text' => 'ImportCSV',
'href' => $this->url->link('catalog/product/ImportCSV', 'token=' . $this->session->data['token'], 'SSL')
);
$data['header'] = $this->load->controller('common/header');
$data['column_left'] = $this->load->controller('common/column_left');
$data['footer'] = $this->load->controller('common/footer');
$this->response->setOutput($this->load->view('catalog/import_csv.tpl', $data));
}
модель:
public function importCsvData($data) {
$product_id = $data[0];
$model = $data[1];
$name = $data[2];
$quantity = $data[3];
if($product_id!='')
{
$query = $this->db->query("UPDATE `".DB_PREFIX."product` SET model='".$model."',quantity='".(int)$quantity."' WHERE product_id='".$product_id."'");//updating product quantity & its model
if($name)
{
$query = $this->db->query("UPDATE `".DB_PREFIX."product_description` SET name='".$this->db->escape($name)."' WHERE product_id='".$product_id."'"); // update the name of the product
}
}
}
Проблема в контроллере в строке $this->model_catalog_product->importCsvData($line); // parse the data to model функция в модели не вызывается, сайт возвращает 500 ошибку. У меня очень мало опыта в php, подскажите, возможно ли данный туториал адаптировать под 2.0?