Jump to content

no puedo obtener la referencia del producto en los productos con combinaciones


Recommended Posts

hola, que tal. Tengo un modulo de ps (diseñado por mi) para actualizar el stock de la tienda fisica cada vez que se hace una venta online. Entonces lo que hago es buscar por la referencia del producto en la base de datos de la tienda fisica para actualizar el stock. Me funciona bien para los productos simples, pero para los que tienen combinaciones no me obtiene la referencia. Este es el codigo del hook que se lanza cada vez que hay una venta en ps:
 

    public function hookActionPaymentConfirmation($params)
    {


        $db = \Db::getInstance();
        //$products = $params['cart']->getProducts(true);//en los nuevos ps ya no va y hay que hacerlo con las dos ordenes siguientes
        $order = new Order($params['id_order']);
    $products = $order->getCartProducts();
        foreach ($products as $product)
        {
            $id_product = $product['id_product'];
            $cantidad = $product['cart_quantity'];
            $referencia = $product['reference'];
            $unidades = $db->getValue('SELECT unidades FROM productos WHERE codigo_de_barras = "'.$referencia.'"');
            $unidadesRestantes=$unidades-$cantidad;
            $db->Execute('UPDATE productos SET unidades="'.$unidadesRestantes.'" WHERE codigo_de_barras = "'.$referencia.'"');
            mail("[email protected]", "yay", $id_product." ".$referencia." ".$cantidad);
    }
        
    
    }

como se puede observar mando un email a mi cuenta con el id,la referencia y la cantidad. Pues en la referencia no imprime nada. ¿como puedo obtener la referencia de un producto con combinaciones? Mi version de prestashop es la 1.7.8.6.

Un saludo.

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

  • 4 weeks later...

Puede probar el siguiente método para obtener la referencia:

foreach ($products as $product)
        {
            $id_product = $product['id_product'];
            $cantidad = $product['cart_quantity'];
            $product_obj = new Product($id_product);
            $referencia = $product_obj->reference;

            $units = $db->getValue('SELECT units FROM products WHERE barcode_de_bars = "'.$reference.'"');
            $unitsRemaining=$units-$quantity;
            $db->Execute('UPDATE products SET units="'.$unitsRemaining.'" WHERE barcode = "'.$reference.'"');
            mail("[email protected]", "yay", $id_product." ".$referencia." ".$cantidad);
        }

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...