Chia đơn hàng thành các đơn hàng riêng biệt và tính toán vận chuyển riêng biệt với up và fedex và các địa chỉ xuất xứ khác nhau


8

Khi một khách hàng đến cửa hàng của chúng tôi và đi kiểm tra nhiều mặt hàng, tôi cần viết một mô-đun để tính toán vận chuyển dựa trên một số yếu tố. Tôi đã xác định từ nghiên cứu của mình rằng những điều sau đây sẽ xảy ra:

Đầu tiên, tôi cần tách các mục giỏ hàng thành các đơn đặt hàng khác nhau để tính toán vận chuyển. Tôi muốn các đơn đặt hàng được sắp xếp theo giá trị thuộc tính "nhà cung cấp". "Nhà cung cấp" là một thuộc tính mà chúng tôi đã thêm vào hệ thống áp dụng cho tất cả các sản phẩm đơn giản. Vì vậy, trong giỏ hàng có một chiếc áo màu hồng có giá trị "nhà cung cấp" "1", một cây bút chì có giá trị "nhà cung cấp" "1" và một chiếc áo màu xanh có giá trị "nhà cung cấp" "2". Tất cả các mặt hàng có giá trị "nhà cung cấp" "1" cần phải là một đơn hàng, trong khi mặt hàng có "nhà cung cấp" giá trị "2" cần phải là một đơn hàng khác nhau. Tôi thấy câu hỏi khác này trả lời vấn đề nan giải này, nhưng sau đó lại đưa ra một câu hỏi khác.

Thứ hai, tôi cần tính toán vận chuyển với các chức năng vận chuyển UPS và FedEx mặc định của Magento nhưng với một địa chỉ xuất xứ được xác định bởi số giá trị "nhà cung cấp" (được lưu trữ trong một bảng cơ sở dữ liệu riêng). Mọi góp ý đều được chào đón!

Tôi đang sử dụng đoạn mã để giúp tôi bắt đầu từ đâyđây .

Tôi có thể sẽ có một vài câu hỏi, nhưng những câu hỏi đầu tiên là những câu in đậm ở trên.

CẬP NHẬT Tôi quyết định tốt nhất là ghi đè lên nhiều mô-đun lõi magento để thực hiện những gì tôi đang cố gắng thực hiện. Vui lòng giúp tôi tìm vị trí và những gì cần đặt để thao tác chức năng đa năng Magento để chia nhỏ các mặt hàng của đơn hàng thành các lô hàng dựa trên thuộc tính "nhà cung cấp"! Tôi đang vật lộn với điều này.


1
Đa nhiệm của Magento thực hiện điều này một cách tự nhiên. Có lẽ bạn có thể sử dụng chức năng đa điểm mà không hiển thị cho khách hàng?
philwinkle

Off topic: Bạn có phiền khi chấp nhận câu trả lời trên, hoặc đóng lại, những câu hỏi mở cũ của bạn? Chúng tôi đang cố gắng hết sức để tăng tỷ lệ trả lời trong giai đoạn beta. Cảm ơn.
philwinkle

1
Bây giờ tôi sẽ xem xét cả hai câu trả lời đa dạng và không được chấp nhận. Thông thường, tôi đã không chấp nhận vì tôi đã chuyển sang một thứ khác và sẽ quay lại với nó. Tuy nhiên, tôi sẽ xem và xem nếu tôi bỏ lỡ một số
CaitlinHavener

Một cách khác là triển khai một cái gì đó như Unirgy uDropship cũng kết hợp chức năng loại nhà cung cấp mà bạn hiện đang viết; nhưng nó cung cấp cho các nhà cung cấp một cổng thông tin cho lô hàng, tạo nhãn vận chuyển và nhiều hơn nữa. Tôi không làm việc và không được Unirgy chứng thực.
philwinkle

1
Tôi không muốn sử dụng tiện ích mở rộng dropship. Có nhiều yếu tố tại sao tôi không thể.
CaitlinHavener

Câu trả lời:


3

Một điều cần xem xét ở đây là bạn có thể chỉ cần áp dụng một số thay đổi mặt trước mỹ phẩm cho các mẫu đa biến ( template/checkout/multishipping/) để hai đơn hàng chỉ xuất hiện dưới dạng một đơn hàng cho khách hàng. Các mẫu shipping.phtmloverview.phtmlmẫu chia hai đơn hàng, mỗi đơn hàng có một tiêu đề (Địa chỉ 1 trên 2, v.v.) và bản sao khác để hiển thị đó là hai đơn hàng.

Thay vì mặc định, tôi có thể đề xuất một chút sáng tạo trên các mẫu này để hai đơn hàng được phân tách đơn giản để chúng đơn giản xuất hiện dưới dạng hai mục hàng riêng biệt.

Bit tiếp theo sẽ là xử lý các nguồn gốc vận chuyển khác nhau dựa trên thuộc tính của nhà cung cấp. Điều này có thể được thực hiện trong Mage_Shipping_Model_Shipping. Bạn có thể thấy ngay trên cùng là nơi Magento đang lấy địa chỉ xuất xứ vận chuyển từ cấu hình và sau đó tiếp tục xuống trong requestToShipment()phương thức, các thành phần địa chỉ gốc được gán cho yêu cầu giao hàng (mà tôi giả sử sẽ được sử dụng sau này tùy thuộc vào phương thức giao hàng gọi là).

Điều đó ít nhất có thể là một hướng để đi vào. Đọc qua câu hỏi của bạn và cập nhật của bạn tôi có ấn tượng rằng bạn đang làm điều này trở nên khó khăn hơn mức cần thiết. Luôn nhớ rằng nói chung là tốt nhất để Magento làm những gì nó muốn làm và chỉ sửa đổi các bit nhỏ để xử lý các trường hợp cụ thể của bạn. Phần lớn những gì bạn yêu cầu đã được thực hiện trong lõi, do đó có vẻ hơi ngớ ngẩn khi viết lại các thành phần đa vận chuyển khi có thể có các tùy chọn đơn giản hơn.


Làm thế nào nó sẽ tính toán vận chuyển cho mỗi lô hàng được đóng gói bởi thuộc tính nhà cung cấp?
CaitlinHavener

Các tính toán vận chuyển sẽ không thay đổi, vì Mage_Shipping_Model_Shippingchỉ cần thay thế địa chỉ xuất xứ trong yêu cầu vận chuyển bằng nguồn gốc được chỉ định cho nhà cung cấp đó. Magento sau đó sẽ tiếp tục về việc kinh doanh của mình và kéo bất kỳ mức giá vận chuyển nào sẽ áp dụng cho đơn đặt hàng đó. Tôi có thể thấy một trong các mô-đun vận chuyển của WebShopApps hữu ích ở đây, vì nó cho phép bạn chỉ định các phương thức giao hàng dựa trên các tiêu chí khác nhau. - một lần nữa, đây là tất cả trên lý thuyết, tôi chưa từng làm điều gì như thế này trước đây, vì vậy có thể có một số cảnh báo (luôn luôn có). -
pspahn

Tôi đang kiểm tra các phần mở rộng webshopapp. Tôi nghĩ rằng những gì tôi đang ở thời điểm này bị nhầm lẫn bởi ... là lớp / phương thức nào nói với lớp Mage_Shipping_Model_Shipping "hey đây là một đơn đặt hàng và đây là các mục trong đó". Tôi có thể tìm thấy nó ở đâu?
CaitlinHavener

1
Hãy nhìn vào /app/code/core/Mage/Sales/Model/Quote.php- Hãy nhớ rằng Magento không hoàn toàn tuyến tính như các giỏ hàng khác. Đi xuống lỗ thỏ và xem cách báo giá được thay đổi thành đơn đặt hàng (và tín dụng, v.v.). Tại một số điểm, bạn sẽ tìm thấy (các) phương pháp bạn muốn thay đổi. Một lần nữa, như tôi đã nói trước đây, thường chỉ có lợi khi đầu tư vào một mô-đun phụ trợ chất lượng (và quan trọng là, sự hỗ trợ) sẽ hoàn thành những gì bạn cần một cách nhanh chóng. Một số đai ốc và bu lông không thích bị thay đổi.
pspahn

Nếu tận dụng để biết thêm chi tiết, xin vui lòng giúp đỡ! Cảm ơn bạn rất nhiều vì sự giúp đỡ ở đây quá. Bạn cứu tôi với! Đây là dự án Magento khó nhất tôi từng có cho đến nay! magento.stackexchange.com/questions/7635/ Ấn
CaitlinHavener
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.