Wie aktiviere ich nur kostenlosen Versand im Backend (für Bestelleintrag)
-
16-10-2019 - |
Frage
Wie aktiviere ich kostenlosen Versand als Versandmethode, wenn wir Bestellung aus dem Administrator -Panel erstellen?
Lösung
Überschreiben
app/code/core/Mage/Shipping/Model/Carrier/Freeshipping.php
Und hinzufügen
public function collectRates(Mage_Shipping_Model_Rate_Request $request)
{
if (!$this->getConfigFlag('active')) {
return false;
}
if (!Mage::app()->getStore()->isAdmin())) {
return false;
}
Und auf aktives Backend eingestellt
Sie können den Code in lokaler Bestand haben, wenn Sie den Kern nicht überschreiben möchten
Ich kann mir vorstellen, dass wir dies als zusätzliche Option in den Backend -Einstellungen hinzufügen, und so macht es konfigurierbar.
Andere Tipps
Während es in Zahlungsmethoden möglich ist, sie mit einer Flagge nur für Frontend und auch auf dem Backend (jedoch nicht um umgekehrt) zu aktivieren, gibt es für Versandmethoden überhaupt keine solchen Flaggen.
Sie können eine eigene Versandmethode in einem benutzerdefinierten Modul und überschreiben getAllowedMethods()
Um festzustellen, ob die Bestellung im Frontend oder im Backend erstellt werden soll,
Eine sehr einfache Problemumgehung wäre die Erstellung einer freien Cart-Regel mit einem Promo-Code, den Sie nur kennen. Dies kann dann einfach in das Backend eingegeben werden.
Sie würden die Collectrate () leer zurückgeben, es sei denn, es wird über Administrator aufgerufen. Wie Sie wissen, ob es über Administrator aufgerufen wird, können Sie einen Registrierungswert festlegen.