내 제품 세부 정보 페이지에 "다이렉트 체크 아웃"버튼을 추가하고 싶습니다. 클릭하면 장바구니에 제품이 추가되고 checkout/onepage
으로 리디렉션됩니다.장바구니에 추가 한 후 옵저버로 리디렉션하는 방법?
기본적으로 addtocart Magento의 장바구니 페이지로 리디렉션됩니다.
제품 페이지에 숨겨진 필드를 추가하고 javascript를 사용하여 직접 체크 아웃 버튼을 클릭하여 값을 추가했습니다. 그런 다음 관찰자가 그 값을 확인하고 체크 아웃으로 리디렉션합니다.
위의 로직을 옵저버 checkout_cart_add_product_complete
에 구현했지만 체크 아웃 페이지로 리디렉션하지 않고 장바구니 페이지로 리디렉션합니다.
내 관찰자 기능은 다음과 같습니다
public function afterAddToCart(Varien_Event_Observer $observer)
{
$params = Mage::app()->getFrontController()->getRequest()->getParams();
if(isset($params['dco']) && $params['dco'] == 1){
Mage::app()->getResponse()->setRedirect(Mage::getUrl("checkout/onepage"));
}
}
나는 그것이 때문에 내 리디렉션 코드 뒤에 작동하지 않는 가정, 마 젠토는 다시 카트로 리디렉션 기본 addToCart와 코드를 실행합니다.
휴식을 취하고 결제 페이지로 리디렉션 할 수있는 방법이 있습니까?
과 같이 보일 것이다 다음
귀하의 설정처럼 뭔가를 할 수 있습니다. 아직 장바구니 페이지로 전송 중입니다. 관찰자 데이터 흐름의 문제라고 생각합니다. 카트에 추가를 마친 후에는 옵서버에게 전달되지만 리디렉션을 한 후에 다시 카트 기능으로 돌아가서 카트로 리디렉션합니다. 어쨌든 우리는 관찰자를 깨뜨릴 필요가있을 수 있으므로 다시 카트 기능에 추가해서는 안됩니다. – Prashant
이상하지만, 코드 뒤에 'die;'를 추가하면 작동합니다 : -/올바른 접근인가? '죽을 것 '을 추가 할 것인가 말 것인가? – Prashant
이전에 목표를 이해하지 못해 죄송합니다 ... 장바구니를 자동으로 리디렉션되는 다른 견적으로 변경해야합니다. 카트를 견적으로 바꾸는 방법을 찾으려면 http://inchoo.net/ecommerce/magento/magento-quote-order-invoice-workflow/를보십시오. –