Pregunta

Recientemente hice un módulo que calcula el margen bruto real para cada pedido y orden_item en función de los datos de costos de envío que importo. Hice esto agregando 2 columnas al sales_flat_order mesa y el sales_flat_order_item mesa. Esto pareció funcionar muy bien, hasta que me di cuenta de que cuando guardé los datos importados, también actualizó el actualizado_at valor. Dado que esta fue la primera importación de todos los pedidos, ahora todos informan que se han actualizado hoy. Esto está desechando informes y otro software de envío que se sincroniza con él.

Esto me lleva a 2 preguntas:

  1. ¿Agregar una columna a una tabla existente (en este caso, las tablas de ventas) es un gran no-no?
  2. Si no, ¿hay alguna forma de establecer los datos que no aumentan el actualizado_at ¿valor?

Si ayuda, el código que realmente escribe los datos está dentro de mi IndexController.php expediente. Se dispara a través de la colección de pedidos y los elementos dentro de esos pedidos y establece los valores necesarios utilizando algo como $order->setGrossMargin($orderGM)->save();. Me imagino que es la llamada a save() Eso lo está haciendo, pero no estoy seguro de la manera correcta en este problema.

Mientras tanto, estoy trabajando en una solución en la que importo los datos en tablas personalizadas y solo leo desde las tablas de ventas cuando sea necesario. De cualquier manera, es un buen ejercicio :)

Brio

¿Fue útil?

Solución

En lugar de llamar a Save (), ¿lo intentaste?

$order->getResource()->saveAttribute('gross_margin')

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top