способы оплаты magento - включить только для администратора - PullRequest
9 голосов
/ 18 января 2010

Мне нужно включить способ оплаты чеком / денежным переводом, чтобы наша команда колл-центра клиентов могла создавать заказы у администратора.

Однако мы не хотим, чтобы клиенты, покупающие онлайн через веб-сайт, использовали этот способ оплаты,

Кто-нибудь знает, как я могу это сделать?

С уважением, Фиона

Ответы [ 5 ]

14 голосов
/ 20 сентября 2012

Два варианта:

1)
Переопределите (используя никогда не изменяйте оригинал и не добавляйте / local / Mage / override) способ оплаты (или просто измените его, если это ваш собственный метод), и добавьте следующее:

protected $_canUseInternal              = true;
protected $_canUseCheckout              = false; 
protected $_canUseForMultishipping      = false;

2)
Создайте наблюдателя на внешнем интерфейсе для события payment_method_is_active и установите для неактивных методы, которые вы не хотите показывать на внешнем интерфейсе:

   <config>
       <frontend>
           <events>
        <payment_method_is_active>
            <observers>
                       ... your observer here


 public function your_observer($event){

      $method = $event->getMethodInstance();
      $result = $event->getResult();

      if( $method should not be active in frontend ){

            $result->isAvailable = false;
      }

 }
0 голосов
/ 23 марта 2015

Проверьте настройки конфигурации, как показано ниже.Если вы хотите проверить, активен ли customcarrier_fastways, используйте код, подобный следующему:

$shippingMethod="customcarrier_fastways";
$shippingMethodActive= Mage::getStoreConfig('carriers/'.$shippingMethod.'/active', Mage::app()->getStore()->getId());
$showAtFront= Mage::getStoreConfig('carriers/'.$shippMethod.'/showatfront', Mage::app()->getStore()->getId());
    if($shippingMethodActive && $showAtFront){
    // do  something here...
    }

Хотя переменные определены в файле XML, как показано ниже:

<carriers translate="label" module="shipping">
        <groups>

             <customcarrier_fastways translate="label">
                <label>Fastways</label>
                <frontend_type>text</frontend_type>
                <sort_order>1</sort_order>
                <show_in_default>1</show_in_default>
                <show_in_website>1</show_in_website>
                <show_in_store>1</show_in_store>
                <fields>

                    <active translate="label">
                        <label>Enabled</label>
                        <frontend_type>select</frontend_type>
                        <source_model>adminhtml/system_config_source_yesno</source_model>
                        <sort_order>1</sort_order>
                        <show_in_default>1</show_in_default>
                        <show_in_website>1</show_in_website>
                        <show_in_store>0</show_in_store>
                    </active>           


                     <showatfront translate="label">
                        <label>Show on checkout</label>
                        <frontend_type>select</frontend_type>
                        <source_model>adminhtml/system_config_source_yesno</source_model>
                        <sort_order>1</sort_order>
                        <show_in_default>1</show_in_default>
                        <show_in_website>1</show_in_website>
                        <show_in_store>0</show_in_store>
                    </showatfront>

                </fields>
            </customcarrier_fastways>

        </groups>
    </carriers>
0 голосов
/ 27 октября 2014

Я пытался использовать решение № 1 от Enriques, чтобы скрыть один способ оплаты во внешнем интерфейсе, только чтобы показать его администратору:

protected $_canUseInternal              = true;
protected $_canUseCheckout              = false; 
protected $_canUseForMultishipping      = false;

Кажется, работает нормально, когда я тестирую, и вообще ..

НО .. Я до сих пор иногда получаю обычные заказы, использующие мой "скрытый" способ оплаты. Как Magento иногда не может использовать фрагмент кода выше.

Кто-нибудь знает, почему это происходит и как этого избежать?

Спасибо

-Espen

0 голосов
/ 07 мая 2010

Только что нашел это, похоже, это то, что вы ищете: http://www.magentocommerce.com/boards/viewthread/38765/P15/

0 голосов
/ 18 января 2010

Если вы включите его в глобальном представлении конфигурации, а затем отключите его для представления вашего магазина / веб-сайта, это работает? (У меня нет системы, удобной для тестирования ...)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...