Trying to get property of non-object

Fermé
Kzey Messages postés 2 Date d'inscription mercredi 27 juillet 2016 Statut Membre Dernière intervention 28 juillet 2016 - 27 juil. 2016 à 10:54
Kzey Messages postés 2 Date d'inscription mercredi 27 juillet 2016 Statut Membre Dernière intervention 28 juillet 2016 - 28 juil. 2016 à 10:18
Bonjour,

Dans ce bout de code dédier à l'import des produits d'un sites web depuis un autre site, j'ai l'erreur suivante que je n'arrive pas à resoudre :

PS: Mieux vaut copier ce code sur un dossier .php pour que ce soit plus lisible ^^

Notice: Trying to get property of non-object in C:\etc etc on line 949
NULL

<?

function Import_product_option()//ok
{
global $product_optionsxml;
global $bdd;
foreach ($product_optionsxml->children()->children() as $ressource_product_options)
{
try {
$webService = new PrestaShopWebservice(PS_SHOP_PATH, PS_WS_AUTH_KEY, DEBUG);//met la connection dans une variable
$xml_product_options = $webService->get(array('url' => PS_SHOP_PATH.'/api/product_options?schema=blank'));//on recupere un shemas blanc xml

$id_product_options = $ressource_product_options-> id;
$is_color_group_product_options = $ressource_product_options-> is_color_group;
$group_type_product_options = $ressource_product_options-> group_type;
$position_product_options = $ressource_product_options-> position;
$name_product_options = $ressource_product_options-> name ->language[0][0];
$public_name_product_options = $ressource_product_options-> public_name->language[0][0];

$id_assos_product_options = $ressource_product_options->associations->product_option->product_option->id;
var_dump($id_assos_product_options);
die($id_assos_product_options);


$xml_product_options->product_option -> is_color_group = $is_color_group_product_options;
$xml_product_options->product_option -> group_type = $group_type_product_options;
$xml_product_options->product_option -> position = $position_product_options;
$xml_product_options->product_option -> name->language[0][0] = $name_product_options;
$xml_product_options->product_option -> public_name->language[0][0] = $public_name_product_options;

$xml_product_options->product_option ->associations->product_option->product_option->id = $id_assos_product_options;

$opt_product_options = array('resource' => 'product_options');//créer un tableau de la ressource que l'on veux
$opt_product_options['postXml'] = $xml_product_options->asXML();//met le tableau au format xml

$xml_product_options = $webService->add($opt_product_options);//envoie le xml a prestashop

// $monid_product_feature = $xml_product_feature->product_feature_values->id;//récupere l'id inséré dans prestashop par auto increment
// $bdd->query('UPDATE `prestashop`.`ps_product_feature` SET `id_product_feature` = '.$id_product_feature.' WHERE `ps_product_feature`.`id_product_feature` = '.$monid_product_feature.'');//envoie la nouvelle id
}
catch (PrestaShopWebserviceException $e)
{
// Here we are dealing with errors
$trace = $e->getTrace();
if ($trace[0]['args'][0] == 404) echo 'Bad ID';
else if ($trace[0]['args'][0] == 401) echo 'Bad auth key';
else echo 'Other error<br />'.$e->getMessage();
}
}
}

la ligne d'erreur en question ici est ligne 20 "$id_assos_product_options = $ressource_product_options->associations->product_option->product_option->id;"

Je n'arrive pas à résoudre cette erreur pourtant le code en soit fonctionne très bien dans la pratique, il ne me reste que cette erreur à corriger.

Merci d'avance :)
A voir également:

2 réponses

Salut,

cela veut dire que dans $ressource_product_options->associations->product_option->product_option,

il y en a un qui n'est pas un objet car il a la valeur null, et je pense que c'est ressource_product_options.

var_dump(gettype($ressource_product_options));

׺°"~'"°º×]|I{*------» LÖBÖTÖ «------*}I|[׺°"~'"°º×
2
Kzey Messages postés 2 Date d'inscription mercredi 27 juillet 2016 Statut Membre Dernière intervention 28 juillet 2016
28 juil. 2016 à 10:18
Salut, merci de ta réponse lobotoFix.

Je vais essayer de résoudre ça de tels sorte à en faire un objet et je vous tien au courant.

Bonne journée !
0