Как включить бесплатную доставку только в бэкэнд (для входа за заказ)
-
16-10-2019 - |
Вопрос
Как включить бесплатную доставку в качестве метода доставки, когда мы создаем заказ с панели администратора?
Решение
Переопределить
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;
}
И принять участие в Backend
Вы можете поместить код в локацию, если не хотите перезаписать ядро
Я могу представить, что мы добавляем это в качестве дополнительной опции в настройках бэкэнд, и таким образом сделать его настраиваемым.
Другие советы
В то время как в методах оплаты можно активировать их с помощью флага только на фронте, а также на бэкэнд (но не наоборот), для методов доставки нет таких флага вообще.
Вы можете получить собственный метод доставки в пользовательском модуле и перезаписать getAllowedMethods()
Чтобы определить, должен ли порядок быть создан на блюде или в бэкэнде,
Очень простой обходной путь-это создание правила корзины с штрафной с промо-кодом, которое вы знаете. Это может быть просто введено в бэкэнд.
Вы сделаете Collectrates () возвращать пустым, если это не вызывает его через администратор. Как узнать, если бы он был вызван через администратор, вы можете установить значение реестра.