Añadir el número de carrito a la lista de pedidos en Prestashop 1.7.7 o superior

  Sin categoría

Este codigo puede servir de punto de partida para añadir otras columnas al listado.

Localizamos el archivo OrderGridDefinitionFactory.php ubicado en el directorio src / Core / Grid / Definition / Factory

Localizamos el siguiente código:

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

Y a continuación añadimos el siguiente código:

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

Localizamos el siguiente codigo:

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

Y a continuación añadimos el siguiente código:

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

Con esto hemos añadido la columna y un recuadro de búsqueda

Cerramos y abrimos el siguiente archivo: OrderQueryBuilder.php  que se encuentra en el directorio src / Core / Grid / Query

Localizamos el siguiente codigo:

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

Lo anulamos con // y ponemos este otro a continuación:

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

Localizamos esta línea que aparece en dos ocasiones:

'id_order' => 'o.id_order',

Y agregamos esta a continuación en ambos casos:

'id_cart' => 'o.id_cart',

Este código proporciona una nueva columna que muestra el ID del carrito entre las columnas ID Referencia, un campo de búsqueda y la ordenar el listado por número de carrito.