Domanda

Io sono l'attuazione di un plug-in per un cliente che utilizzerà il 'Sale quantità massima' valore di una Magento Articolo Articolo su un prodotto come un mezzo di impostare un limite superiore sul totale acquisti dei clienti.

Perché ho bisogno di controllare questa condizione in più eventi, azioni di controllo, non posso contenerlo al solo un osservatore in cui ho potuto creare una funzione protetta locale che controlla questa condizione dal mio modello di risorse.

In mie esigenze sarò limitando le aggiunte della spesa. Ma mi trovo in un dilemma: dal addAction controllo ho bisogno di fare affidamento su throw - però da sales_quote_merge_before sembra che ho potuto disinserire in modo efficace i prodotti offendere e inviare un messaggio al customer/session, però, ho potuto lanciare e cattura, rispettivamente con l'azione di controllo, invece.

Le mie domande sono:

  • È cattiva pratica in modo efficace affidarsi throw dal aiutante modulo?
  • E 'questo, piuttosto, un metodo di modello che ho bisogno di richiamare?
  • Qual è la migliore strategia di progettazione che mi permette di mantenere il mio modulo SECCO?

Modifica

A partire dal EE 1.12 vedo solo 4 istanze di file Helper/Data.php che gettano - 3 di loro sono API2 / OAuth. Mage / Nucleo lo fa una volta pure, ma questo sembra essere l'unico altro esempio. Vari 3 parti sembrano adottano approcci diversi qui.

Qualsiasi commento è benvenuto.

È stato utile?

Soluzione

Dire al cliente, "Ci dispiace, non è possibile acquistiamo tanto" è un'eccezione. Il caso è previsto, c'è abbastanza e si mette i prodotti nel carrello. E una parola di più: ci sono try e catch blocchi all'interno di Magento, ad esempio in \Mage_Checkout_CartController::addAction:

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

Lasciatemi dire in questo modo: Sono lì da utilizzare: -)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top