2015-02-11 4 views
3

Я не могу найти правильную документацию по добавлению изображений во время вставки продукта. Вот рабочий код скрипта импорта xml-продукта. Я не знаю, как добавлять изображения продукта при добавлении продукта.Как добавить изображение во время импорта программного продукта в prestashop?

foreach ($xml->Products as $product_xml) 
{ 
    if ($product_xml->Valid_internet_product == 1) 
    { 
     /* Update an existing product or Create a new one */ 
     $id_product = (int)Db::getInstance()->getValue('SELECT id_product FROM '._DB_PREFIX_.'product WHERE reference = \''.pSQL($product_xml->Reference).'\''); 
     $product = $id_product ? new Product((int)$id_product, true) : new Product(); 
     $product->reference = $product_xml->Reference; 
     $product->price = (float)$product_xml->Price; 
     $product->active = (int)$product_xml->Active_product; 
     $product->weight = (float)$product_xml->Weight; 
     $product->minimal_quantity = (int)$product_xml->MinOrderQty; 
     $product->id_category_default = 2; 
     $product->name = utf8_encode($product_xml->Products_name); 
     $product->description = utf8_encode($product_xml->Description); 
     $product->description_short = utf8_encode($product_xml->Short_Description); 
     $product->link_rewrite = Tools::link_rewrite($product_xml->Products_name); 
     $product->image_url = 'http://i.imgur.com/jLThaBj.jpg'; 
     if (!isset($product->date_add) || empty($product->date_add)) 
      $product->date_add = date('Y-m-d H:i:s'); 
     $product->date_upd = date('Y-m-d H:i:s'); 
     $id_product ? $product->updateCategories(array(2)) : $product->addToCategories(array(2)); 


     $product->save(); 

     echo 'Product <b>'.$product->name.'</b> '.($id_product ? 'updated' : 'created').'<br />'; 
    } 
} 

ответ

5

Это реализуется с помощью следующего метода:

AdminImportControllerCore::copyImg() 

Вы можете просто скопировать/вставить его, или изменить его, если необходимо.

+0

Каковы параметры.? Редактировать: Я получаю эту ошибку: Неустранимая ошибка: вызов защищенного метода AdminImportControllerCore :: copyImg() из контекста –

+0

PrestaShop - это решение с открытым исходным кодом, что означает, что вы можете открыть файл и просмотреть параметры. Как я уже сказал, вам нужно скопировать этот метод и сделать его частью вашего класса или как функцию. Тем не менее ваш код выше потребует гораздо больше работы и знаний в PrestaShop, чтобы работать плавно. – PrestaShopDeveloper

+0

Спасибо. Разобрались. Я расширил этот класс своим. –

0

Откуда вы берете $ xml-> продукты? Вы не используете веб-службу?

Изображение продукта - еще один объект, такой как продукт, и сначала вы должны создать новый образ, а затем добавить этот идентификатор изображения в продукт.

+0

Я retreving данные из XML. У меня есть полный URL-адрес изображения, например «http: //mysite/myimage.jpg». Не могли бы вы дать мне образец работы с объектом изображения? –

Смежные вопросы