Hola @joaquin_tienda43, tus compañeros @javieradmin y @hugodev han dado en el clavo. El problema con la sobreescritura que has intentado es que, aunque extiendes la clase Customer, no estás modificando la estructura de la base de datos subyacente, ni añadiendo la lógica de negocio necesaria para que los puntos funcionen. Para una funcionalidad tan compleja como un sistema de puntos de fidelidad, que implica transacciones, historial y gestión tanto en el front como en el back office, las sobreescrituras de clases o controladores del core son una solución extremadamente frágil y costosa de mantener.
La forma correcta de abordar esto en PrestaShop 1.7.6.2 es a través de un módulo dedicado. Un módulo puede crear sus propias tablas de base de datos para almacenar los puntos y sus movimientos, añadir hooks para integrarse en el flujo de pedidos, e incluso crear pestañas y páginas en el Back Office para la gestión, y en el Front Office para la visualización del cliente. Así evitas romper el core en cada actualización.
Un ejemplo de cómo un módulo se engancharía para mostrar algo en la cuenta del cliente sería:
// En el archivo principal de tu módulo (p.ej., myloyaltymodule.php)
public function hookDisplayCustomerAccount($params)
{
if (!$this->active) {
return;
}
$customer = Context::getContext()->customer;
// Aquí es donde un módulo real consultaría su propia tabla de puntos
// Por ejemplo: $loyaltyPoints = MyLoyaltyPointsClass::getCustomerPoints($customer->id);
$loyaltyPoints = rand(50, 500); // Valor simulado para demostrar el hook
Este código es solo un fragmento de cómo se conectaría la visualización. La lógica de cómo se calculan, añaden y gestionan los puntos es mucho más amplia y reside en el módulo. Crear un módulo desde cero con todas esas funcionalidades es un proyecto considerable. Para una solución completa y lista para usar, que además te garantice compatibilidad con futuras versiones sin preocupaciones por las sobreescrituras, te recomiendo buscar un módulo profesional diseñado para este fin. Puedes echar un vistazo al módulo Puntos de fidelidad – Resumen de clientes y gestión de puntos que ofrece estas características.