Z określonej kolejności chcę utworzyć przesyłkę z tego zamówienia, a także przydzielać mu numer śledzenia do niego programowo. Proszę o pomoc. DziękiMagento utworzyć przesyłkę z numerem śledzenia programowo
Odpowiedz
Pytanie dotyczyło wyłącznie celu dzielenia się wiedzą.
można zrozumieć kilka punktów z Ref_Link
// $order_id = Order ID
$_order = Mage::getModel('sales/order')->load($order_id);
if($_order->canShip())
{
$shipmentId = Mage::getModel('sales/order_shipment_api')->create($_order->getIncrementId(), $itemsarray ,'your_comment' ,false,1);
echo $shipmentId; // Outputs Shipment Increment Number
$trackmodel = Mage::getModel('sales/order_shipment_api')
->addTrack($shipmentId,'your_shipping_carrier_code','your_shipping_carrier_title','carrier_tracking_number');
}
$itemsarray
= Format wyjaśnione tutaj Ref_link
to wszystko!
Prosty fragment kodu.
Mam nadzieję, że to komuś pomaga.
Przyjęta odpowiedź jest prawidłowa i zadziałała u mnie w wersji CE 1.9, ale chciałem ją rozwinąć.
Nie musisz martwić się parametrem $itemsQty
, możesz podać pusty array()
lub całkowicie go opuścić. Jest to parametr opcjonalny, a metoda prepareShipment()
sprawdza te dane i jeśli to konieczne, wykonuje wyszukiwanie.
Jeśli chcesz dołączyć numer śledzenia do e-maila wysyłkowego, najpierw dodaj śledzenie, a następnie użyj numeru Mage::getModel('sales/order_shipment_api')->sendInfo($shipmentIncrementId)
.
Code Snippet:
$shipmentApi = Mage::getModel('sales/order_shipment_api');
//pass false for email, unless you want Magento to send the shipment email without any tracking info
//could also be written as $shipmentIncrementId = $shipmentApi->create($order->getIncrementId());
$shipmentIncrementId = $shipmentApi->create($order->getIncrementId(), array(), '' , false, 0);
//add tracking info ($shippingCarrier is case sensitive)
$shipmentApi->addTrack($shipmentIncrementId, $shippingCarrier, $shippingTitle, $trackingNumber);
//send shipment email with tracking info
$shipmentApi->sendInfo($shipmentIncrementId);
create() metoda podpis:
public function create($orderIncrementId, $itemsQty = array(), $comment = null,
$email = false, $includeComment = false)
Zobacz app\code\core\Mage\Sales\Model\Order\Shipment\Api.php
dla wszystkich metod.
- 1. Jak utworzyć okrąg z numerem?
- 2. Aktualizowanie atrybutów Magento Programowo
- 3. Jak utworzyć witrynę, przechowywać i wyświetlać programowo w systemie Magento
- 4. Magento: Programowo usuń atrybut z zestawu atrybutów
- 5. Aktualizuj produkty programowo w Magento
- 6. Tworzenie zamówień programowo w Magento
- 7. Magento: Aktualizuj wielkość koszyka programowo
- 8. Ustaw identyfikator sklepu magento programowo
- 9. okręgi CSS z numerem
- 10. Programowo utworzyć TextView z ellipsis
- 11. Ustal, czy na stronie produktu programowo w Magento
- 12. Jak mogę programowo uzyskać bieżący przełącznik śledzenia?
- 13. Jak utworzyć raport w Magento
- 14. Android - Kontakt z numerem z numerem kierunkowym kraju
- 15. pobierz błąd modelu magento zamiast obiektu - utwórz programowo programowo
- 16. Jak programowo importować zamówienia do Magento?
- 17. Jak programowo utworzyć UIScrollView?
- 18. Jak programowo utworzyć BasicHttpBinding?
- 19. Ustawianie ceny specjalnej programowo w Magento
- 20. Jak dodać JS programowo w Magento?
- 21. Jak utworzyć kontakt programowo
- 22. Jak programowo utworzyć dijit.Dialog z dojox.grid.DataGrid
- 23. Magento, programowo dodając kategorię do produktów w skrypcie z SQL
- 24. Złóż przesyłkę przed sprawdzeniem poprawności HTML5.
- 25. Jak programowo utworzyć banner admob?
- 26. Jak programowo utworzyć formularz okna?
- 27. Formula z numerem dynamicznego zmiennych
- 28. Znajdź skrzyżowanie z numerem linii
- 29. Zamiar kontaktu z numerem telefonu
- 30. Pobierz datę z numerem tygodnia
Należy zauważyć, że $ shipmentId jest w rzeczywistości identyfikatorem przydziału wysyłek – kmdsax