Jump to content

Añadir funcionalidad añadir pedido


Recommended Posts

Buenas,

 

estoy intentando en Prestashop 1.7 que cuando cree un pedido que escriba un fichero de exportacion y he estado buscando por el codigo y lo unico que encontre modificar el fichero classes/order/Order.php en la funcion  add($autodate = true, $null_values = true) pero parece ser que esta no es la llama cuando se inserta un pedido, sabeis donde esta esa funcionalidad?

 

Gracias!

Link to comment
Share on other sites

Al final he creado un modulo:

<?php



Class TestHook extends Module {

    public function __construct()

    {

        $this->name = 'test';

        $this->version = '1.00.0';

        $this->author = 'user';

        $this->displayName = $this->l('TestHook ');

        $this->description = $this->l('TestHook  Descripción');

        $this->controllers = array('default');

        $this->bootstrap = 1;

        parent::__construct();

    }

    

    public function install()

    {

        if( !parent::install() || !$this->registerHook('actionValidateOrder'))

            return false;

        return true;

    }

    

    public function uninstall()

    {

        if( !parent::uninstall() || !$this->unregisterHook('actionValidateOrder'))

            return false;

        return true;

    }

    

    public function hookActionValidateOrder($params)

    {

        $details = $params['order'];



        echo "<pre>";

        print_r($details);

        echo "<pre>";

    }

}

pero claro como hago para que se lance ese codigo? pq he instalado el modulo y he creado un nuevo pedido desde el admin para probar, pero no ha aparecido la accion que le tengo en pantalla para que muestre, se que tiene que ser una tonteria que se me ha pasado

 

EDIT: habia puesto el registerHook mal y tiene que apuntar al suyo

EDIT 2: sigue sin mostrarme los datos cuando añado un pedido

EDIT 3: SOLUCIONADO.

 

muchas gracias

Edited by karpoj23 (see edit history)
Link to comment
Share on other sites

Una cosa que no veo por ejemplo, he cogido el parametro cart, pero no veo el numero de unidades que ha comprado, como podria acceder a order_details y order_state? pq veo que se pueden hacer select, add y update de los params que estan en ese, pero no en otra tabla por ejemplo de customer, cart, order...

Link to comment
Share on other sites

Los hook Action, no muestran nada en la pantalla, deben ser los hook display

En los action SI puedes guardar ficheros, llamadas CURL,  y otras opciones

Utliza la variable ($params) dentro de los hook de pedidos, de esa manera leeras los datos del pedido

Ej:

public function hookActionOrderStatusPostUpdate($params)		{			
            /* Place your code here. */						
            $id_orden = $params['id_order'];
}

Para leer los productos

$order = new Order($id_orden);
$products = $order->getProducts();

foreach ($products AS $producto){

$cantidad_pro_order = $producto['product_quantity'];
            $idattr = $producto["product_attribute_id"]

}

 

Edited by gusman126 (see edit history)
Link to comment
Share on other sites

acabo de hacerlo tb de otra manera, aunque creo que tu manera es mejor:

 

 $orderDetailList = mysqli_query($db, 
        "SELECT * FROM ps_order_detail a 
        join ps_product b on a.product_id=b.id_product 
        where a.id_order=". $order->id);

 

Link to comment
Share on other sites

hace 9 minutos, karpoj23 dijo:

acabo de hacerlo tb de otra manera, aunque creo que tu manera es mejor:

 


 $orderDetailList = mysqli_query($db, 
        "SELECT * FROM ps_order_detail a 
        join ps_product b on a.product_id=b.id_product 
        where a.id_order=". $order->id);

 

No me gusta hacer llamadas a SQL en los modulos, prefiero usar las Classes incluidas

https://gmartos.es/indice-de-classes-y-metodos-de-prestashop/

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...