완전한 PayPal 웹 사이트 결제 표준 결제에 대한 맞춤 주문 상태를 설정 하시겠습니까?


9

우리는 PayPal 웹 사이트 지불 표준 지불 방법 과 함께 Magento EE 1.13.0.2를 사용하고 있습니다. 불행하게도 백엔드에서 유료 PayPal 주문의 주문 상태를 설정할 수 없습니다.

주문이 성공적으로 이루어 졌을 때 (부분이 아닌) 사용자 정의 주문 상태를 설정해야합니다. PayPal 주문 상태를 수정하기위한 자습서가 오래되었거나 잘못되었거나 못생긴 해킹 인 것 같습니다.

내가 모은 것에서 :

  • 지불 업데이트는 PayPal IPN에 의해 ​​처리됩니다.
  • Mage_Paypal_Model_Ipn::_registerPaymentCapture()"결제 완료된 결제 (전체 또는 부분)"를 담당 하는 방법이 있습니다 .
  • 에서 Mage_Paypal_Model_Ipn::_registerTransaction()페이팔의 요청 분석 및 지불 상태가 비교됩니다 Mage_Paypal_Model_Info::PAYMENTSTATUS_COMPLETED.

솔직히이 정보로 무엇을해야할지 모르겠습니다. Mage_Paypal_Model_Ipn::_registerTransaction()코드를 다시 작성 하고 추가 할 수 있습니다 .

// paid
case Mage_Paypal_Model_Info::PAYMENTSTATUS_COMPLETED:
    $this->_registerPaymentCapture(true);
    // my code here
    break;

물론 이벤트 관찰자 (예 : 주문 또는 주문 상태 이벤트 중 하나)가 훨씬 좋을 것입니다. 주문이 PayPal을 통해 완전히 지불 될 때 일회성 이벤트를 잡을 수있는 100 % 신뢰할 수있는 방법이 있는지 확실하지 않습니다 .

어떤 아이디어?

최신 정보

주문 상태 흐름을 수정하기로 선택했으며 더 이상 상태를 수정할 필요가 없습니다. 누군가가 답변을 원할 경우를 대비하여 잠시 동안 질문을 열어 두겠습니다.

답변:


2

가장 큰 문제는 전체 페이팔 작업 흐름에 단일 이벤트조차 없다는 것입니다.

따라서 두 가지 옵션이 있습니다.

이 Paypal 모델을 다시 작성하십시오.

말했듯이 모델을 다시 작성하고 동작을 변경하면 모든 것이 예상대로 작동합니다.

에 연결 sales_order_save_before

그런 다음 지불 유형을 확인하십시오 \Mage_Paypal_Model_Standard::$_code.

protected $_code  = Mage_Paypal_Model_Config::METHOD_WPS;

\Mage_Paypal_Model_Config
-> const METHOD_WPS         = 'paypal_standard';

그런 다음 상태가 원하지 않는 상태로 변경되면 원하는 상태로 변경하십시오.


Fabian에게 감사합니다. Magento 1.x에서 더 나은 솔루션을 얻지 못할 것입니다. :-)
Matthias Zeis 7:18에

0

나는 다른 해결책으로 끝났다. 몇 시간 동안이 문제로 어려움을 겪은 후 PayPal 주문 만 특정 상태 (특정 상태의 주문을 검색하는 ERP 연결)인지 여부는 중요하지 않다는 것을 알았습니다.

PayPal은 주문 상태를 설정하지 않습니다. 그것은 단지 지불을 캡처합니다. Magento는 주문 상태를 처리 중으로 설정하고 (참조 Mage_Sales_Model_Order_Payment::registerCaptureNotification()) 상태를 해당 상태 내의 기본 상태로 설정합니다.

내가 처리 해야하는 것은 처리 중인 상태 의 기본 상태를 관리 인터페이스 ( 시스템 » 주문 상태 )를 통해 필요한 상태 로 변경하는 것 입니다.

이것이 누군가를 돕기를 바랍니다!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.