• leonardorodriguez

    (@leonardorodriguez)


    Hay un bug con el cálculo de días para vencimiento de ticket

    No se si es porque sigue con problemas para guardar/leer las opciones (ya vamos para el a?o, no?) o por algún otro motivo

    El punto es que entra venta con ticket y a los pocos minutos se cancela con “El pedido sin pagar ha sido cancelado – se ha alcanzado el limite de tiempo”

    Solución temporal:
    ./includes/modules/preferences/Wc_Woo_Mercadopago_PreferenceTicket.php

        public function get_date_of_expiration(WC_WooMercadoPago_TicketGateway $payment = null)
        {
    		/*
            $date_expiration = !is_null($payment)
                ? $payment->getOption('date_expiration')
                : $this->get_option('date_expiration', '');
    
            if($date_expiration != ""){
                return date('Y-m-d\TH:i:s.000O', strtotime('+' . $date_expiration . ' days'));
            }
    		*/
    		return date('Y-m-d\TH:i:s.000O', strtotime('+14 days'));
        }
    

    Donde +14 (o el número que pongas) son los días que das hasta vencimiento

    Favor de resolver

    NOTA:
    Y por las dudas, en ./includes/notification/WC_WooMercadoPago_Notification_Abstract.php

    Cambiar a esto:

        public static function get_wc_status_for_mp_status($mp_status)
        {
            $defaults = array(
                'pending' => 'on_hold',
                'approved' => 'processing',
                'inprocess' => 'on_hold',
                'inmediation' => 'on_hold',
                'rejected' => 'failed',
                'cancelled' => 'on_hold',
                'refunded' => 'refunded',
                'chargedback' => 'refunded'
            );
            $status = $defaults[$mp_status];
            return str_replace('_', '-', $status);
        }
    

    De esa forma, al menos, se mantiene “en espera” y no le manda mail al cliente para evitar llamados furiosos

Viewing 6 replies - 1 through 6 (of 6 total)
  • Plugin Author Mercado Pago

    (@mercadopago)

    Hola, @leonardorodriguez
    Este comportamiento puede ocurrir debido a una configuración de Woocommerce.
    Verifique la configuración del control de inventario, woocommerce tiene la opción de mantener el inventario (para pedidos no pagados) durante x minutos. Cuando se alcanza este límite, se cancelará el pedido pendiente. Siga la ruta para esta configuración en Woocommerce:
    Woocommerce> Configuración> Productos> Inventario> Mantener inventario (minutos)

    Equipo Mercado Pago

    Thread Starter leonardorodriguez

    (@leonardorodriguez)

    Exacto, lo que es un error de Mercadopago que fue avisado desde la primer V4 y se niegan a corregirlo

    Corregir ese bug con:
    ./includes/notification/WC_WooMercadoPago_Notification_Abstract.php

        public static function get_wc_status_for_mp_status($mp_status)
        {
            $defaults = array(
                'pending' => 'on_hold',
                'approved' => 'processing',
                'inprocess' => 'on_hold',
                'inmediation' => 'on_hold',
                'rejected' => 'failed',
                'cancelled' => 'on_hold',
                'refunded' => 'refunded',
                'chargedback' => 'refunded'
            );
            $status = $defaults[$mp_status];
            return str_replace('_', '-', $status);
        }

    De esa forma las compras entran como “en espera”. Con reserva de stock, vencimiento configurado en mpago, etc

    Bah, como debe ser.

    Thread Starter leonardorodriguez

    (@leonardorodriguez)

    Antes de que digas nada y al margen del unicornio todopoderoso: No. NO hay que adaptar woo a mpago. Es al revés. Mpago tiene que adaptarse a woo

    Thread Starter leonardorodriguez

    (@leonardorodriguez)

    Como 2da opinión, el error está en reinventar la rueda. Es Woo quien se ocupa de bajar/subir stock, con sus opciones o sus distintos order status

    La opción “Reducir inventario” en ticket está de más. Es woo quien ya decide por default cuándo subir/bajar inventario

    Si a eso le sumamos las dependencias de esa opción, como dejar las ventas en “Pendientes de pago”, o la necesidad de desactivar el vencimiento de orden desde woo, es un desastre en puerta

    El gateway de pago tiene que trabajar sobre el estado de la orden. Punto, ni más ni menos. Se acreditó el pago? Genial, pasar a “procesando”. No se acreditó el pago todavía? Genial, no tocar nada porque ya está en espera y woo se ocupa del resto

    Es cuando quieren meter mano donde no corresponde, que se viene todo abajo

    Thread Starter leonardorodriguez

    (@leonardorodriguez)

    Esto es lo que pasa cuando mercadopago se mete donde no debe (opinar sobre stock):

    Pago a través de Paga con tarjetas de débito y crédito

    Mercado Pago: Pago aprobado.
    16/12/2020 a las 15:44

    Niveles de inventario reducidos: nombreproducto (sku) 1→0
    16/12/2020 a las 15:44

    El estado del pedido cambió de Pendiente de pago a Procesando.
    16/12/2020 a las 15:44

    Niveles de inventario reducidos: nombreproducto (sku) 0→-1
    16/12/2020 a las 15:44

    Gracias chicos, re buen plugin ??

    Me equivoqué de ticket para comentar

Viewing 6 replies - 1 through 6 (of 6 total)
  • The topic ‘Bug en Ticket’ is closed to new replies.