Prestashop 1.5.1 - Как я могу импортировать характеристики доставки товара?

В настоящее время я отвечаю за импорт большого количества продуктов в базу данных клиента. Я использовал для этого файл CSV, но до сих пор мне не удалось правильно определить характеристики доставки (например, ширину, высоту, глубину) самого продукта (Каталог > Товары > Редактировать (Продукт XPTO > Перевозки).

Внутри файла CSV я пытался использовать:

(...);"Height:9 cm:1, Width:13,7 cm:2";(....) 

а затем я бы сопоставил это значение со столбцом «Функции» (имя: значение: позиция). В результате высота и ширина продукта отображаются в техническом описании продукта, но пока мне не удалось скопировать эти значения на вкладку доставки.

Как это может быть сделано? Вот пример фиктивного файла CSV

Еще одна вещь: что делает «Позиция» внутри списка «Имя функции: значение: позиция»? Я использовал что-то вроде Имя функции:Значение функции:приращение, но, насколько я понимаю, это не так, как это должно быть сделано.

Заранее спасибо!

Изменить: Если возможно, я также хотел бы точно знать, к чему относится поле «Значение (значение: позиция)*»


person João Pereira    schedule 30.10.2012    source источник


Ответы (1)


Характеристики доставки товара хранятся в следующих полях таблицы ps_product базы данных Prestashop:

  • ширина десятичная (20,6)
  • десятичная высота (20,6)
  • десятичная глубина (20,6)

К сожалению, скрипт импорта CSV (controllers/admin/AdminImportController.php) не записывает эти поля (дополнительные сведения см. в исходном коде), поэтому, если вы хотите скопировать значения параметров ширины, высоты и глубины в соответствующие поля окна «Доставка», на вкладке необходимо выполнить следующие запросы MySQL (пожалуйста, сделайте резервную копию базы данных, прежде чем продолжить):

update ps_product p, 
       ps_feature_lang fl, 
       ps_feature_product fp, 
       ps_feature_value_lang fvl 
   set p.width=fvl.value 
 where p.id_product=fp.id_product 
   and fl.id_feature=fp.id_feature 
   and fl.name='Width' 
   and fvl.id_feature_value=fp.id_feature_value;

update ps_product p, 
       ps_feature_lang fl, 
       ps_feature_product fp, 
       ps_feature_value_lang fvl 
   set p.height=fvl.value 
 where p.id_product=fp.id_product 
   and fl.id_feature=fp.id_feature 
   and fl.name='Height' 
   and fvl.id_feature_value=fp.id_feature_value;

update ps_product p, 
       ps_feature_lang fl, 
       ps_feature_product fp, 
       ps_feature_value_lang fvl 
   set p.depth=fvl.value 
 where p.id_product=fp.id_product 
   and fl.id_feature=fp.id_feature 
   and fl.name='Depth' 
   and fvl.id_feature_value=fp.id_feature_value;

Одно замечание: поскольку поле ps_feature_value_lang.value имеет значение varchar(255), а поля ps_product.width/height/depth являются десятичными (20,6), запросы обновляют только значение, но не единицу измерения.
Это означает, что вы должны " устанавливает ту же "Единицу измерения", которую вы используете в файле CSV (например, в фиктивном файле вы используете "см").
Наконец, о значении "Позиция": это просто используемый порядковый номер для отображения различных функций в определенном порядке на вкладке «Характеристики».
Даже если я не пробовал, должна быть возможность добавлять новые функции продукта из файла CSV, поэтому с помощью поля «Позиция» вы можете также укажите, в какую позицию должны быть добавлены эти новые функции.

person Community    schedule 09.11.2012