Hola @pabloweb, @lorenadev12 tiene razón, la configuración estándar de PrestaShop 8.2.3 no ofrece una forma directa de deshabilitar un método de pago basándose en el valor del carrito o el historial de pedidos del cliente. La solución más limpia para esto es crear un override del módulo de pago contra reembolso.
Necesitas crear un archivo en la ruta override/modules/ps_cashondelivery/ps_cashOnDelivery.php (si usas el módulo estándar ps_cashondelivery). Dentro de este archivo, deberás extender la clase original del módulo y modificar el método getPaymentOptions() para añadir tu lógica condicional. Así es como podrías hacerlo:
class Ps_CashOnDelivery extends Ps_CashOnDeliveryCore
{
public function getPaymentOptions()
{
$payment_options = parent::getPaymentOptions();
$context = Context::getContext();
$cart_total = $context->cart->getOrderTotal(true, Cart::BOTH);
// Deshabilitar si el total del carrito es superior a 1000 EUR
if ($cart_total > 1000) {
return [];
Después de crear este archivo, ve a 'Parámetros avanzados > Rendimiento' en tu Back Office y haz clic en 'Borrar la caché' para que PrestaShop detecte el override. Esto hará que el módulo de contra reembolso se oculte automáticamente bajo las condiciones que has especificado.