2010-10-08 13 views
5

Bir Magento mağazasını tek bir katalog kullanarak 4 etki alanı üzerinden yapıyorum: ABD için 1 ve Avrupa için 3 (İngiltere, Fransızca ve Almanca). Avrupa'da 1, Amerika Birleşik Devletleri'nde 1 ve ABD'de bir tür gayriresmi/dahili "depo" olan eşantiyon ve benzeri yerlerin yerine getirildiği ve Magento'da envanter seviyelerini takip etmediğimiz 1 yenileme deposu var. Web dışı satışlar, eşantiyonlar, ticari şovlar gibi dahili/yönetici siparişleri gibi düz web satışları gibi belirli işlem türlerini takip etmemiz gerekir. Planım, temel sipariş modelini genişletmek ve bir çeşit "sipariş/işlem türü" eklenmesidir. Daha sonra, bir siparişin yerleştirilmesi üzerine, sipariş verilerinin işlenmesi ve depo kimliğine ve 'sipariş türü' değerine göre yerine getirilmesi için hangi depoya gönderileceğini yönetir.Magento özel sipariş özniteliği/alanları? Kendimi ayağımda mı çekiyorum?

Magento'ya yeni olmak, bu tür bir kurulumun herhangi bir sebepten dolayı kötü bir fikir olup olmadığını bilmek istiyorum. Kendimi ayağımdan mı vuruyorum? Tek bir kataloğun sorunlu olmasının bir sebebi var mı? Bu akışı idare etmenin daha kolay mı yoksa daha iyi bir yolu var mı? Ürünlere yapabileceğiniz gibi siparişlere özel özellikler eklemenin bir yolu var mı?

cevap

15

Doğru yönde ilerliyorsunuz ama (Magento'nun çoğunda olduğu gibi) birkaç seçenek var. Buradaki en önemli prensip, modifikasyonların mimarisinin, çekirdeğin üzerindeki güncellemelerin/yamaların ele geçirildiği duruma yol açmamasıdır. Bunun ilginç olanı, Magento'nun mevcut sürümdeki Mage_Sales_Model_Order (ve ilgili nesneler) için yüksek oranda genişletilebilir ve yükseltme güvenli (çoğunlukla) EAV modelinden uzaklaştığıdır. Bu, yükseltme güvenli bir şekilde, IMHO'da özellikler eklemek daha zor hale getirir.

Yeni özellik değerlerinizi eklemek için Gözlemci sistemini kullanmanızı öneririm, ancak ilgili bir Model içine. Diğer bir deyişle, özniteliği Sipariş modeline eklemek yerine, bir order_id ve özel öznitelikler içeren bir model oluşturun. Uygun olaya (muhtemelen tüm Siparişler için sales_convert_quote_to_order veya ön siparişler için checkout_type_onepage_save_order_after) kancalayın ve değerleri Özel Modelinizde ayarlamak için Teklif Öğelerini inceleyin. Siparişi yerine getirme işlemini gerçekleştirme işlemini gerçekleştirdiğinizde, özel öznitelikleri order_id aracılığıyla arayabilirsiniz.

+1

Mükemmel yanıt. Mağazadan yeni sürüme geçişi sağlamak için +1, yeni sürüme geçişin güvenli olmasını sağlar. – silvo

+0

Teşekkürler Jonathan, bu kulağa mükemmel geliyor! –