Estimados amigos por favor requiero de su ayuda tengo el siguiente problema,
estoy construyendo una tienda en woocommerce, la cual requiere actualizar sus precios y stock desde un servicio externo (Web Service SOAP), el sitio tiene las siguientes caracteristicas:
1.- Solo pueden acceder distribuidores, (para lo cual fuerzo el inicio de sesion)
2.- Solo actualizo el stock para los usuarios registrados, donde hago lo siguiente:
Luego del inicio de sesión, redireciono a mi pagina que se encarga de conectarse al web service soap, el que me devuelve un arreglo con todo los productos solo 3 campos: SKU, Precio y Stock,
recorro todo el arreglo y actualizo los campos _regular_price, _price y _stock de la tabla wp_postmeta, de la siguiente manera
$product_id = wc_get_product_id_by_sku($sku);
update_post_meta ($product_id, '_regular_price', $precio);
update_post_meta ($product_id, '_price', $precio);
update_post_meta ($product_id, '_stock', $stock);
Hasta aquí todo va bien, sin problemas, se actualizan los precios y el stock, PERO EL PROBLEMA ES EL SIGUIENTE:
1. Ingreso a la tienda y veo los productos que cuentan con Stock = 0, cuando la tienda esta configurada para no mostrarlos ( Imagino que wordpress tiene otro campo que le indica en ejecución regular que el campo ya llego a 0 (cero),
POR FAVOR PODRÍAN INDICARME QUE CAMPO ES ESTE, O CUAL ES LA SOLUCIÓN, HAY ALGUNA FUNCIÓN de WORDPRESS QUE ME PERMITA ACTUALIZAR EL STOCK Y AUTOMÁTICAMENTE REALICE TODOS LOS PROCEDIMIENTOS SECUNDARIOS QUE HACE WORDPRESS EN EJECUCION REGUALAR?
Muchas gracias por su tiempo y apoyo
URL del sitio: Contenido solo visible a usuarios registrados
Hola
Sólo estas actualizando el post meta, pero hay más cosas implicadas, como los transients por ejemplo, revisa:
https://stackoverflow.com/questions/51940338/updating-product-stock-programmatically-in-woocommerce-3
Saludos.
Gracias por la información,
por si a alguien le sirve la solucion era agregar
wc_update_product_stock_status($product_id,1);
Con esto se sincronizando los estados
Hola.
Genial !!! me alegra que encontraras la solución.
Gracias por informarnos y aportar la solución.
Cerramos el tema.
Un saludo