Come faccio ad attivare il trasporto libero in backend solo (per l'inserimento dell'ordine)

magento.stackexchange https://magento.stackexchange.com/questions/630

  •  16-10-2019
  •  | 
  •  

Domanda

Come faccio ad attivare trasporto libero come metodo di trasporto quando si crea ordine dal pannello di amministrazione?

È stato utile?

Soluzione

Ignora

app/code/core/Mage/Shipping/Model/Carrier/Freeshipping.php

E add

    public function collectRates(Mage_Shipping_Model_Rate_Request $request)
    {
        if (!$this->getConfigFlag('active')) {
            return false;
        }

if (!Mage::app()->getStore()->isAdmin())) {
            return false;
        }

E impostato attivo nel backend

È possibile inserire il codice in locale, se non si desidera sovrascrivere il nucleo

Posso immaginare che aggiungiamo questo come opzione supplementare in ambienti di back-end e in questo modo rendere più configurabile.

Altri suggerimenti

Mentre nella modalità di pagamento è possibile attivarle con una bandiera solo sul frontend e anche sul back-end (ma non viceversa), per i metodi non ci sono tali bandiere a tutto il trasporto.

Si potrebbe derivare un proprio metodo di spedizione in un modulo personalizzato e getAllowedMethods() sovrascrittura per determinare se l'ordine deve essere creata nel frontend o nel backend,

Una semplice soluzione potrebbe essere quella di creare una regola di spesa di libero-trasporto con un codice promozionale che solo tu conosci. Questo quindi può essere semplicemente inserito nel backend.

Si potrebbe fare collectRates () restituiscono vuoto a meno che è in fase di chiamata tramite admin. Come sapere se il suo invocato via admin, così è possibile impostare un valore di Registro di sistema.

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