¿Cómo gestionar el número del pedido de Prestashop?

El número de pedido de PrestaShop se genera una vez que se finaliza el pago. Por lo tanto, cuando Prestashop llama a la plataforma de pago, el número de pedido no existe. Solo se genera el número de carrito de compra y se envía a la plataforma de pago.

En el Back Office Vendedor, el número de pedido registrado corresponde al número de carrito de compra de Prestashop.

Por lo tanto, es normal no encontrar el número de pedido en los correos electrónicos de confirmación de pago enviados por Cobro Inmediato. Solo aparece el número del carrito de compra.

Modificación del código de Prestashop:

Proponemos una modificación del código de Prestashop para mostrar el número del carrito de compra en el cuadro de pedidos de Prestashop.

Para las versiones anteriores a Prestashop 1.7.7.0

Abra el siguiente archivo: AdminOrdersController.php (directorio controllers / admin)

Después del siguiente código (sobre la línea 82):

$this->fields_list = array
( 'id_order' => array(
'title' => $this->trans('ID', array(), 'Admin.Global'),
'align' => 'text-center', 
'class' => 'fixed-width-xs' 
),

Agregue el siguiente código:

'id_cart' => array(
'title' => $this->l('Panier'), 
'align' => 'center', 
'width' => 25), 

La inclusión de este código permitirá la exhibición de una columna Carrito de compra entre las columnas ID y Referencia.

Para las versiones superiores o iguales a Prestashop 1.7.7.0

Abra el siguiente archivo: OrderGridDefinitionFactory.php (directorio src / Core / Grid / Definition / Factory)

Después del siguiente código (sobre la línea 188):

->add((new IdentifierColumn('id_order'))
            ->setName($this->trans('ID', [], 'Admin.Global'))
            ->setOptions([
                'identifier_field' => 'id_order',
                'preview' => $previewColumn,
                'clickable' => false,
            ])
        )

Agregue el siguiente código:

->add((new IdentifierColumn('id_cart'))
            ->setName($this->trans('ID Panier', [], 'Admin.Global'))
            ->setOptions([
                'identifier_field' => 'id_cart',
                'preview' => $previewColumn,
                'clickable' => false,
            ])
        )

Después del siguiente código (sobre la línea 321):

->add((new Filter('id_order', TextType::class))
            ->setTypeOptions([
                'required' => false,
                'attr' => [
                    'placeholder' => $this->trans('Search ID', [], 'Admin.Actions'),
                ],
            ])
            ->setAssociatedColumn('id_order')
        )

Agregue el siguiente código:

->add((new Filter('id_cart', TextType::class))
            ->setTypeOptions([
                'required' => false,
                'attr' => [
                    'placeholder' => $this->trans('Recherche ID panier', [], 'Admin.Actions'),
                ],
            ])
            ->setAssociatedColumn('id_cart')
        )

Abra el siguiente archivo: OrderQueryBuilder.php (directorio src / Core / Grid / Query)

Reemplace el siguiente código (aproximadamente en la línea 92):

->addSelect('o.id_order, o.reference, o.total_paid_tax_incl, os.paid, osl.name AS osname')

Por:

->addSelect('o.id_order, o.id_cart, o.reference, o.total_paid_tax_incl, os.paid, osl.name AS osname')

Después del siguiente código (sobre la línea 165):

'id_order' => 'o.id_order',

Agregue el siguiente código:

'id_cart' => 'o.id_cart',

Después del siguiente código (sobre la línea 300):

'id_order' => 'o.id_order',

Agregue el siguiente código:

'id_cart' => 'o.id_cart',

La inclusión de este código permitirá la exhibición de una columna Carrito de compra entre las columnas ID y Referencia. También estarán disponibles un campo de búsqueda y la clasificación por número de carrito de compra.