2016-02-28 4 views
0

Есть возможность выбрать способ оплаты для каждого продукта?Magento - Способ оплаты для каждого продукта

Например: В моем магазине один продукт продается за «наличные деньги», поэтому к тому моменту, когда клиент покупает этот продукт, пурпурный активирует только вариант оплаты «в игре».

Что касается других продуктов, которые покупаются на реальные деньги, он отключает опцию оплаты «в игре» и позволяет оплатить кредитную карточку (для примера).

Я нашел несколько модулей, но проверял и не работал.

Спасибо-х

+0

вы можете сказать, какой модуль вы должны использовать? также, если есть оба продукта в телегах , но я надеюсь, что они сделают вашу работу http://www.blog.magepsycho.com/how-to-filter-payment-method-in-onepage-checkout/ –

+0

, пожалуйста, проверьте ниже ссылки для модулей https://www.magentocommerce.com/magento-connect/payment-method-per-product.html, https://www.magentocommerce.com/magento-connect/payment-restrictions-by-amasty. html –

+0

действительно решает вашу проблему – Rathinam

ответ

0

да, вы можете сделать это с помощью этого модуля. например, мы хотим наложенным платежом на некоторые товары ->

Сначала создайте атрибут продукта (имя: «magepal_payment_filter_by_product», введите: да/нет), чтобы идентифицировать эти продукты.

Например баз Magento v1.7 вы можете

Автоматического включения модуля оплаты программно [см] [1]

Включить весь применимый платежный модуль и фильтр, который модуль, чтобы показать, где

В/приложение/код/​​местные/MagePal/PaymentFilterByProduct/и т.д./config.xml

<?xml version="1.0"?> 
<config> 
<modules> 
    <MagePal_PaymentFilterByProduct> 
     <version>1.0.1</version> 
    </MagePal_PaymentFilterByProduct> 
</modules> 
<global> 
    <helpers> 
     <paymentfilterbyproduct> 
      <class>MagePal_PaymentFilterByProduct_Helper</class> 
     </paymentfilterbyproduct> 
     <payment> 
      <rewrite> 
       <data>MagePal_PaymentFilterByProduct_Helper_Payment_Data</data> 
      </rewrite> 
     </payment>    
    </helpers>  
</global> 
</config> 

В/приложения/код/​​местные/MagePal/PaymentFilterByProduct/Helper/Оплата/Da ta.php

<?php 
class MagePal_PaymentFilterByProduct_Helper_Payment_Data extends Mage_Payment_Helper_Data 
{ 

public function getStoreMethods($store = null, $quote = null) 
{ 
    $methods = parent::getStoreMethods($store, $quote); 

    if(!Mage::getStoreConfig('paymentfilterbyproduct/general_option/paymentfilterbyproduct_enable', Mage::app()->getStore()) || !$quote){ 
     return $methods; 
    } 

    //get a list of product in cart 
    $cart = Mage::getSingleton('checkout/session'); 

    $specialProductInCart = array(); 

    foreach ($cart->getQuote()->getAllItems() as $item) { 
     $specialProductInCart[] = $item->getMagepalPaymentFilterByProduct();     
    } 

    // if special product in cart 
    // need to if check $item->getMagepalPaymentFilterByProduct() return 'yes/no' or '0/1) 
    if(in_array('yes', $specialProductInCart)){ 
     $filter_csv = Mage::getStoreConfig('paymentfilterbyproduct/filter_option/paymentfilter_special_products', Mage::app()->getStore()); 
    } 
    else{ 
     $filter_csv = Mage::getStoreConfig('paymentfilterbyproduct/filter_option/paymentfilter_all_product', Mage::app()->getStore()); 
    } 

    $filter_array = explode(",", $filter_csv); 

    foreach ($methods as $k => $method){ 
     if(!in_array($method->getCode(), $filter_array)) 
      unset($methods[$k]);  
    }//methods 

    return $methods; 
} 
} 

В /app/code/local/MagePal/PaymentFilterByProduct/etc/system.xml

<?xml version="1.0"?> 
<config> 
<tabs> 
    <magepal translate="label" module="paymentfilterbyproduct"> 
     <label>MagePal</label> 
     <sort_order>900</sort_order> 
    </magepal> 
</tabs> 
<sections> 
    <paymentfilterbyproduct translate="label" module="paymentfilterbyproduct"> 
     <label>Payment Method Filter by Product</label> 
     <tab>magepal</tab> 
     <sort_order>1000</sort_order> 
     <show_in_default>1</show_in_default> 
     <show_in_website>1</show_in_website> 
     <show_in_store>1</show_in_store> 
     <groups> 
      <general_option translate="label"> 
       <label>General Options</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> 
        <paymentfilter_enable translate="label"> 
         <label>Enable Payment Filter</label> 
         <frontend_type>select</frontend_type> 
         <source_model>adminhtml/system_config_source_yesno</source_model> 
         <sort_order>50</sort_order> 
         <show_in_default>1</show_in_default> 
         <show_in_website>1</show_in_website> 
         <show_in_store>1</show_in_store> 
        </paymentfilter_enable> 
       </fields> 
      </general_option> 
      <filter_option translate="label"> 
       <label>Payment Method Filter Configuration</label> 
       <frontend_type>text</frontend_type> 
       <sort_order>2</sort_order> 
       <show_in_default>1</show_in_default> 
       <show_in_website>1</show_in_website> 
       <show_in_store>1</show_in_store> 
       <comment>Please enable all applicable payment methods in system payment config</comment> 
       <fields> 
        <paymentfilter_all_products translate="label"> 
         <label>Select Default Payment option for All Products</label> 
         <frontend_type>multiselect</frontend_type> 
         <source_model>MagePal_PaymentFilterByProduct_ActivePaymentMethod</source_model> 
         <sort_order>30</sort_order> 
         <show_in_default>1</show_in_default> 
         <show_in_website>1</show_in_website> 
         <show_in_store>1</show_in_store> 
        </paymentfilter_admin> 
        <paymentfilter_special_products translate="label"> 
         <label>Select Payments for Cart with Special Products</label> 
         <frontend_type>multiselect</frontend_type> 
         <source_model>MagePal_PaymentFilterByProduct_ActivePaymentMethod</source_model> 
         <sort_order>40</sort_order> 
         <show_in_default>1</show_in_default> 
         <show_in_website>1</show_in_website> 
         <show_in_store>1</show_in_store> 
        </paymentfilter_store> 
       </fields> 
      </filter_option> 
     </groups> 
    </paymentfilterbyproduct> 
</sections> 
</config> 

В/приложение/код/​​местные/MagePal/PaymentFilterByProduct/Helper/Data. PHP

<?php 
class MagePal_PaymentFilterByProduct_Helper_Data extends Mage_Core_Block_Template 
{ 
} 

В /app/code/local/MagePal/PaymentFilterByProduct/ActivePaymentMethod.php

getActiveMethods();

foreach ($payments as $paymentCode=>$paymentModel) { 
     if($paymentModel->canUseCheckout() == 1){ 
      $paymentTitle = Mage::getStoreConfig('payment/'.$paymentCode.'/title'); 
      $methods[$paymentCode] = array(
       'label' => $paymentTitle, 
       'value' => $paymentCode, 
      ); 
     } 
    } 

    return $methods; 
} 
} 

В /app/etc/modules/MagePal_PaymentFilterByProduct.xml

<?xml version="1.0"?> 
<config> 
<modules> 
    <MagePal_PaymentFilterByProduct> 
     <active>true</active> 
     <codePool>local</codePool> 
    </MagePal_PaymentFilterByProduct> 
</modules> 
</config> 
+0

спасибо, но этот модуль, который я видел в другом посте, кажется идентичным. Я протестировал и провалился. Но на всякий случай я снова проверю и принесу возврат. – ManehScripts

Смежные вопросы