ฉันจะเพิ่มหมายเลขติดตามในการจัดส่งคำสั่งซื้อปัจจุบันใน Magento 2 ได้อย่างไร


10

ฉันหาโค้ดตัวอย่างสำหรับ Magento 1.x แต่ฉันไม่รู้ว่าจะทำอย่างไรกับ Magento 2

ทุกคนสามารถอธิบายวิธีการใช้สิ่งนี้โดยใช้การฉีดพึ่งพา (DI) ?

ขอบคุณ

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

คำตอบ:


12

AFAIK วัตถุติดตามเหมือนกันใน M2

อย่างไรก็ตามรหัสที่เหลือมีการเปลี่ยนแปลง

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

ในกรณี$this->trackFactoryที่อินสแตนซ์ของMagento\Sales\Model\Order\Shipment\TrackFactoryและ$shipmentเป็นวัตถุการจัดส่งของคุณ


BTW ฉันสงสัยว่าคุณรู้วิธีรับความเห็นเกี่ยวกับการส่งคำสั่งซื้อสำหรับ MG2 หรือไม่ ถ้าคุณทำกรุณาโพสต์ไว้ที่นี่ ขอบคุณ
Roshan ruzaik

วิธีเพิ่มการติดตาม URl ในการจัดส่ง?
Purushotam Sharma

@Roshanruzaik ถ้าคุณถามวิธีเพิ่มความคิดเห็นในการจัดส่งนี่คือสิ่งที่ฉันได้ทำไปแล้ว: $ commentText = 'ทดสอบความคิดเห็น'; // ความคิดเห็น: \ Magento \ Sales \ Api \ Data \ ShipmentCommentCreationInterface $ comment = $ this-> commentInterface-> setComment ($ commentText); // ใช้ความคิดเห็นของ $ เป็นหนึ่งในพารามิเตอร์ในขณะที่สร้างการจัดส่งตามตัวอย่างด้านล่าง: // บริการสั่งซื้อจัดส่ง: \ Magento \ Sales \ Model \ ShipOrder $ this-> shipOrderService-> ดำเนินการ ($ orderId, $ shipItems, $ แจ้งให้ทราบล่วงหน้า, $ includeComment, $ ความคิดเห็น, $ แทร็ค);
Sarjan Gautam

สวัสดี @ ราฟาเอลที่หมายเลขติดตามการจิบแบบดิจิตัลระบบดิจิตัลและผู้ให้บริการคือการบันทึกในตาราง "sales_shipment_track" ใน magento2 แต่จะประหยัดค่าขนส่งได้ที่ไหน
Nagaraju K

คุณช่วยได้โปรดถามคำถามที่คล้ายกันนี้magento.stackexchange.com/questions/268844/ …
กริชเหวิน

9

การเพิ่มคำตอบที่ยอมรับจะเป็นความคิดที่ดีที่จะใช้ที่เก็บข้อมูลแทนวิธีการบันทึกที่เลิกใช้แล้ว เพิ่มการแจ้งเตือนลูกค้าหลังจากการสร้างการติดตามด้วย

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

ที่การจัดส่ง $ เป็นวัตถุการจัดส่งของคุณ แจ้งเตือนจะแจ้งเตือน (ส่งอีเมล) ให้กับผู้ใช้และเพิ่มรายการประวัติลงในการรวบรวมประวัติสถานะการสั่งซื้อ


มันไม่ได้ผลสำหรับฉันได้สร้างคลาสผู้ช่วยเหลือฉันสามารถดึงข้อมูล getDeiveryTime (), getCancelTime (), getDispatchTime () แต่ฉันไม่สามารถรับหมายเลขติดตามได้ คุณสามารถให้รายชื่อฟังก์ชั่นเพื่อดึงรายละเอียดส่วนที่เหลือของการจัดส่ง
insoftservice

คุณสามารถช่วยในคำถามที่คล้ายกันนี้ได้ไหม magento.stackexchange.com/questions/268844/…
กริชเหวิน

@carol Castro เราจะเพิ่มรหัสคำสั่งซื้อที่นี่ได้อย่างไร?
Mujahidh
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.