Estamos trabajando en un 1.9 & php7; detectó este problema con PayPal como sospechoso de fraude (debido al monto de la diferencia).
Todo correcto en la interfaz (aplicar impuestos); pero en la comprobación y el cálculo, magento usa el total general sin impuestos.
Cálculo real del pedido incorrecto:
Precio del producto sin impuestos + envío con impuestos = monto total a pagar
Cambie a php5 y el cálculo es correcto.
¿Alguna idea?
¡Gracias!
magento-1.9
tax
php-7
Joan M
fuente
fuente
Respuestas:
Solución
Creé un módulo de magento para resolver problemas de magento con el cálculo de totales para php7. Los problemas que experimenté en particular fueron que los impuestos se han agregado dos veces al total general de pago con el módulo amazon en la página de pago de amazonpayments.
Créditos
La respuesta proporcionada por archigrafix en esta publicación ( /magento//a/97107/35665 ) resolvió mis problemas, por lo que esta es simplemente la solución empaquetada en un módulo.
Módulo:
https://github.com/hartmut-ltd/magento-php7-totals-fix
fuente
Realmente no sé si esto ayudará de alguna manera, pero hay algo que considerar.
Es posible que su
collecttotals
orden modelo esté ordenando de manera diferente, y que el impuesto se ordene / aplique después de grand_totalPuede probar si este es el problema de la siguiente manera. (tenga en cuenta que esto implica ajustar un archivo central para obtener información de depuración, ¡no intente esto en un sitio en vivo!)
Edite el método ubicado en:
Mage_Sales_Model_Quote_Address::collecttotals
y agregue una línea al método, lo que le permitirá generar los modelos a medida que se procesan.
asegúrese de que el registro esté habilitado.
seguir el archivo de registro a través de la consola:
tail -f system.log
Reproduzca el problema a través de la interfaz.
Obtendrá entradas de la siguiente manera en su registro (esto de un vainilla 1.9.2.2 - puede tener otras entradas)
Verá que se repite, así que solo vea dónde comienza y termina, debería ser fácil ver el patrón
Tenga en cuenta las dos últimas entradas anteriores: el impuesto viene antes de grand_total. Se puede ser posible este orden está fuera de control, y el impuesto está apareciendo después grand_total, por lo que no tendrá grand_total impuestos aplicada.
EDITAR:
Ok, entonces no vi que la pregunta referida en realidad apunta a la clasificación de los colectivos como el problema. Sospeché que ese podría ser el problema, pero no lo he probado yo mismo en PHP7
Hay una solución, pero no es muy agradable. Cualquier nueva extensión colocada en la tienda, que inserte modelos en el colector, debería anotarse y agregarse adicionalmente a la clasificación, de lo contrario, las cosas podrían salir aún más mal. Puede ser un problema de mantenimiento en el futuro.
Simplemente fuerce el orden de clasificación colocando un específico
<sort_order>
en la configuración de totales. Puede hacerlo a través de su propia extensión, que solo tendría un config.xml, donde puede especificar el orden de cada recopilador.en config.xml, tenga la directiva como tal:
Use espacios grandes entre cada directiva de clasificación, para permitir espacio para insertar más en el futuro.
Como se mencionó, no es muy elegante, pero puede resolver su problema inmediato.
También tenga en cuenta que hay otras directivas de recopiladores en el sistema, por lo que también pueden estar equivocadas / necesitan un ajuste
Compruebe la extensión de ventas principal config.xml y busque
<totals>
Allí encontrarás:
Puede haber otros en otras extensiones, ya sea núcleo / tercero
Espero que ayude.
PD: no he probado nada de esto en PHP7. Sé que la colocación de la directiva sort_order funciona en php5.x
fuente
En Magento 1.6.2 y PHP 7.0.2 lo resolví de esta manera:
1 - Creé primero un config.xml local: Copiado /app/code/core/Mage/Sales/etc/config.xml en /app/code/local/Mage/Sales/etc/config.xml
2 - Lo cambié así
Ahora se calcula correctamente:
fuente