Hola @gonzalosevilla, la necesidad de una tabla de combinaciones es algo recurrente para tiendas con catálogos complejos. El comportamiento por defecto de PrestaShop, incluso en la versión 8.0.4, prioriza los desplegables por su simplicidad en la interfaz de usuario para la mayoría de los casos.
Para implementar una tabla de combinaciones, como bien mencionan @diegoonline38 y @paula94, lo más adecuado es realizar una modificación directa en el archivo de plantilla que renderiza estas variantes. Asumiendo que usas el tema Classic (que es el más común), el archivo a modificar es themes/classic/templates/catalog/_partials/product-variants.tpl.
La mejor práctica es crear un tema hijo si no lo tienes ya, y copiar este archivo a la misma ruta dentro de tu tema hijo. Así, tus cambios no se perderán con futuras actualizaciones del tema padre. Dentro de ese archivo, deberías buscar la sección donde se renderizan los desplegables ({foreach from=$groups item='group'}) y reemplazarla con tu estructura de tabla. Aquí tienes un ejemplo básico de cómo podrías recorrer las combinaciones y mostrarlas:
<table class="table table-striped table-bordered">
<thead>
<tr>
<th>Combinación</th>
<th>Referencia</th>
<th>Precio</th>
<th>Stock</th>
</tr>
</thead>
<tbody>
{foreach from=$product.combinations item='combination' key='id_product_attribute'}
<tr data-id-combination="{$id_product_attribute}">
<td>{$combination.attribute_designation}</td>
<td>{$combination.reference}</td>
<td>{$combination.price} {$currency.sign}</td>
<td>{$combination.quantity}</td>
</tr>
{/foreach}
</tbody>
</table>
Este código HTML/Smarty iterará sobre la variable {$product.combinations} que ya contiene toda la información necesaria. Deberás ajustar el CSS en tu custom.css para darle el estilo deseado y ocultar los desplegables originales. También es importante probar bien la interacción con el JavaScript de PrestaShop, especialmente si los precios o el botón de añadir al carrito se actualizan dinámicamente al seleccionar una fila de la tabla. Podrías necesitar alguna lógica JS adicional para vincular la selección de una fila con la actualización del precio principal del producto.