2016-01-14 3 views
2

Я делаю простой скрипт, который будет напрямую вставлять продукт в базу данных prestashop, и я не могу найти способ вставки изображения в базу данных.Вставить изображение в базу данных prestashop

Пока мой сценарий:

mysqli_query($conn, 'INSERT INTO ps_product (id_supplier, id_manufacturer, id_category_default, id_shop_default, id_tax_rules_group, on_sale, online_only, quantity, minimal_quantity, price, wholesale_price, out_of_stock, active, redirect_type, available_for_order, show_price, indexed, visibility, cache_default_attribute, date_add, date_upd, pack_stock_type,ean13,upc,unity,reference,supplier_reference,location) 
VALUES ("2", "2" , "5", "1", "1","1","1", "0", "1", "30", "30", "2", "1", "302","1","1","1","both","19",now(),now(),"3","0","0","","demo_1","","")'); 


mysqli_query($conn, 'INSERT INTO ps_product_lang (id_product, id_lang, description, description_short, link_rewrite, name, available_now,meta_description,meta_keywords,meta_title,available_later) 
VALUES (LAST_INSERT_ID(),"1","long des","test","insert title","title inserted","In stock","","","","")'); 


mysqli_query($conn, 'INSERT INTO ps_product_shop (id_product,id_shop,id_category_default,id_tax_rules_group,price,wholesale_price,unity,active,redirect_type,indexed,cache_default_attribute,date_add,date_upd) 
VALUES (LAST_INSERT_ID(),"1","5","1","30","30","","1","301","1","1",now(),now())'); 

А теперь у меня есть вставка фото в нем, так что я могу закончить продукт и опубликовать его.

ответ

3

Для начала вам нужно создать новую запись для своего изображения в базе данных (изображение таблицы). Если вы посмотрите на Prestashop Image Class, он сохраняет изображения в каталогах, созданных с вашего идентификатора изображения. Чтобы получить путь, вам нужно разбить каждый номер вашего идентификатора изображения. Вот Prestashop метод класса Image:

/** 
* Returns the path to the folder containing the image in the new filesystem 
* 
* @param mixed $id_image 
* @return string path to folder 
*/ 
public static function getImgFolderStatic($id_image) 
{ 
    if (!is_numeric($id_image)) { 
     return false; 
    } 
    $folders = str_split((string)$id_image); 
    return implode('/', $folders).'/'; 
} 

В defines.inc.php _PS_IMG_DIR_ определяет папку изображений (по умолчанию: /img/) и _PS_PROD_IMG_DIR_ определяет папку изображений продукта (по умолчанию: p/). по умолчанию папка для изображения продукта затем /img/p/.

Если изображение имеет для идентификатора 927 и название «test.jpg» будет храниться в /img/p/9/2/7/927.jpg

Сначала попробуйте это в течение нескольких продуктов, а затем в Prestashop BackOffice перейти к Preferences > Images > regenerate thumbnails (at the bottom of the page). Prestashop должен генерировать размеры каждого продукта для вас.

Пожалуйста, дайте мне знать, если он не работает или вам нужны дополнительные инструкции.

+1

Почему у меня был нижний предел? Я уверен, что это правильный ответ на этот вопрос. –

+1

Я не голосовал, это, должно быть, кто-то еще! – Argjent

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