rickp Posted May 11, 2021 Share Posted May 11, 2021 Hola, Estoy tratando de añadir un valor personalizado a una característica existente mediante la APi. Cualquier modificación que realice funciona correctamente siempre y cuando le pase un id de un valor existente. Pero en este caso estoy intentando añadirle un valor personalizado. Pero no hay forma de que me añada el valor al producto, sí que me añade la característica pero no el valor personalizado os copio un pequeño trozo del código que le estoy pasando: $featEnv = $productFeatures->addChild('product_feature'); $featEnv->addChild('id', 57); $featEnv->addChild('id_feature_value',''); $featEnv->addChild('custom', 1); $featEnv->addChild('value'); $featEnv->value->language[0] = 3000; Si no inicializo la variable id_feature_value, el webservice muestra un error 500. Espero me podáis ayudar Gracias Link to comment Share on other sites More sharing options...
rickp Posted May 11, 2021 Author Share Posted May 11, 2021 Pues después de casi dos días invertidos esta es la forma de añadir un valor personalizado a una característica de un producto. Lo dejo aquí por si alguien en un futuro lo necesita: //Valor que queremos crear $value = 123456; // hemos de añadir un id $idListVal = time(); //ID del atributo al que queremos vincular el valor $attId = 57 try{ $webService2 = new PrestaShopWebservice($url, $password, false); $response = $webService2->get(['url' => $psSite['url'].'/api/product_feature_values?schema=blank', 'display' => 'full']); }catch(PrestaShopWebservice $ex){ echo "Error Detectado: <br />".$ex->getMessage(); } $blankAttXML = $response->product_feature_value; $blankAttXML->id_feature = (int) $idListVal; $blankAttXML->value->language[0] = $value; $blankAttXML->custom = 1; try{ $createdVal = $webService2->add([ 'resource' => 'product_feature_values', 'postXml' => $response->asXML(), ]); }catch(PrestaShopWebservice $ex){ echo "-!r Error Detectado: ".$ex->getMessage(); continue; } //Añadir al objeto una nueva entrada relacionando el Atributo con el valor recien creado. $featEnv = $productFeatures->addChild('product_feature'); $featEnv->addChild('id', $attId); $featEnv->addChild('id_feature_value', $createdVal->product_feature_value->id); Espero que os sirva, saludos Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now