Làm cách nào để thêm số theo dõi vào lô hàng hiện tại trong Magento 2?


10

Tôi đã tìm thấy mã mẫu cho Magento 1.x. Nhưng tôi không biết làm thế nào để làm điều này trên Magento 2.

Bất cứ ai cũng có thể mô tả làm thế nào để thực hiện điều này bằng cách sử dụng Dependency Injection (DI) ?

Cảm ơn.

$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();

Câu trả lời:


12

AFAIK đối tượng theo dõi là giống nhau trong M2.

Tuy nhiên, phần còn lại của mã đã thay đổi.

$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();

Trường hợp $this->trackFactorymột ví dụ Magento\Sales\Model\Order\Shipment\TrackFactory$shipmentlà đối tượng lô hàng của bạn.


BTW Tôi tự hỏi nếu bạn biết làm thế nào để có được nhận xét lô hàng đặt hàng quá cho MG2. Nếu bạn làm xin vui lòng gửi nó ở đây. Cảm ơn.
Roshan ruzaik

Làm thế nào để thêm theo dõi URl trong lô hàng?
Purushotam Sharma

@Roshanruzaik, nếu bạn đang hỏi cách thêm nhận xét vào lô hàng thì đây là cách tôi đã thực hiện: $ commentText = 'Kiểm tra nhận xét'; // Giao diện nhận xét: \ Magento \ Sales \ Api \ Data \ ShipmentVerCreationInterface $ comment = $ this-> commentInterface-> setVer ($ commentText); // sử dụng $ comment làm một trong các tham số trong khi tạo lô hàng như ví dụ dưới đây: // dịch vụ đặt hàng tàu: \ Magento \ Sales \ Model \ ShipOrder $ this-> shipOrderService-> thực thi ($ orderId, $ shipItems, $ notify, $ bao gồmVer, $ bình luận, $ track);
Sarjan Gautam

Xin chào @Raphael tại số theo dõi nhấm nháp kỹ thuật số piano và Carrier_code đang lưu trong bảng "sales_shipment_track" trong magento2 nhưng nó sẽ tiết kiệm Phí vận chuyển ở đâu?
Nagaraju K

bạn có thể vui lòng giúp đỡ về câu hỏi tương tự này magento.stackexchange.com/questions/268844/ Khăn
Kris Wen

8

Thêm vào câu trả lời được chấp nhận, sẽ là một ý tưởng tốt khi sử dụng kho lưu trữ thay vì phương thức lưu không dùng nữa. Cũng thêm thông báo của khách hàng sau khi tạo theo dõi.

/** @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);
 }

Trong đó lô hàng $ là đối tượng giao hàng của bạn. Thông báo sẽ thông báo (gửi email) cho người dùng và thêm một mục lịch sử vào bộ sưu tập lịch sử trạng thái đơn hàng.


Nó không hoạt động đối với tôi đã tạo lớp trình trợ giúp, tôi có thể tìm nạp getDeiveryTime (), get HủyTime (), getDispatchTime () nhưng tôi không thể lấy số theo dõi. Bạn có thể cung cấp danh sách các chức năng để tìm nạp các chi tiết còn lại của lô hàng không
bảo hiểm 15/03/19

bạn có thể giúp đỡ về câu hỏi tương tự này? magento.stackexchange.com/questions/268844/ Mạnh
Kris Wen

@carol Castro, làm thế nào chúng ta có thể thêm id đơn hàng ở đây?
Mujahidh
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.