Bonjour,
j'ai un souci lors de la création de produit en php, les prix et les images ne s'intègrent pas, le product_sort_price sintègre pourtant
voici le retour en var_dump de l'objet $product après enregistrement :
object(stdClass)#366 (12) {
["product_name"]=>
string(32) "Vase déco effet bosselé cuivre"
["product_quantity"]=>
string(1) "1"
["product_code"]=>
string(3) "d17"
["prices"]=>
array(1) {
[0]=>
object(stdClass)#370 (2) {
["price_value"]=>
string(5) "17.92"
["price_currency_id"]=>
int(1)
}
}
["categories"]=>
array(2) {
[0]=>
string(3) "546"
[1]=>
string(3) "519"
}
["product_published"]=>
int(1)
["images"]=>
array(1) {
[0]=>
object(stdClass)#369 (1) {
["file_name"]=>
string(39) "vase-deco-cuivre-thival-concept-big.jpg"
}
}
["product_modified"]=>
int(1652103594)
["product_created"]=>
int(1652103594)
["product_type"]=>
string(4) "main"
["product_sort_price"]=>
float(17.92)
["product_id"]=>
int(15)
}
je ne comprends pas mon erreur en relisant la doc :
www.hikashop.com/support/documentation/157
mon script récupère en boucle les produits de l'ancien site d'un client, fourni en csv, la boucle traite les produits ($item) comme ceci :
$product = new stdClass();
$product->product_name = trim($item['Name']);
if(empty($item['QtyInStock'])){ $product->product_quantity = 0; }
else{ $product->product_quantity = $item['QtyInStock']; }
$product->product_code = trim($item['code']);
$price = new stdClass();
$price->price_value = str_replace(',', '.', $item['Price1VATExcluded']);
$price->price_currency_id = 1;
$product->prices = array($price);
$category_1 = array_reverse(explode('/', $item['Category1Name']))[0];
$db->setQuery('SELECT category_id FROM #__hikashop_category WHERE category_name = "'.$category_1 .'"');
$product->categories[] = $db->loadResult();
if(!empty($item['Category2Name'])){
$category_2 = array_reverse(explode('/', $item['Category2Name']))[0];
$db->setQuery('SELECT category_id FROM #__hikashop_category WHERE category_name = "'.$category_2.'"');
$product->categories[] = $db->loadResult();
}
if(!empty($item['Category3Name'])){
$category_3 = array_reverse(explode('/', $item['Category3Name']))[0];
$db->setQuery('SELECT category_id FROM #__hikashop_category WHERE category_name = "'.$category_3.'"');
$product->categories[] = $db->loadResult();
}
$product->product_published = 1;
$url = trim($item['UrlDetailImgFileName']);
if($gix_config->url_exists($url)){
$folder = 'images/';
$filename = basename(parse_url($url, PHP_URL_PATH));
file_put_contents($folder.$filename, file_get_contents($url));
$image = new stdClass();
$image->file_name = $filename;
$product->images = array($image);
}
if(!defined('DS'))
define('DS', DIRECTORY_SEPARATOR);
include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikashop'.DS.'helpers'.DS.'helper.php');
$productClass = hikashop_get('class.product');
$result = $productClass->save($product);
$productClass->updateCategories($product, $result);
Tout le reste fonctionne très bien, sauf l'insertion des tables price et file
Merci d'avance, désolée du dérangement