Jump to content

WebService añadir características con valores personalizados.


Recommended Posts

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

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...