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

В момента отговарям за импортирането на голям брой продукти в базата данни на клиента. Използвах CSV файл, за да направя това, но досега не успях да определя правилно характеристиките за доставка (напр.: ширина, височина, дълбочина) на самия продукт (Каталог > Продукти > Редактиране (Продукт XPTO > Доставка).

В CSV файла се опитвах да използвам:

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

и след това бих съпоставил тази стойност с колоната Характеристики (Име:Стойност:Позиция). В резултат на това височината и ширината на продукта се показват в листа с данни на продукта, но досега не съм успял да копирам тези стойности в раздела за доставка.

Как може да стане това? Ето примерен фиктивен CSV файл

Още нещо: какво прави „Позиция“ в списъка Име:Стойност:Позиция на функцията? Използвах нещо като Feature Name:Feature Value:increment, но доколкото виждам, това не трябва да се прави.

Благодаря предварително!

Редактиране: Ако е възможно, бих искал да знам точно за какво се отнася полето „Стойност (Стойност:Позиция)*“


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


Отговори (1)


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

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

За съжаление скриптът за импортиране на CSV (controllers/admin/AdminImportController.php) не записва тези полета (разгледайте изходния код за повече подробности), така че, ако искате да копирате стойностите на характеристиките Width, Height и Depth в съответните полета на „Доставка“ трябва да изпълните следните 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 са `decimal(20,6), заявките актуализират само стойността, но не и мерната единица.
Това означава, че трябва да зададете във вашата "Локализация " настройва същата "мерна единица", която използвате във вашия CSV файл (например във вашия фиктивен файл използвате "cm").
И накрая, относно значението на "Позиция": това е просто използван реден номер за показване на различните функции в определен ред в раздела „Характеристики“.
Дори и да не съм пробвал, трябва да е възможно да добавяте нови характеристики на продукта от CSV файла, така че с полето „Позиция“ можете също посочете в коя позиция трябва да се добавят тези нови функции.

person Community    schedule 09.11.2012