Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Свои поля в Export Import Tool


Recommended Posts

Всем привет!

По рабочим задачам написал статью о том, как в популярный Export Import Tool добавить свое поле обмена. Вставлять целиком в пост не уверен, что нужно (ну, только если модераторы сочтут нужным).

Так же готов оказать посильную помощь в этом вопросе, т.к. потратил на это полных два рабочих дня!

Надіслати
Поділитися на інших сайтах

Описанные правки проверены для версии модуля Export Import Tool версии 3.7!

 

Поле, которое добавим будет называться main_product. Вы точно так же можете на свое изменить :)

После:

$location = $this->db->escape($product['location']);
$location = $this->db->escape($product['location']);
$store_ids = $product['store_ids'];
$layout = $product['layout'];
$related_ids = $product['related_ids'];
$subtract = $product['subtract'];
$subtract = ((strtoupper($subtract)=="TRUE") || (strtoupper($subtract)=="YES") || (strtoupper($subtract)=="ENABLED")) ? 1 : 0; $minimum = $product['minimum'];

Добавить:

$main_product = $product['main_product'];

------------------------------

Далее, изменить строку:

$sql .= "`tax_class_id`,`viewed`,`length`,`width`,`height`,`length_class_id`,`sort_order`,`subtract`,`minimum`) VALUES ";

На 

$sql .= "`tax_class_id`,`viewed`,`length`,`width`,`height`,`length_class_id`,`sort_order`,`subtract`,`minimum`,`main_product`) VALUES ";

Обратите внимание на кавычки! Они должны быть именно такими, или код ошибку выдаст.

------------------------------

Строку:

$sql .= "$tax_class_id,$viewed,$length,$width,$height,'$length_class_id','$sort_order','$subtract','$minimum');";

Изменить на:

$sql .= "$tax_class_id,$viewed,$length,$width,$height,'$length_class_id','$sort_order','$subtract','$minimum','$main_product');";

------------------------------

После:

$sort_order = $this->getCell($data,$i,$j++,'0');
$sort_order = $this->getCell($data,$i,$j++,'0');
$subtract = $this->getCell($data,$i,$j++,'true');
$minimum = $this->getCell($data,$i,$j++,'1');

Добавить:

$main_product = $this->getCell($data,$i,$j++,'0');

------------------------------

После:

$product['subtract'] = $subtract;
$product['subtract'] = $subtract;
$product['minimum'] = $minimum;

Добавить:

$product['main_product'] = $main_product;

------------------------------

Строку:

$expected_heading = array_merge( $expected_heading, array( "meta_description", "meta_keywords", "stock_status_id", "store_ids", "layout", "related_ids", "tags", "sort_order", "subtract", "minimum") );

Изменить на:

$expected_heading = array_merge( $expected_heading, array( "meta_description", "meta_keywords", "stock_status_id", "store_ids", "layout", "related_ids", "tags", "sort_order", "subtract", "minimum", "main_product" ) );

------------------------------

После:

$sql .= "  p.stock_status_id, ";
$sql .= "  p.stock_status_id, ";
$sql .= "  mc.unit AS length_unit, ";
$sql .= "  p.subtract, "; $sql .= "  p.minimum, ";

Добавить:

$sql .= " p.main_product, ";

Обратите внимание на пробел после p.main_product, это важно, не забудьте его поставить!

------------------------------

После:

$worksheet->getColumnDimensionByColumn($j++)->setWidth(max(strlen('sort_order'),8)+1);
$worksheet->getColumnDimensionByColumn($j++)->setWidth(max(strlen('sort_order'),8)+1);
$worksheet->getColumnDimensionByColumn($j++)->setWidth(max(strlen('subtract'),5)+1);
$worksheet->getColumnDimensionByColumn($j++)->setWidth(max(strlen('minimum'),8)+1);

Добавить:

$worksheet->getColumnDimensionByColumn($j++)->setWidth(max(strlen('main_product'),8)+1);

------------------------------

После:

$data[$j++] = 'sort_order';
$data[$j++] = 'sort_order';
$data[$j++] = 'subtract';
$data[$j++] = 'minimum';

Добавить:

$data[$j++] = 'main_product';

-------------------------------

ПОСЛЕДНИЕ ПРАВКИ! После:

$data[$j++] = $row['sort_order'];
$data[$j++] = $row['sort_order'];
$data[$j++] = ($row['subtract']==0) ? 'false' : 'true';
$data[$j++] = $row['minimum'];

Добавить:

$data[$j++] = $row['main_product'];

 

Надіслати
Поділитися на інших сайтах

  • 10 months later...
  • 1 year later...
В 02.10.2017 в 13:03, iMateo сказал:

Всем привет!

По рабочим задачам написал статью о том, как в популярный Export Import Tool добавить свое поле обмена. Вставлять целиком в пост не уверен, что нужно (ну, только если модераторы сочтут нужным).

Так же готов оказать посильную помощь в этом вопросе, т.к. потратил на это полных два рабочих дня!

С числовыми полями это понятно, по аналогии можно все сделать, а вот не подскажите как тестовые поля выгрузить в бд? Например я в таблице product_option_value создал столбец o_description и если сделать все как вы написали( за что огромное спасибо ), только в соответствующих функциях то при загрузке файла в бд я получаю текст "o_description" во всех полях которые редактировал...

Надіслати
Поділитися на інших сайтах


  • 1 year later...

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.