irodriguez Posted March 18, 2015 Share Posted March 18, 2015 He encontrado unos pequeños bugs en la parte de order opc de Prestashop. En la versión 1.0.6.14, con el tema por defecto, al ir al carrito y cambiar la dirección sobre la que se aplican los impuestos, el precio unitario no solo no se actualiza, si no que además si existe un descuento, éste desaparece. Aquí dejo como solucionarlo: 1. En themes/default-bootstrap/js/order-opc.js buscar: if ($(this).find('.cart_unit span').length > 0 && $(this).find('.cart_unit span').attr('id').length > 0) $(this).find('.cart_unit span').attr('id', $(this).find('.cart_unit span').attr('id').replace(/_\d+$/, '_'+idAddress_delivery)); Cambiar por: if ($(this).find('.cart_unit ul').length > 0 && $(this).find('.cart_unit ul').attr('id').length > 0) $(this).find('.cart_unit ul').attr('id', $(this).find('.cart_unit ul').attr('id').replace(/_\d+$/, '_'+idAddress_delivery)); Con esto, conseguiremos que el precio unitario cambie al cambiar la dirección. Sólo en el tema original, si habéis modificado vuestro tema y la parte de unit price no es una lista (ul) no funcionará. Y el tema de los descuentos, en controllers/front/OrderOpcController.php, buscar: foreach ($result['summary']['products'] as $key => &$product) { $product['quantity_without_customization'] = $product['quantity']; if ($result['customizedDatas']) { if (isset($result['customizedDatas'][(int)$product['id_product']][(int)$product['id_product_attribute']])) foreach ($result['customizedDatas'][(int)$product['id_product']][(int)$product['id_product_attribute']] as $addresses) foreach ($addresses as $customization) $product['quantity_without_customization'] -= (int)$customization['quantity']; } } Y cambiarlo por: foreach ($result['summary']['products'] as $key => &$product) { $product['quantity_without_customization'] = $product['quantity']; if ($result['customizedDatas']) { if (isset($result['customizedDatas'][(int)$product['id_product']][(int)$product['id_product_attribute']])) foreach ($result['customizedDatas'][(int)$product['id_product']][(int)$product['id_product_attribute']] as $addresses) foreach ($addresses as $customization) $product['quantity_without_customization'] -= (int)$customization['quantity']; } $product['price_without_quantity_discount'] = Product::getPriceStatic( $product['id_product'], !Product::getTaxCalculationMethod(), $product['id_product_attribute'], 6, null, false, false); } Y con eso, se actualizará el descuento, si existiera, en lugar de desaparecer. Un saludo. Link to comment Share on other sites More sharing options...
Goyo Posted March 19, 2015 Share Posted March 19, 2015 Gracias por el aporte irodriguez. Link to comment Share on other sites More sharing options...
Recommended Posts