Bunun herhangi bir şekilde yardımcı olup olmayacağını gerçekten bilmiyorum, ama araştırılacak bir şey var.
Bu sizin mümkündür collecttotals
model derecesi farklı sipariş edilir ve bu vergi sipariş ediliyor / grand_total sonra uygulanır
Sorunun bu olup olmadığını aşağıdaki gibi test edebilirsiniz. (bunun hata ayıklama bilgileri almak için bir çekirdek dosyayı ayarlamayı gerektirdiğini unutmayın, lütfen bunu canlı bir sitede denemeyin!)
Bulunduğu yöntemi düzenleyin:
Mage_Sales_Model_Quote_Address::collecttotals
ve yönteme bir satır ekleyerek modellerin işlendikçe çıktısını almanızı sağlar.
public function collectTotals()
{
Mage::dispatchEvent($this->_eventPrefix . '_collect_totals_before', array($this->_eventObject => $this));
foreach ($this->getTotalCollector()->getCollectors() as $model) {
mage::log($model->getCode()); // <===== ADD THIS LINE
$model->collect($this);
}
Mage::dispatchEvent($this->_eventPrefix . '_collect_totals_after', array($this->_eventObject => $this));
return $this;
}
günlüğün etkin olduğundan emin olun.
konsoldan günlük dosyasını kuyruğa alın: tail -f system.log
Sorunu kullanıcı arabirimi aracılığıyla yeniden oluşturun.
Günlüğünüzde aşağıdaki gibi girişler alacaksınız (bu bir vanilya 1.9.2.2'den - başka girişleriniz olabilir)
2015-12-21T05:54:12+00:00 DEBUG (7): nominal
2015-12-21T05:54:12+00:00 DEBUG (7): subtotal
2015-12-21T05:54:12+00:00 DEBUG (7): msrp
2015-12-21T05:54:12+00:00 DEBUG (7): freeshipping
2015-12-21T05:54:12+00:00 DEBUG (7): tax_subtotal
2015-12-21T05:54:12+00:00 DEBUG (7): weee
2015-12-21T05:54:12+00:00 DEBUG (7): shipping
2015-12-21T05:54:12+00:00 DEBUG (7): tax_shipping
2015-12-21T05:54:12+00:00 DEBUG (7): discount
2015-12-21T05:54:12+00:00 DEBUG (7): tax
2015-12-21T05:54:12+00:00 DEBUG (7): grand_total
Tekrarlandığını göreceksiniz, bu yüzden sadece nerede başladığını ve bittiğini görün, deseni görmek kolay olmalı
Yukarıdaki son iki girişe dikkat edin: Vergi grand_total'dan önce gelir. Bu olabilir grand_total uygulanan vergi olmaz yani bu sipariş vurmak dışında değildir ve vergi grand_total sonra görünüyorsa mümkün.
DÜZENLE:
Tamam, bu yüzden atıfta bulunulan sorunun aslında koleksiyonun koleksiyonların sıralanmasına işaret ettiğini görmedim. Sorun olabileceğinden şüphelendim, ancak bunu PHP7'de kendim test etmedim
Bir çözüm var, ama çok hoş değil. Mağazaya modelleri toplayıcıya yerleştiren herhangi bir yeni uzantının not edilmesi ve sıralamaya ek olarak eklenmesi gerekir, aksi takdirde işler daha da yanlış gidebilir. İleride bir bakım sorunu olabilir.
<sort_order>
Toplamlar yapılandırmasına belirli bir değer yerleştirerek sıralama düzenini zorlamanız yeterlidir . Bunu, her bir toplayıcı için siparişi belirlediğiniz, yalnızca config.xml dosyasına sahip olan kendi uzantınız aracılığıyla yapabilirsiniz.
config.xml dosyasında aşağıdaki gibi yönergeler bulunur:
<sales>
<quote>
<totals>
<nominal>
<sort_order>100</sort_order>
</nominal>
<subtotal>
<sort_order>200</sort_order>
</subtotal>
<msrp>
<sort_order>300</sort_order>
</msrp>
<freeshipping>
<sort_order>400</sort_order>
</freeshipping>
......
insert each collector model with a sort directive
......
</totals>
</quote>
İlerlemeye ek alan eklemek için her bir sıralama direktifi arasında büyük boşluklar kullanın.
Belirtildiği gibi, çok zarif değil, ancak acil sorununuzu çözebilir.
Ayrıca, sistemde başka toplayıcı yönergeleri olduğunu unutmayın, bu yüzden de yanlış olabilirler / ayarlanması gerekebilir
Temel satış uzantısı config.xml dosyasını kontrol edin ve arama yapın <totals>
Orada bulacaksınız:
<order_invoice>
<order_creditmemo>
<pdf>
Çekirdek / 3. taraf olsun, diğer uzantılarda başkaları olabilir
Umarım yardımcı olur.
PS: Ben PHP7 bu test etmedim. Php5.x altında sort_order yönergesi çalışmalarının yerleştirilmesini biliyorum