5
4

2 に答える 2

5

プロジェクトで変更されたチェックアウトファイルはありますか?または多分カスタムチェックアウト。配送が正しく機能することを確認するために確認する必要のあるコードの場所をリストします。

そもそも、Magentoには、送料を伴う非常に特別な作業プロセスがあります。これは「collectRates」と呼ばれ、パターン「composite」を変更したものです。

すべてがコードベースで正しく機能することを確認するには、最初にOnepage.phpモデル(app / code / core / Mage / Checkout / Model / Type / Onepage.php)をチェックする必要があります。330、341、556、616行目。コードがあるはずです

{address}->setCollectShippingRates(true)

ここで、{address}は現在のアドレス変数です。

このコードは、Onepage Checkoutページが初期化されているときに「collectRates」プロセスがすでに処理されており、フラグ「collect_shipping_rates」が「false」に設定されているため、将来の「collectRates」プロセスにとって重要です。trueに戻されていない場合、次の「collectRates」プロセスは実行されません。

上記の場所を確認しても機能しない場合は、Mage_Checkout_Block_Onepage_Shipping_Method_Available::getShippingRatesメソッドにログを追加することをお勧めします。メソッドが適切に実行され、$ this-> getAddress()-> getGroupedAllShippingRates()呼び出しからいくつかのレートが返される場合、locanテーマの.phtmlテンプレートに問題がある可能性があります(.phtmlへのデフォルトパスはapp / design / frontend /です)。 base / default / template / checkout / onepage / shipping_method / available.phtml)。

$this->getAddress()->getGroupedAllShippingRates()呼び出し(Mage_Checkout_Block_Onepage_Shipping_Method_Available::getShippingRatesメソッド)の結果をログに記録する方法は次のとおりです。

$groups = $this->getAddress()->getGroupedAllShippingRates();
$printGroupes = array();
    foreach ($groups as $code => $groupItems) {
        foreach ($groupItems as $item) {
            $printGroupes[$code][] = $item->getData();
        }
    }
Mage::log($printGroupes, null,'special.log');

すべてのレートの結果配列は、var/logsフォルダーの下の「special.log」に記録されることに注意してください。

もっと助けていただければと思いますが、この問題にはコードを掘り下げる必要があります。デバッガーを入手できれば、ロギングよりもデバッガーの方が便利です。

乾杯!

于 2012-09-10T11:29:34.523 に答える
1

定額配送が機能するための価格を入力する必要があります

問題は国の選択にあるかもしれません

該当する国への発送は「特定の国」に設定され、「カナダ」を選択しました。

したがって、この配送方法は、チェックアウト時にフロントエンドでカナダを選択した場合にのみ表示されます。

または

これをすべての国に作成して、機能するかどうかを確認できます。

于 2012-09-05T18:30:14.790 に答える