Mi producto cuesta cero de verdad. ¿Por qué aparece como si le faltara el coste?
WooCommerce borra el coste de una línea del pedido cuando es cero, así que una muestra gratis y un producto sin coste acaban siendo la misma ausencia en la base de datos.
La respuesta corta
Porque en una línea del pedido, WooCommerce borra el valor del coste cuando es cero en lugar de guardar un cero. Una muestra gratis y un producto al que nadie le puso coste se ven, por tanto, exactamente igual en la base de datos: sin ningún valor.
En lugar de adivinar cuál de los dos es, Merchgain siempre dice sin datos de coste y nunca coste 0. Las muestras gratis, los regalos y los extras descargables aparecerán en la lista de costes que faltan, y ningún plugin puede distinguirlos de los huecos reales.
Qué hace realmente WooCommerce
Cuando se guardan los datos de un artículo del pedido, el coste pasa por esto:
$cogs_value = (float) $cogs_value;
if ( 0.0 === $cogs_value ) {
$this->order_item_data_store->delete_metadata( $item->get_id(), '_cogs_value', '' );
} else {
$this->order_item_data_store->update_metadata( $item->get_id(), '_cogs_value', $cogs_value );
}
El cero borra la fila. Y un producto sin coste introducido devuelve 0 en get_cogs_total_value(),
así que los dos caminos acaban en el mismo borrado.
Hay una asimetría que conviene conocer: en el producto, un coste 0 sí se guarda, porque
el almacén de datos del producto solo borra cadenas vacías y matrices vacías. Así que a nivel
de producto, cero y sin coste se pueden distinguir. A nivel de línea del pedido, no.
Qué hacer
- Acepta que los regalos de verdad aparezcan en la lista. Están ahí porque los datos no pueden decir otra cosa, y un informe que los escondiera se estaría inventando información.
- Si el artículo sí tiene un coste, introdúcelo. Una taza promocional te costó algo comprarla e imprimirla; la cifra honesta es esa, no cero.
- Lee la cobertura como «ingresos con coste conocido», no como una nota que hay que llevar al 100 %. Una tienda que regala el 6 % de sus ingresos en muestras se quedará en el 94 % para siempre, y esa es la respuesta correcta.
Cómo lo muestra Merchgain
Dos fuentes distintas, a propósito. La lista de productos sin coste se lee a nivel de producto, donde cero y sin coste se distinguen. El porcentaje de cobertura se lee a nivel de línea del pedido, donde no se distinguen, así que responde a la única pregunta que esos datos pueden responder: qué parte de estos ingresos tiene un coste guardado.
La nota sobre los ceros a propósito está dentro del bloque de costes que faltan, junto a la lista, para que la primera persona que vea ahí sus muestras gratis tenga la explicación en la misma pantalla.
Respuestas relacionadas
¿No coincide con lo que ves en tu tienda? Escríbenos: leemos todos los mensajes. contact@merchgain.com