Cho phép một đơn hàng âm, với Tổng số nhỏ hơn 0


15

Một trong những khách hàng của chúng tôi đã yêu cầu khả năng nhân viên nhập đơn hàng của mình gửi đơn đặt hàng với tổng số đơn hàng âm. Ứng dụng đã cho phép các chi tiết đơn hàng âm, hoạt động tốt miễn là phần còn lại của đơn hàng tạo ra một Tổng số dương.

Có vẻ như Magento rất cố gắng để không có tổng số thứ tự âm. Nhìn vào tổng số thu thập được cho thấy Magento sẽ áp dụng thẻ quà tặng cho số tiền nghịch đảo. Nếu tôi vô hiệu hóa thẻ quà tặng, thì nó sẽ áp dụng Tín dụng lưu trữ (ngay cả khi tín dụng không tồn tại). Tôi nghi ngờ đây chỉ là một trò hề (và có thể là cá trích đỏ).

Bất cứ ai cũng có thể giúp xác định chính xác nơi Magento buộc 0 với tổng số tiền tối đa của nó và làm thế nào chúng ta có thể thực hiện yêu cầu? Tôi không muốn chỉ đơn giản là thiết lập tổng số, vì tôi muốn Magento tính toán mọi thứ một cách bình thường, chỉ với khoản trợ cấp của Grand Total âm.

Tinh thần của câu hỏi là tính khả thi về mặt kỹ thuật, nhưng một khi đã được giải quyết, tôi quan tâm đến bất kỳ 'vấn đề' hoặc suy nghĩ nào có thể ngăn cản việc sử dụng tổng số thứ tự tiêu cực từ quan điểm phi kỹ thuật.


1
Bạn có thể cho chúng tôi biết lý do tại sao bạn muốn điều này?
đánh dấu

@benmark - Như tôi biết bạn biết, đôi khi 'đó là những gì khách hàng muốn' hơn hẳn logic và lý do. Họ muốn cung cấp cho nhân viên bán hàng của mình (sử dụng mẫu đơn đặt hàng tùy chỉnh) hoàn toàn tự do về việc tạo đơn hàng và giá cả (đã hoạt động, ngay cả đối với các chi tiết đơn hàng có giá âm - miễn là tổng số đơn hàng trên 0. Đây chỉ là thực hiện đó là một bước nữa để cho phép toàn bộ đơn hàng âm nếu muốn). Cảm ơn vì bất kì sự giúp đỡ nào của bạn!
Morgon

Bạn có thể đưa ra một ví dụ thế giới thực, nơi điều này sẽ hữu ích?
James Anelay - TheExtensionLab 15/1/2015

Làm thế nào bạn sẽ đối phó với bản ghi nhớ tín dụng?
Maikel Koek

@MaikelKoek - Khách hàng không thực sự làm bản ghi nhớ tín dụng, vì vậy tôi không nghĩ rằng điều đó sẽ có tác động.
Morgon

Câu trả lời:


4

Đây dường như là một quyết định rất mạo hiểm. Nếu bạn triển khai nó, bạn sẽ cần ghi đè quá nhiều lõi, khiến trang web cực kỳ khó nâng cấp và hỗ trợ.

Thực hiện tìm kiếm trong lõi Magento để max(0trả về kết quả trong các lĩnh vực sau:

  • Enterprise_CustomerBalance_Model_Observer::creditmemoDataImport()
  • Enterprise_GiftCard_Model_Catalog_Product_Price_Giftcard::getFinalPrice()
  • Mage_Bundle_Model_Product_Price::getFinalPrice()
  • Mage_Catalog_Model_Product_Type_Price::getFinalPrice()
  • Mage_Catalog_Model_Product_Type_Configurable_Price::getFinalPrice()
  • Mage_Catalog_Model_Product_Type_Grouped_Price::getFinalPrice()
  • Mage_CatalogRule_Helper_Data::calcPriceRule()
  • Mage_Downloadable_Model_Product_Price::getFinalPrice()
  • Mage_SalesRule_Model_Validator::process()
  • Mage_Tax_Block_Sales_Order_Tax::_initSubtotal()
  • Mage_Tax_Model_Sales_Total_Quote_Tax (multiple uses)

Và nhiều hơn nữa trong các mẫu trong khu vực adminhtml và frontend. Bạn có thể cần phải viết lại nhiều mô hình này để đạt được chức năng mong muốn.

Bạn có thể muốn xem xét các lựa chọn thay thế dưới đây:

  • Cung cấp cho nhân viên bán hàng đăng nhập vào khu vực quản trị Magento và cho phép họ tạo đơn hàng từ đó - toàn quyền kiểm soát giá cả mặt hàng, v.v.
  • Sử dụng tín dụng cửa hàng nếu khách hàng sẽ nhận lại tín dụng (Tôi cho rằng đây là đơn hàng có tổng âm sẽ là bao nhiêu?)

Nếu bạn cung cấp một kịch bản trong đó một đơn đặt hàng sẽ kết thúc với tổng số âm và cũng là lý do đằng sau nó thì cộng đồng sẽ có thể cung cấp cho bạn câu trả lời tốt hơn. Thật khó để giải quyết một vấn đề như thế này cho đến khi bạn hiểu được giá trị kinh doanh đằng sau quyết định.


Tốt ans. Tôi thích điều đó :)
Rama Chandran M
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.