Magento 기본 워크 플로우를 변경해야합니다. 따라서 고객이 무언가를 사 자마자 자동으로 배송을 생성해야합니다 (고객이 영수증 페이지를 볼 때). 나는 어디에서 시작해야할지 모르겠습니다. 나는 약간의 확장을 위해 인터넷 검색을 시작했다. 그러나 지금은 행운이 없다. 그래서 내가 여기 온거야. 누구든지이 문제를 해결하기 위해 어디에서 아이디어를 얻을 수 있습니까? 감사!Magento에서 자동 배송 방법
답변
:
솔루션은 지불-성공 이벤트에 옵저버를 작성하는 것입니다. @ user2729065에 언급 된 바와 같이 일반적으로 나쁜 습관이긴하지만, 고객이 결제 후 감사 페이지로 돌아 가지 않으면 코드가 실행되지 않습니다. 옵저버를 사용하여 맞춤 모듈을 만드는 것이 더 좋습니다. 이렇게하려면 모듈/etc.xml 파일에 다음 코드를 추가하십시오.
<global>
<events>
<sales_order_invoice_pay>
<observers>
<[my]_[module]_automatically_complete_order>
<class>[module]/observer</class>
<method>automaticallyShipCompleteOrder</method>
</[my]_[module]_automatically_complete_order>
</observers>
</sales_order_invoice_pay>
</events>
</global>
my_module을 모듈 이름으로 변경하십시오. 이것은 인보이스가 지불 될 때 트라이 거입니다.
그런 다음 내/모듈/모델에 옵저버를 생성/Observer.php
<?php
class My_Module_Model_Observer
{
/**
* Mage::dispatchEvent($this->_eventPrefix.'_save_after', $this->_getEventData());
* protected $_eventPrefix = 'sales_order';
* protected $_eventObject = 'order';
* event: sales_order_invoice_pay
*/
public function automaticallyShipCompleteOrder($observer)
{
$order = $observer->getEvent()->getInvoice()->getOrder();
if ($order->getState() == Mage_Sales_Model_Order::STATE_PROCESSING) {
try {
$shipment = $order->prepareShipment();
$shipment->register();
$order->setIsInProcess(true);
$order->addStatusHistoryComment('Shippment automatically created.', false);
Mage::getModel('core/resource_transaction')
->addObject($shipment)
->addObject($shipment->getOrder())
->save();
} catch (Exception $e) {
$order->addStatusHistoryComment('Could not automaticly create shipment. Exception message: '.$e->getMessage(), false);
$order->save();
}
}
return $this;
}
}
순서가 처리 (이 지불 한 후에는 도착 상태에서 여전히 경우이 확인됩니다). 그렇다면 선적을 만들어보십시오. 발송물이 생성 된 후 주문은 자동으로 상태가 완료로 변경됩니다.
당신은 주문이 접수 된 후 출하가 직접 만든 얻을 (송장이 생성 및 지불하기 전에.) 원하는 경우
, Config.xml의<sales_order_invoice_pay>
에서
<sales_order_place_after>
변경 . 이 관찰자가 주문하지 송장을 반환하기 때문에, 또한 변경 :
$order = $observer->getEvent()->getInvoice()->getOrder();
$order = $observer->getEvent()->getOrder();
에
Inchoo 그래서 대부분의 크레딧이 그들에게 이동에서 코드가 예를 기반으로합니다.
해결책을 찾았습니다. 나는 이것이 최선의 방법은 아니라고 생각하지만 작동한다. 파일 your_theme_name/템플릿/체크 아웃/success.phtml
에서
는 영수증 페이지에서 주문 배송 추가합니다이 코드
<?php
$orderId = Mage::getSingleton('checkout/session')->getLastRealOrderId();
$order = Mage::getModel('sales/order') -> loadByIncrementId($orderId);
if ($order -> canShip()) {
$itemQty = $order -> getItemsCollection() -> count();
$shipment = Mage::getModel('sales/service_order', $order) -> prepareShipment($itemQty);
$shipment = new Mage_Sales_Model_Order_Shipment_Api();
$shipmentId = $shipment -> create($orderId);
}
?>
를 추가합니다.
해보세요! 대신 관측자가있는 사용자 정의 모듈을 사용하십시오. –
좋은 지적은이 솔루션이 전혀 좋지 않다는 것입니다. 나는 이것을 정답이 아닌 것으로 표시 할 것이다. 단계를 설명하는 정답을 추가하십시오. @DennisvanSchaik – bla0009
결코 늦지 않는 것이 좋으며 코드 예가 추가되었습니다. –
템플릿에 코드를 삽입하는 것은 정말 나쁜 생각입니다. 템플릿 /보기에 배송 코드가 추가됩니다. 이 기능은 여기에 속하지 않습니다. 예를 들어, 5 분 후에 지불이 확인되면 작동하지 않습니다. 당신은보기 파일에 이러한 종류의 코드를 넣어해서는 안 http://inchoo.net/ecommerce/magento/magento-orders/automatically-invoice-ship-complete-order-in-magento/
스택 오버플로에 오신 것을 환영합니다! 이것은 이론적으로 질문에 대답 할 수 있지만 여기에 답의 핵심 부분을 포함하고 참조 용 링크를 제공하는 것이 바람직합니다 (http://meta.stackexchange.com/q/8259). –
- 1. magento에서 "배송 방법"으로 운송 업체를 얻는 방법
- 2. 여러 품목 Magento에서 동일한 배송 위탁
- 3. Magento에서 배송 및 청구 방법 주소 필드를 선택하십시오.
- 4. Magento로 주문 배송 날짜를 얻는 방법?
- 5. PayPal 주문 Magento에서 자동 취소
- 6. 방법 배송 방법
- 7. Magento에서 결제에 맞춤 배송 및 결제 옵션을 어떻게 추가합니까?
- 8. Magento에서 청구 및 배송 국가가 다를 수 있습니다.
- 9. Magento에서 판매 견적을 보내는 방법?
- 10. 배송 방법 페이팔에 배송비를
- 11. 다른 배송 방법 : Ubercart
- 12. 2 단계 Magento에서 "Shipping Information"을 제거하십시오.
- 13. Magento에서 장바구니 가격 규칙 자동 생성
- 14. magento에서 기능을 시작하는 방법
- 15. Magento에서 할인을 그룹화하는 방법?
- 16. Magento에서 작업을 시작하는 방법?
- 17. Magento에서 Session 사용 방법
- 18. Magento에서 보고서를 만드는 방법
- 19. Magento에서 템플릿을 구현하는 방법
- 20. Magento의 맞춤 배송
- 21. Paypal 체크 아웃에서 잘못된 배송 옵션 제공
- 22. Magento의 배송 방법 이름 수정
- 23. 페이팔 html 양식 배송 방법
- 24. 배송 방법 Magento 맞춤 필드
- 25. oscommerece에 내 배송 방법 추가
- 26. 관리자가 배송 방법을 변경하는 방법
- 27. Magento - 제품 무게에 따른 무료 배송
- 28. 내보내기 주문 Magento에서 의견
- 29. magento에서 쿼리 문자열을 작성하는 방법
- 30. Magento에서 제품 이미지를 얻는 방법
이 문제를 해결하지는 않지만 기존 시스템을 개선하십시오. UpVote 좋은 생각! – Karma
감사합니다. 나는 이것이 Magento에게 정말로 중요한 재료라고 생각합니다. – bla0009