2015-01-07 2 views
0

'일반'고객 그룹의 모든 고객에 대해 Magento 사이트에서 판매를 중지하려고합니다. 우리는 다양한 세금 규칙 등으로 계층화 된 고객 그룹 시스템을 갖추고 있지만 사이트에서 구매할 수있는 그룹으로 '일반'을 비활성화하는 방법을 알 수 없습니다. 나는 새로운 고객이 먼저 그룹에 배정되지 않고 구매할 수있는 것을 원하지 않습니다.Magento에서 '일반'그룹 판매를 사용 중지합니다.

감사합니다.

+0

LoggedIn Customer가 필수 카테고리에없는 경우 BuyNow 버튼에서 조건을 사용하면 –

+0

버튼이 표시됩니다. 감사합니다 Pavan, CMS에서 해당 옵션에 액세스 할 수 있습니까? 장바구니 규칙을 추가하는 것과 비슷합니까? – user2607163

답변

1

내 생각은 다음과 같습니다. 체크 아웃 페이지가로드되기 전에 관찰자가 controller_action_predispatch_checkout_onepage_index 이벤트에 설정되었습니다. 관찰자에서 고객이 특정 그룹에 속하는지 여부를 확인한 후 해당 그룹을 장바구니 페이지로 리디렉션하고 오류 메시지를 표시합니다. 마 젠토 코드로 번역

, 그 결과는 다음과 같습니다

전나무 우리는 이벤트에 후크 우리 config.xml

<frontend> 
    <events> 
     <controller_action_predispatch_checkout_onepage_index> 
      <observers> 
       <your_module> 
        <class>your_module/observer</class> 
        <method>banCheckout</method> 
       </your_module> 
      </observers> 
     </controller_action_predispatch_checkout_onepage_index> 
    </events> 
</frontend> 

에 우리의 관찰자에 : 마음에

public function banCheckout(Varien_Event_Observer $observer) 
{ 
    $customerSession = Mage::getSingleton('customer/session'); 
    if (!$customerSession->isLoggedIn()) { 
     return $this; 
    } 

    $groupId = $customerSession->getCustomer()->getGroupId(); 
    if ($groupId == 1) { 
     Mage::getSingleton('checkout/session')->addError(
      Mage::helper('checkout')->__('Your error message.') 
     ); 
     $action = $observer->getEvent()->getControllerAction(); 
     $action->getResponse()->setRedirect(Mage::getUrl('checkout/cart')); 
     $action->setFlag('', Mage_Core_Controller_Varien_Action::FLAG_NO_DISPATCH, true); 
    } 

    return $this; 
} 

유지 이것은 단순한 예일뿐입니다.

관련 문제