Как включить бесплатную доставку только в бэкэнде (для ввода заказа)
Как включить бесплатную доставку в качестве способа доставки при создании заказа из панели администратора?
4 answers
Переопределение
app/code/core/Mage/Shipping/Model/Carrier/Freeshipping.php
И добавить
public function collectRates(Mage_Shipping_Model_Rate_Request $request)
{
if (!$this->getConfigFlag('active')) {
return false;
}
if (!Mage::app()->getStore()->isAdmin())) {
return false;
}
И установлен в активное состояние в бэкэнде
Вы можете разместить код локально, если не хотите перезаписывать ядро
Я могу себе представить, что мы добавим это в качестве дополнительной опции в настройках бэкенда и таким образом сделаем его настраиваемым.
В то время как в способах оплаты их можно активировать с помощью флага только на интерфейсе, а также на бэкэнде (но не наоборот), для способов доставки таких флагов вообще нет.
Вы можете создать собственный метод доставки в пользовательском модуле и перезаписать getAllowedMethods()
, чтобы определить, должен ли заказ создаваться во внешнем интерфейсе или во внутреннем,
Очень простым обходным путем было бы создать правило бесплатной доставки корзины с промо-кодом, который знаете только вы. Это тогда может быть просто вошел в бэкэнд.
Вы бы заставили collectRates() возвращать пустой, если только он не вызывается через администратора. Как узнать, вызывается ли он через администратора, ну, вы могли бы установить значение реестра.
Я только что нашел бесплатное расширение с открытым исходным кодом на GitHub для этого: llian_freeadminshipping.