Magento에서 주문을 프로그래밍 방식으로 환불받을 수있는 방법은 무엇입니까? 보다 정확하게 말하자면, 보류 중 상태 및 상태에있는 주문을 적절한 환불 상태 및/또는 상태로 어떻게 변경할 수 있습니까?Magento - 프로그래밍 방식으로 환불을 처리하는 방법은 무엇입니까?
1
A
답변
0
게이트웨이가 알림을 보내고 있으므로 실제로 IPN 기능을 통해이 작업을 수행 할 수 없습니다. Magento 이미 발생한 작업입니다. 실제로 온라인 환불을 원할 경우 CreditMemoController의 saveAction을 확장하거나 호출하는 것만으로는 충분하지 않습니다.
이것은 실제로 환불을 수행하지만 컨트롤러 내의 보호 된 방법에 의존하는 컨트롤러 작업입니다. 이것을 사용하려면 직접 게시물을 게시하십시오 (예 : https://yoursite.com/admin/sales/order/creditmemo/save/
). 또는 꼬집어서이 메서드를 하나의 모 놀리 식 스크립트로 복제 할 수 있습니다.
<?php
//taken from /app/code/core/Adminhtml/controllers/Sales/Order/CreditmemoController.php
/**
* Save creditmemo
* We can save only new creditmemo. Existing creditmemos are not editable
*/
public function saveAction()
{
$data = $this->getRequest()->getPost('creditmemo');
if (!empty($data['comment_text'])) {
Mage::getSingleton('adminhtml/session')->setCommentText($data['comment_text']);
}
try {
$creditmemo = $this->_initCreditmemo();
if ($creditmemo) {
if (($creditmemo->getGrandTotal() <=0) && (!$creditmemo->getAllowZeroGrandTotal())) {
Mage::throwException(
$this->__('Credit memo\'s total must be positive.')
);
}
$comment = '';
if (!empty($data['comment_text'])) {
$creditmemo->addComment(
$data['comment_text'],
isset($data['comment_customer_notify']),
isset($data['is_visible_on_front'])
);
if (isset($data['comment_customer_notify'])) {
$comment = $data['comment_text'];
}
}
if (isset($data['do_refund'])) {
$creditmemo->setRefundRequested(true);
}
if (isset($data['do_offline'])) {
$creditmemo->setOfflineRequested((bool)(int)$data['do_offline']);
}
$creditmemo->register();
if (!empty($data['send_email'])) {
$creditmemo->setEmailSent(true);
}
$creditmemo->getOrder()->setCustomerNoteNotify(!empty($data['send_email']));
$this->_saveCreditmemo($creditmemo);
$creditmemo->sendEmail(!empty($data['send_email']), $comment);
$this->_getSession()->addSuccess($this->__('The credit memo has been created.'));
Mage::getSingleton('adminhtml/session')->getCommentText(true);
$this->_redirect('*/sales_order/view', array('order_id' => $creditmemo->getOrderId()));
return;
} else {
$this->_forward('noRoute');
return;
}
} catch (Mage_Core_Exception $e) {
$this->_getSession()->addError($e->getMessage());
Mage::getSingleton('adminhtml/session')->setFormData($data);
} catch (Exception $e) {
Mage::logException($e);
$this->_getSession()->addError($this->__('Cannot save the credit memo.'));
}
$this->_redirect('*/*/new', array('_current' => true));
}
HTH, 건배.
관련 문제
- 1. 프로그래밍 방식으로 JqGrid 이벤트를 처리하는 방법은 무엇입니까?
- 2. Magento - 프로그래밍 방식으로 재정렬
- 3. 지불 처리기를 통해 환불 또는 환불을 처리하는 방법은 무엇입니까?
- 4. Magento - 프로그래밍 방식으로 제품을 판매하십시오.
- 5. Magento - 코드를 통해 프로그래밍 방식으로 대변 메모/환불 생성
- 6. Magento 프로그래밍 방식으로 주문 지불
- 7. Magento setTemplate을 런타임에/프로그래밍 방식으로
- 8. 프로그래밍 방식으로 생성 된 개체의 이벤트를 처리하는 방법은 무엇입니까?
- 9. 프로그래밍 방식으로 텔넷 연결 지연을 처리하는 방법은 무엇입니까?
- 10. 프로그래밍 방식으로 추가 된 단추 이벤트를 처리하는 방법은 무엇입니까? C#
- 11. 프로그래밍 방식으로 UIViewController를로드하는 방법은 무엇입니까?
- 12. 프로그래밍 방식으로 다른 PanoramaItem으로 전환하는 방법은 무엇입니까?
- 13. 프로그래밍 방식으로 쿠키를 지우는 방법은 무엇입니까?
- 14. 피드에 - 프로그래밍 방식으로 magento 제품 추가
- 15. Magento - 프로그래밍 방식으로 저장소 기반 URL 변경
- 16. Magento 프로그래밍 방식으로 세션 ID를 설정하려고 시도했습니다.
- 17. Magento : 프로그래밍 방식으로 제품의 특성로드 - 어떻게?
- 18. Magento 프로그래밍 방식으로 주문을 발송하려면 어떻게해야합니까?
- 19. Magento : 프로그래밍 방식으로 위젯 구성 변경
- 20. 프로그래밍 방식으로 실패한 주문을 표시하는 방법 - Magento
- 21. Magento : 프로그래밍 방식으로 플랫 카탈로그 재구성
- 22. Magento with Mailchimp ----- 확인란을 프로그래밍 방식으로 추가하기
- 23. 이미지를 프로그래밍 방식으로 Magento 제품에 추가 1.6.1
- 24. mnesia 스키마를 표준 방식으로 처리하는 방법은 무엇입니까?
- 25. 일반적인 방식으로 숫자를 처리하는 방법은 무엇입니까?
- 26. 리더 보드를 프로그래밍 방식으로 재설정하는 방법은 무엇입니까?
- 27. 프로그래밍 방식으로 벨소리를 끄는 방법은 무엇입니까?
- 28. 프로그래밍 방식으로 가로 스크롤을 중지하는 방법은 무엇입니까?
- 29. 프로그래밍 방식으로 외래 키를 정의하는 방법은 무엇입니까?
- 30. 프로그래밍 방식으로 파일의 인코딩을 찾는 방법은 무엇입니까?
오프라인에서 신용 메모를 발급 받으려하고 있습니까? 아니면 지불 게이트웨이를 통해 온라인 환불을 실행하겠다는 목표입니까? – benmarks
Magento 측의 게이트 웨이에서 ipn 환불을 처리하려고합니다 (적절한 절차가 무엇이든간에 상태를 apropriate, 메모로 변경하십시오). 감사. –