Membagi pesanan menjadi pesanan terpisah dan menghitung pengiriman secara terpisah dengan ups dan fedex dan alamat asal yang berbeda

8

Ketika seorang pelanggan datang ke toko kami dan memeriksa beberapa item, saya perlu menulis modul untuk menghitung pengiriman berdasarkan beberapa faktor. Saya telah menentukan dari penelitian saya bahwa hal-hal berikut harus terjadi:

Pertama, saya perlu memisahkan item keranjang ke dalam pesanan yang berbeda untuk perhitungan pengiriman. Saya ingin pesanan diurutkan berdasarkan nilai atribut "vendor". "Vendor" adalah atribut yang kami tambahkan ke sistem yang berlaku untuk semua produk sederhana. Jadi katakanlah di kereta ada kemeja pink dengan "vendor" value "1", pensil dengan "vendor" value "1", dan kemeja biru dengan "vendor" value "2". Semua item dengan nilai "vendor" "1" harus satu urutan, sedangkan item dengan nilai "vendor" "2" harus merupakan urutan yang berbeda. Saya melihat pertanyaan lain ini menjawab dilema ini, tetapi kemudian memunculkan yang lain.

Kedua, saya perlu menghitung pengiriman dengan fungsi pengiriman UPS dan Fedex standar Magento tetapi dengan alamat asal yang ditentukan oleh nomor nilai "vendor" (disimpan dalam tabel database terpisah). Ada saran!

Saya menggunakan cuplikan kode untuk memulai dari sini dan di sini .

Saya mungkin akan memiliki beberapa pertanyaan, tetapi yang pertama adalah yang dicetak tebal di atas.

PEMBARUAN Saya memutuskan akan lebih baik untuk mengganti beberapa modul inti pengiriman magento untuk melakukan apa yang saya coba lakukan. Tolong bantu saya menemukan di mana dan apa yang harus dilakukan untuk memanipulasi fungsionalitas Magento multishipping untuk memecah item pesanan menjadi pengiriman berdasarkan atribut "vendor"! Saya berjuang dengan ini.

CaitlinHavener
sumber
1
Multishipping Magento melakukan ini secara asli. Mungkin Anda dapat menggunakan fungsionalitas multishipping tanpa menampilkannya kepada pelanggan?
philwinkle
Di luar topik: Apakah Anda keberatan menerima jawaban, atau menutup, pertanyaan terbuka lama Anda? Kami berusaha keras untuk menaikkan tingkat jawaban selama beta. Terima kasih.
philwinkle
1
Saya akan melihat jawaban multishipping dan tidak dapat diterima sekarang. Seringkali, saya belum menerima karena saya pindah ke sesuatu yang lain dan akan kembali ke sana. Namun demikian saya akan melihat dan melihat jika saya melewatkan beberapa
CaitlinHavener
Alternatif lain adalah menerapkan sesuatu seperti Unirgy uDropship yang juga menggabungkan fungsionalitas tipe vendor yang saat ini Anda tulis; tetapi memberikan vendor portal untuk pengiriman, menghasilkan label pengiriman dan banyak lagi. Saya tidak bekerja untuk, dan saya tidak didukung oleh Unirgy.
philwinkle
1
Saya tidak ingin menggunakan ekstensi dropship. Ada banyak faktor mengapa saya tidak bisa.
CaitlinHavener

Jawaban:

3

Sesuatu yang perlu dipertimbangkan di sini adalah bahwa Anda mungkin hanya perlu menerapkan beberapa perubahan front-end kosmetik pada templat multishipping ( template/checkout/multishipping/) sehingga dua pesanan hanya muncul sebagai satu pesanan kepada pelanggan. The shipping.phtmldan overview.phtmltemplate membagi dua perintah, masing-masing dengan header (Alamat 1 dari 2, dll) dan copy lain untuk menunjukkan itu adalah dua perintah.

Alih-alih default, saya mungkin menyarankan untuk menjadi sedikit kreatif pada template ini sehingga dua pesanan hanya dibagi sehingga mereka hanya muncul sebagai dua item baris terpisah.

Bit selanjutnya adalah menangani asal pengiriman yang berbeda berdasarkan atribut vendor. Ini mungkin bisa dilakukan di Mage_Shipping_Model_Shipping. Anda dapat melihat tepat di atas adalah tempat Magento mengambil alamat asal pengiriman dari konfigurasi dan kemudian lebih jauh ke bawah dalam requestToShipment()metode, elemen alamat asal ditugaskan untuk permintaan pengiriman (yang saya asumsikan akan digunakan nanti tergantung pada metode pengiriman dipanggil).

Setidaknya itu bisa menjadi arah untuk masuk. Membaca pertanyaan Anda dan pembaruan Anda Saya mendapat kesan bahwa Anda membuat ini lebih sulit daripada yang diperlukan. Selalu ingat bahwa umumnya yang terbaik adalah membiarkan Magento melakukan apa yang ingin dilakukan, dan hanya memodifikasi bit kecil untuk menangani kasus spesifik Anda. Mayoritas dari apa yang Anda butuhkan sudah dilakukan pada intinya, jadi agak konyol untuk menulis ulang komponen multi-pengiriman ketika mungkin ada pilihan yang lebih sederhana.

pspahn
sumber
Lalu bagaimana cara menghitung pengiriman untuk setiap pengiriman yang dibundel oleh atribut vendor?
CaitlinHavener
Perhitungan pengiriman tidak akan berubah, karena Mage_Shipping_Model_Shippinghanya akan mengganti alamat asal dalam permintaan pengiriman dengan asal yang ditetapkan untuk vendor itu. Magento kemudian akan melanjutkan bisnisnya dan menarik tarif pengiriman apa pun yang akan berlaku untuk pesanan itu. Saya mungkin bisa melihat salah satu modul pengiriman WebShopApps berguna di sini, karena memungkinkan Anda untuk menetapkan metode pengiriman berdasarkan berbagai kriteria. - sekali lagi, ini semua secara teori, saya belum pernah melakukan hal seperti ini sebelumnya, jadi mungkin ada beberapa peringatan (selalu ada). -
pspahn
Saya sedang memeriksa ekstensi-aplikasi webshopapp itu. Saya pikir saya pada saat ini bingung dengan ... apa yang kelas / metode memberitahu kelas Mage_Shipping_Model_Shipping "hei ini pesanan dan ini adalah item di dalamnya". Di mana saya dapat menemukan itu?
CaitlinHavener
1
Lihat /app/code/core/Mage/Sales/Model/Quote.php- Ingatlah bahwa Magento tidak begitu linier dengan kereta belanja lainnya. Pergilah ke lubang kelinci dan lihat bagaimana kutipan diubah menjadi pesanan (dan kredit, dll.). Pada titik tertentu Anda akan menemukan metode yang ingin Anda ubah. Sekali lagi, seperti yang saya katakan sebelumnya, seringkali bermanfaat untuk berinvestasi dalam modul backend yang berkualitas (dan yang paling penting, dukungan) yang akan mencapai apa yang Anda butuhkan dengan cepat. Beberapa mur dan baut tidak suka diubah.
pspahn
Jika Anda berhasil untuk rincian lebih lanjut, tolong bantu! Terima kasih banyak atas bantuannya di sini juga. Anda menyelamatkan saya! Ini adalah proyek Magento tersulit yang pernah saya kencani! magento.stackexchange.com/questions/7635/…
CaitlinHavener