dostoyevski Posted July 5, 2022 Share Posted July 5, 2022 (edited) 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 July 5, 2022 by dostoyevski (see edit history) Link to comment Share on other sites More sharing options...
ventura Posted July 7, 2022 Share Posted July 7, 2022 Para la referencia de los atributos tendrás que acceder mediante el método, getAttributeCombinations, ejemplo $combinations = $products->getAttributeCombinations($this->context->language->id); Link to comment Share on other sites More sharing options...
Knowband Plugins Posted August 3, 2022 Share Posted August 3, 2022 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now