Pregunta

Me estoy poniendo en práctica un plugin para un cliente que utilizará la 'Max venta Cantidad' valor de un artículo de Magento en un producto como un medio de establecer un límite superior de ruedas sobre las compras totales de clientes.

Debido a que tengo que comprobar esta condición en múltiples eventos, acciones del controlador, no puedo contenerlo a un simple observador en el que podía crear una función protegida local que comprueba esta condición de mi modelo de recurso.

En mis requisitos que se le limitarán las adiciones carrito. Pero me encuentro en un dilema: Del addAction controlador necesito confiar en throw - sin embargo, a partir sales_quote_merge_before parece que podría desarmar efectivamente los productos falsificados y de enviar un mensaje a la customer/session, sin embargo, podría lanzar y coger, respectivamente, con la acción del controlador en su lugar.

Mis preguntas son:

  • ¿Es esta mala práctica de manera efectiva depender de throw del ayudante módulo?
  • ¿Es esto, más bien, un método modelo que necesito para invocar?
  • ¿Cuál es la mejor estrategia de diseño que me permite mantener mi SECO módulo?

Editar

A partir de EE 1,12 veo sólo 4 casos de archivos Helper/Data.php que lanzan - 3 de ellos son API2 / Oauth. Mago / Core lo hace una vez así, pero esto parece ser el único otro ejemplo. Varios 3 partes parecen que toman diferentes enfoques aquí.

Cualquier comentario es bienvenido.

¿Fue útil?

Solución

Decir al cliente, "lo sentimos, que podemos no comprar tanto" es una excepción. El caso es de esperar, no es suficiente y se puso a los productos en el carrito. Y una cosa más: Hay bloques try y catch dentro de Magento, por ejemplo, en \Mage_Checkout_CartController::addAction:

// [...]
} catch (Mage_Core_Exception $e) {
        if ($this->_getSession()->getUseNotice(true)) {
            $this->_getSession()->addNotice(Mage::helper('core')->escapeHtml($e->getMessage()));
// [...]

Permítanme decirlo de esta manera: Ellos están ahí para ser utilizados: -)

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