Añadir un producto variable en WooCommerce programáticamente
5 dic 2012, 12:24:04
Vistas: 19.7K
Votos: 5
¿Cómo puedo convertirlo en un producto variable y añadir variaciones? ¿Se manejan las variaciones como atributos?
Este código crea un producto y añade un atributo (talla XL) pero no puedo hacer que ese atributo se use como variación, con un precio personalizado (etc).
Esta es una función llamada vía ajax
function createnewproduct(){
$new_post = array(
'post_title' => "Variable Personalizado",
'post_content' => 'Lorem ipsum dolor sit amet...',
'post_status' => 'publish',
'post_type' => 'product'
);
$skuu = randomsku('csm','personalizado',6);
$post_id = wp_insert_post($new_post);
update_post_meta($post_id, '_sku', $skuu );
update_post_meta( $post_id, '_price', "25" );
//¡Lo hice variable pero no se añaden las variaciones!
wp_set_object_terms ($post_id, 'variable', 'product_type');
wp_set_object_terms( $post_id, 'XL', 'pa_size' );
//todo funciona bien pero
//¿cómo hago que el atributo "pa_size" sea una variación?
update_post_meta( $post_id, '_visibility', 'search' );
update_post_meta( $post_id, '_stock_status', 'instock');
}
Esta función declara en WooCommerce que el nuevo producto añadido es un producto variable y añade un atributo "talla". El problema es cómo le decimos a WooCommerce que el atributo "talla" es una variación.

markware
121
Comentarios
Todas las respuestas a la pregunta
1
0
Encontré la solución para convertir un atributo de producto en una variación. Supongamos que tenemos:
wp_set_object_terms( $post_id, 'XL', 'pa_size' );
Lo anterior es un atributo personalizado (un atributo de talla). Para convertirlo en una variación, necesitas hacer esto:
$thedata = Array('pa_size'=>Array(
'name'=>'pa_size',
'value'=>'',
'is_visible' => '1',
'is_variation' => '1',
'is_taxonomy' => '1'
));
update_post_meta( $post_id,'_product_attributes',$thedata);

markware
121
6 dic 2012 11:55:46
Preguntas relacionadas
2
respuestas
5
respuestas