Come faccio ad attivare il trasporto libero in backend solo (per l'inserimento dell'ordine)
-
16-10-2019 - |
Domanda
Come faccio ad attivare trasporto libero come metodo di trasporto quando si crea ordine dal pannello di amministrazione?
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.