우리는 1.9 & php7에서 일하고 있습니다; 페이팔 용의자 사기로이 문제를 감지했습니다 (차액 금액으로 인해).
프론트 엔드에서 모두 정확 (세금 적용); 그러나 계산 및 계산에서 마 젠토는 세금없이 총계를 사용합니다.
실제 오더 계산 :
세금 미포함 제품 가격 + 세금 포함 배송비 = 총 결제 금액
php5로 전환하면 계산이 정확합니다.
어떤 아이디어?
감사!
우리는 1.9 & php7에서 일하고 있습니다; 페이팔 용의자 사기로이 문제를 감지했습니다 (차액 금액으로 인해).
프론트 엔드에서 모두 정확 (세금 적용); 그러나 계산 및 계산에서 마 젠토는 세금없이 총계를 사용합니다.
실제 오더 계산 :
세금 미포함 제품 가격 + 세금 포함 배송비 = 총 결제 금액
php5로 전환하면 계산이 정확합니다.
어떤 아이디어?
감사!
답변:
php7에 대한 총계 계산으로 마 젠토 문제를 해결하기 위해 마 젠토 모듈을 만들었습니다. 제가 경험 한 문제는 아마존 결제 체크 아웃 페이지에서 아마존 모듈 로 지불 하기 위해 세금이 총계에 두 번 추가되었다는 것 입니다.
이 게시물 ( /magento//a/97107/35665 ) 에서 archigrafix가 제공 한 답변으로 내 문제가 해결되었으므로 간단히 모듈에 포함 된 수정 사항입니다.
이것이 어떤 식 으로든 도움이 될지 모르겠지만 조사해야 할 것이 있습니다.
당신의 가능성이 있습니다 collecttotals
모델의 순서가 다르게 주문하고, 그 세금이 주문되고 / grand_total 후에 적용
다음과 같이 이것이 문제인지 테스트 할 수 있습니다. (여기에는 디버그 정보를 얻기 위해 코어 파일을 조정하는 것이 포함됩니다. 실제 사이트에서는 시도하지 마십시오!)
다음 위치에있는 메소드를 편집하십시오.
Mage_Sales_Model_Quote_Address::collecttotals
메소드에 한 줄을 추가하면 처리되는 모델을 출력 할 수 있습니다.
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;
}
로깅이 사용 가능한지 확인하십시오.
콘솔을 통해 로그 파일을 미십시오. tail -f system.log
프론트 엔드를 통해 문제를 재현하십시오.
당신은 당신의 로그에 다음과 같은 항목을 얻을 것입니다 (바닐라 1.9.2.2에서-다른 항목이있을 수 있습니다)
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
반복되는 것을 볼 수 있습니다. 시작하고 끝나는 곳을 보면 패턴을 쉽게 볼 수 있어야합니다.
위의 마지막 두 항목에 유의하십시오. 세금은 grand_total보다 우선합니다. 그것은 할 수있다 grand_total 적용 세금을하지 않도록,이 순서가 구타하고, 세금 grand_total 후 나타나고있다 가능하다.
편집하다:
좋아, 그래서 나는 언급 된 질문이 실제로 수집품의 분류를 가리키는 것을 보지 못했다. 나는 그것이 문제 일지 모른다고 생각했지만 PHP7에서 직접 테스트하지는 않았습니다.
해결책이 있지만 그리 좋지는 않습니다. 콜렉터에 모델을 삽입하는 상점에 배치 된 모든 새 확장을 기록하고 추가로 정렬에 추가해야합니다. 그렇지 않으면 상황이 더 잘못 될 수 있습니다. 앞으로 약간의 유지 관리 문제가 될 수 있습니다.
특정을 배치하여 정렬 순서를 강제 적용하십시오. <sort_order>
총계 구성에 을 됩니다. 각 확장 프로그램의 순서를 지정하는 config.xml 만있는 자체 확장을 통해이를 수행 할 수 있습니다.
config.xml에 다음과 같은 지시문이 있습니다.
<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>
공간을 추가로 삽입 할 수 있도록 각 정렬 지시문 사이에 큰 간격을 사용하십시오.
언급했듯이 매우 우아하지는 않지만 즉각적인 문제를 해결할 수 있습니다.
또한 시스템에 다른 수집기 지시문이 있으므로 잘못 조정해야 할 수도 있습니다.
핵심 판매 확장 config.xml을 확인하고 확인하십시오. <totals>
거기에서 찾을 수 있습니다 :
<order_invoice>
<order_creditmemo>
<pdf>
다른 확장 프로그램에 다른 사람이있을 수 있습니다. 핵심 / 타사
희망이 도움이됩니다.
추신 : 나는 PHP7에서 이것을 테스트하지 않았습니다. sort_order 지시어의 배치는 php5.x에서 작동한다는 것을 알고 있습니다.
Magento 1.6.2 및 PHP 7.0.2에서는 다음과 같이 해결했습니다.
1-먼저 로컬 config.xml을 작성했습니다. /app/code/core/Mage/Sales/etc/config.xml을 /app/code/local/Mage/Sales/etc/config.xml에 복사했습니다.
이제 올바르게 계산됩니다.