Lịch sử trạng thái đơn hàng Hoàn thành không còn được tạo, nhưng đã ở trong trang web M1


8

Trong trang web M1 của chúng tôi khi một đơn đặt hàng được chuyển trạng thái của đơn hàng đã thay đổi thành Hoàn thành Lịch sử Trạng thái Đơn hàng sẽ nhận được một bản ghi cho thấy đơn hàng đã Hoàn tất.

M1

NB: Lưu ý rằng có một bản ghi "Hoàn thành".

Bây giờ trong M2, Lịch sử trạng thái đơn hàng không nhận được bản ghi mới.

M2

NB: Không có hồ sơ "Hoàn thành".

Tại sao vậy?

Có cách nào để làm cho nó tạo ra hồ sơ này?

JSON cho thứ tự ví dụ M1:

[
  {
    "entity_id": 1235050,
    "parent_id": 444314,
    "is_customer_notified": 2,
    "is_visible_on_front": 0,
    "comment": "Captured amount of $48.38 online. Transaction ID: \"\".",
    "status": "processing",
    "created_at": "2018-08-12T07:48:10",
    "entity_name": "invoice"
  },
  {
    "entity_id": 1235062,
    "parent_id": 444314,
    "is_customer_notified": 1,
    "is_visible_on_front": 0,
    "comment": null,
    "status": "complete",
    "created_at": "2018-08-12T11:39:56",
    "entity_name": "shipment"
  }
]

JSON cho thứ tự ví dụ M2:

[
  {
    "entity_id": 1242440,
    "parent_id": 449257,
    "is_customer_notified": null,
    "is_visible_on_front": 0,
    "comment": "Captured amount of $160.90 online. Transaction ID: \"\"",
    "status": "processing",
    "created_at": "2018-09-11T04:08:28",
    "entity_name": "invoice"
  }
]

Probs chỉ bị câm nhưng tôi không biết ý của bạn về lịch sử trạng thái đơn hàng. Có lẽ nó không phải là thứ mà bất kỳ đơn đặt hàng nào của tôi có nên tôi không thấy nó. Bạn có thể giải thích?
Jamil

1
@jamil - Đó là thông tin trong sales_order_status_historybảng. Tôi sẽ thêm một ảnh chụp màn hình cho câu hỏi.
Enigmativity

Nhưng bạn đã không đặt hàng? Sau khi bạn gửi nó sẽ tạo ra "hoàn thành"?
BartZalas

@BartZalas - Không, trong M2 khi bạn gửi đơn đặt hàng, nó không tạo bản ghi trong sales_order_status_historybảng. Nó đã làm trong M1, nhưng không phải M2. Cả hai đơn đặt hàng trên đã được chuyển đơn đặt hàng.
Enigmativity

Tôi tìm thấy nếu bạn thêm nhận xét thủ công trong phần phụ trợ => thứ tự => thông tin => thêm nhận xét ở phía dưới. Nó hiển thị trên sales_order_status_history nhưng nó không hiển thị cái này mặc định.
BartZalas

Câu trả lời:


3

Đây là một câu trả lời khác mà tôi hy vọng sẽ đặt câu hỏi này lên giường.

  • câu trả lời trước cho thấy M2 đã phát triển như thế nào và bây giờ có thể xem lịch sử đặt hàng như thế nào. Tuy nhiên, vì dường như bạn cũng cần phải xem thông báo khi bạn đang xem đơn hàng (một chút cảm giác hoài cổ)

Tôi đã viết một mô-đun thêm thông báo khi lô hàng được tạo và tái tạo những gì chúng tôi có trong M1

Mô-đun sử dụng một plugin afterRegister của mô hình lô hàng (xem bên dưới)

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <type name="Magento\Sales\Model\Order\Shipment">
        <plugin name="order_shipped" type="Mbs\OrderNotifification\Plugin\ShipmentSavePlugin" sortOrder="999" />
    </type>
</config>


namespace Mbs\OrderNotifification\Plugin;


use Magento\Sales\Api\OrderRepositoryInterface;

class ShipmentSavePlugin
{
    /**
     * @var OrderRepositoryInterface
     */
    private $orderRepository;

    public function __construct(
        \Magento\Sales\Api\OrderRepositoryInterface $orderRepository
    ) {
        $this->orderRepository = $orderRepository;
    }

    public function afterRegister(\Magento\Sales\Model\Order\Shipment $shipment)
    {
        try {
            $order = $this->orderRepository->get($shipment->getOrderId());
            $order->addStatusHistoryComment('Order Complete', \Magento\Sales\Model\Order::STATE_COMPLETE);
        } catch (\Exception $e) {

        }
    }
}

xem mã đầy đủ tại repo thông báo đặt hàng


1

dòng thanh toán và chu kỳ đặt hàng giống nhau ở cả M1 và M2.

Khi bạn đặt hàng, trạng thái đơn hàng của bạn sẽ được xác định theo phương thức thanh toán được sử dụng cho đơn hàng.

  • Chẳng hạn, phương thức thanh toán séc / tiền đặt hàng đang chờ xử lý .
  • Ngoài ra, hầu hết các phương thức thanh toán sẽ đặt trạng thái đơn hàng thành xử lý nếu thanh toán được thực hiện (nếu việc thanh toán được thực hiện). Trong trường hợp này, bạn nên có một hóa đơn được tạo theo đơn đặt hàng này.
  • Cuối cùng, khi đơn đặt hàng của bạn ở trạng thái xử lý, thì bạn cần gửi đơn đặt hàng (lưu ý điều quan trọng là phải xác minh lô hàng được tạo thành công vào thời điểm này vì nếu không điều đó sẽ giải thích tại sao trạng thái đơn hàng của bạn không hoàn thành như bạn mong đợi)

Hôm nay tôi đã thử trên Magento 2 (2.2.5) và nó hoạt động như mong đợi. Tôi đề nghị môi trường của bạn có một mô-đun hoặc tùy chỉnh ngăn Magento hoạt động như mong đợi. Ngoài ra, vì bài đăng của bạn không có câu trả lời sau 21 ngày, có vẻ như rõ ràng bạn phải chuyển sang bước tiếp theo:

-> ý nghĩ đầu tiên tôi có là: bạn có thể xác minh lô hàng được tạo thành công trong môi trường M2 của bạn không? Có thể môi trường M1 của bạn đang thực hiện lô hàng tự động với mô-đun hoặc tích hợp API và M2 cần lô hàng được tạo thủ công ít nhất và sau đó bạn cũng có thể xem xét tự động hóa việc này.

-> Nếu ở trên không làm sáng tỏ vấn đề của bạn, tôi khuyên bạn nên xem các tệp nhật ký máy chủ của bạn và cố gắng tìm một lỗi có thể gợi ý cho bạn về những gì ngăn Magento hoạt động. Ngoài ra, nhật ký Magento có thể hữu ích tất nhiên

nhập mô tả hình ảnh ở đây

Tôi đính kèm ở đây một ảnh chụp màn hình hiển thị ngày tạo lô hàng. Điều này cho thấy chúng ta có một kết xuất khác với M1 nhưng ngày hoàn thành đơn hàng có phải là thứ bạn có thể đọc được từ ngày tạo lô hàng không?


Bạn đã bỏ lỡ điểm câu hỏi của tôi. Tất cả các lô hàng, hóa đơn, vv, được tạo ra một cách chính xác. Tình trạng đặt hàng là chính xác. Đó chỉ là bản ghi trạng thái lịch sử đơn hàng không được tạo trong M2 khi đơn hàng được hoàn thành. Các ảnh chụp màn hình tôi thêm vào câu hỏi sẽ cho bạn thấy ý tôi là gì.
Enigmativity

Giơ tay lên, tôi đã xem xét trường hợp magento 2 địa phương của tôi và thông báo cũng bị thiếu theo nhận xét của bạn. Tôi nghĩ rằng nếu bạn cần lấy ngày khi đơn hàng được đánh dấu là hoàn thành, nó sẽ khớp với ngày khi lô hàng được tạo. Tất nhiên, bạn có thể thêm thông báo lịch sử đơn hàng bằng cách triển khai tùy chỉnh và thông báo sau sẽ tạo thông báo khi lô hàng được tạo. Bạn có cần điều này hay nó chỉ là một sự tò mò bạn có?
Herve Tribouilloy

Tôi cần nó. Cảm ơn câu trả lời thứ hai của bạn.
Enigmativity

rất vui khi đặt mã đầy đủ nếu bạn gặp rắc rối, cảm ơn vì đã phản hồi
Herve Tribouilloy

mã hiện có sẵn, xem liên kết trong bài đăng mà tôi đã cập nhật chỉ vài phút trước
Herve Tribouilloy
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.