2013-08-01 3 views
1
내가 배송 방법의 자동화에 일하고 있어요

, 그것은 잘 작동하는 것 같군,하지만 문제는 :자동 onepage 체크 아웃 젠토 - 배송 방법

모든 2 차 같은 오류 "가있는 배송 방법을 지정하십시오 "

세션 오류 일 수 있습니까? 변수는 다른 방식으로 Magento에서 가져 오기 또는 가져 오기를 통해 보내야합니까?

<?php 
$customer = Mage::getSingleton('customer/session')->getCustomer(); 


$customer->setWebsiteId(Mage::app()->getWebsite()->getId()); 

echo $customAddress = Mage::getModel('customer/address')->load($customer->getDefaultBilling()); 


$quote = Mage::getSingleton('checkout/session')->getQuote()->setBillingAddress(Mage::getSingleton('sales/quote_address')->importCustomerAddress($customAddress)); 

$cart = Mage::getSingleton('checkout/cart'); 

$storeId = Mage::app()->getStore()->getId(); 

$checkout = Mage::getSingleton('checkout/type_onepage'); 

$checkout->initCheckout(); 

$checkout->saveCheckoutMethod('register'); 

$checkout->saveShippingMethod('matrixrate_matrixrate_35'); 

$checkout->savePayment(array('method'=>'pay')); 

Mage::getSingleton('checkout/type_onepage')->getQuote()->getShippingAddress()->setShippingMethod('matrixrate_matrixrate_35'); 


try { 
    if ($checkout->saveOrder()) {echo "SUCCESSSSS!!!";}} 
catch (Exception $ex) { 
    echo $ex->getMessage(); 
}    

/* Clear the cart */ 
$cart->truncate(); 
$cart->save(); 
$cart->getItems()->clear()->save(); 
Mage::getSingleton('checkout/session')->clear(); 

그것은 사용자 정의 지불 게이트웨이라는 지불을 사용하고 내가 배송 matrixrate 확장자를 사용하고, althought이 flatrate_flatrate에 같은 eror이 그래서 확장 문제로 고려 don'd : 여기

는 코드입니다 .

감사합니다 !!!

아담

+0

업데이트 : 주문 후 카트를 비우는 중, 나는 이제 배송 가격 문제를 해결하고 있습니다. 또한 장바구니 페이지에 배송 방법을 설정하는 코드를 추가했습니다. –

+0

var_dumps 또는 echos를 사용하지 않는 것이 좋습니다. 때로는이 인쇄물이 전에 언급 한 것과 같은 "경고"오류를 보내기 때문입니다. –

+0

감사합니다 베토, 내가 그들을 없애 버릴거야. 업데이트 : 장바구니를 처리 할 수 ​​있었지만 배송 방법이 없다는 사실을 알리는대로 사용자 로그인이 처리되지 않는 첫 번째 주문, 두 번째 및 나머지는 정상적으로 작동합니다. –

답변

0

문제가 해결된다.

세션/시간 문제가있는 것처럼 보입니다. 서버는 모든 것을 한 번에 처리하지 않았습니다.

나는 카트 전체 페이지에 추가했다 :

수동으로 세션을 성공 페이지에서 삭제됩니다 :

$checkout->getQuote()->getShippingAddress()->setShippingMethod('matrixrate_matrixrate_35'); 
$checkout->saveShippingMethod('matrixrate_matrixrate_35'); 

는 배송도 설정되어 있는지 확인하십시오.

총 견적 금액이 포함 된 버그가 있으므로 제대로 계산할 수 있도록 스크립트를 다시 디자인했습니다.

많은 분들께 감사드립니다.

아담

2

문제 : 장바구니 항목은 아직 주문 분할 후 배송 방법 단계에서

1.Save 인용 수집 .. 마지막 부분에

$quote->collectTotals()->save(); 

2.Add 아래 단계를 표시 주문 분할.

$quote->setIsActive(false); 
$quote->save(); 
관련 문제