Magento 2'deki mevcut sipariş gönderimine nasıl takip numarası ekleyebilirim?


10

Magento 1.x için örnek kodlar buldum. Ama bunu Magento 2'de nasıl yapacağım hakkında hiçbir fikrim yok.

Bağımlılık Enjeksiyonu (DI) kullanarak bunun nasıl uygulanacağını açıklayan var mı?

Teşekkürler.

$trackingDetail = array(
    'carrier_code' => 'ups',
    'title' => 'United Parcel Service',
    'number' => 'TORD23254WERZXd3', // Replace with your tracking number
);

$track = Mage::getModel('sales/order_shipment_track')->addData($trackingDetail);
$shipment->addTrack($track);


$transactionSave = Mage::getModel('core/resource_transaction')
->addObject($shipment)
->addObject($shipment->getOrder())
->save();

Yanıtlar:


12

AFAIK, izleme nesnesi M2'de aynıdır.

Ancak, kodun geri kalanı değişti.

$data = array(
    'carrier_code' => 'ups',
    'title' => 'United Parcel Service',
    'number' => 'TORD23254WERZXd3', // Replace with your tracking number
);

$track = $this->trackFactory->create()->addData($data);
$shipment->addTrack($track)->save();

Nerede $this->trackFactorybir örneği Magento\Sales\Model\Order\Shipment\TrackFactoryve $shipmentsizin gönderi nesnedir.


BTW MG2 için de sipariş gönderi yorumlarını nasıl alacağınızı merak ediyorum. Bunu yaparsanız lütfen buraya gönderin. Teşekkürler.
Roshan ruzaik

Sevkıyatta izleme UR'si nasıl eklenir?
Purushotam Sharma

@Roshanruzaik, gönderiye nasıl yorum ekleyeceğinizi sorarsanız, bu nasıl yaptım: $ commentText = 'Test comment'; // Yorum arayüzü: \ Magento \ Sales \ Api \ Data \ ShipmentCommentCreationInterface $ comment = $ this-> commentInterface-> setComment ($ commentText); // aşağıdaki gibi gönderi oluştururken $ comment parametresinden biri olarak kullanın: // ship order service: \ Magento \ Sales \ Model \ ShipOrder $ this-> shipOrderService-> execute ($ orderId, $ shippedItems, $ notify, $ includeComment $, yorum, $ parçaları);
Sarjan Gautam

Merhaba @Raphael dijital piyanizm takip numarası yudumlarken ve carrier_code magento2 "sales_shipment_track" tablosunda kaydediyor ama Nakliye Ücreti nereye kurtaracak?
Nagaraju K

bu benzer soruya yardımcı olabilir misiniz magento.stackexchange.com/questions/268844/…
Kris Wen

9

Kabul edilen cevaba ek olarak, kullanımdan kaldırılmış kaydetme yöntemi yerine depoların kullanılması iyi bir fikir olacaktır. Ayrıca izleme oluşturulduktan sonra müşteri bildirimi eklendi.

/** @var Magento\Sales\Model\Order\ShipmentRepository */
protected $_shipmentRepository;

/** @var Magento\Shipping\Model\ShipmentNotifier */
protected $_shipmentNotifier;

/** @var Magento\Sales\Model\Order\Shipment\TrackFactory */
protected $_trackFactory; //missing ;

public function __construct(
  \Magento\Shipping\Model\ShipmentNotifier $shipmentNotifier, 
  \Magento\Sales\Model\Order\ShipmentRepository $shipmentRepository, 
  \Magento\Sales\Model\Order\Shipment\TrackFactory $trackFactory)
{
  $this->_shipmentNotifier = $shipmentNotifier;
  $this->_shipmentRepository = $shipmentRepository;
  $this->_trackFactory = $trackFactory;
}
public function addTrack($shipment, $carrierCode, $description, $trackingNumber) 
{
    /** Creating Tracking */
    /** @var Track $track */
    $track = $this->_trackFactory->create();
    $track->setCarrierCode($carrierCode);
    $track->setDescription($description);
    $track->setTrackNumber($trackingNumber);
    $shipment->addTrack($track);
    $this->_shipmentRepository->save($shipment);

    /* Notify the customer*/
    $this->_shipmentNotifier->notify($shipment);
 }

Burada $ gönderi gönderi nesnenizdir. Bildir kullanıcıya bildirir (e-posta gönderir) ve sipariş durumu geçmişi koleksiyonuna bir geçmiş öğesi ekler.


Benim için işe yaramadı yardımcı sınıf yarattık, getDeiveryTime (), getCancelTime (), getDispatchTime () getirmeyi başarabiliyorum ama takip numarası alamıyorum. Gönderinin geri kalan ayrıntılarını almak için bir işlev listesi sağlayabilir misiniz
insoftservice

bu benzer soruya yardımcı olabilir misiniz? magento.stackexchange.com/questions/268844/…
Kris Wen

@carol Castro, sipariş kimliğini buraya nasıl ekleyebiliriz?
Mücahid
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.