10

私はかなり奇妙な問題を抱えています。誰かが私を助けてくれることを願っています。

私の問題に影響を与える主な構成設定は次のとおりです。

  • 管理画面のカタログ価格は税込表示です
  • フロントエンドのカタログ価格は税込みで表示されています
  • ショッピング カート内の商品は税抜きで表示されます (そのため、小計の近くに個別に表示されます)。

これまでのところ、すべてが正常に機能しています。この問題は、カスタム ajax ミニ カート モジュールで発生します。カートからアイテムのコレクションを取得しますが、ショッピング カートのアイテムから価格を取得しているため、税抜きで取得します。

これは、私が何を意味するかを例示するためのコードです。20%の税金と、管理価格 (税込) が120$に設定された製品、 60$ (税込)の費用がかかるオプションを想定します。税金を除くと、これらは100$50$になります。価格 + オプション + 税 => 180$を取得したい

$quote = Mage::getSingleton('checkout/session')->getQuote();
$items = $quote->getAllVisibleItems();
foreach ($items as $item) {
    echo $item->getPrice(); // 150$ - price excluding tax
    echo $item->getPriceInclTax(); // 150$ - price excluding tax
    echo $item->getProduct()->getPrice(); // 120$ price including tax, BUT without the customer selected options.
}

PS:私が話しているカスタム オプションは、ユーザーが選択したものです。たとえば、製品の価格に +50 ドルを追加するインストール チェックボックスです。

4

6 に答える 6

2
- Get products id, name, price, quantity, etc. present in your cart.
- Get number of items in cart and total quantity in cart.
- Get base total price and grand total price of items in cart.

Get all items information in cart
// $items = Mage::getModel('checkout/cart')->getQuote()->getAllItems();
$items = Mage::getSingleton('checkout/session')->getQuote()->getAllItems();

foreach($items as $item) {
    echo 'ID: '.$item->getProductId().'<br />';
    echo 'Name: '.$item->getName().'<br />';
    echo 'Sku: '.$item->getSku().'<br />';
    echo 'Quantity: '.$item->getQty().'<br />';
    echo 'Price: '.$item->getPrice().'<br />';
    echo "<br />";           
}

Get total items and total quantity in cart
$totalItems = Mage::getModel('checkout/cart')->getQuote()->getItemsCount();
$totalQuantity = Mage::getModel('checkout/cart')->getQuote()->getItemsQty();

Get subtotal and grand total price of cart
$subTotal = Mage::getModel('checkout/cart')->getQuote()->getSubtotal();
$grandTotal = Mage::getModel('checkout/cart')->getQuote()->getGrandTotal();
于 2013-03-12T10:23:00.920 に答える
1

やってみました:

$product->getFinalPrice();

// or this?
$product->getPriceModel()->getFinalPrice($qty, $product);
于 2013-03-01T13:33:13.200 に答える
1

正確な問題の解決策は見つかりませんでしたが、この正確な機能を模倣するように設定を変更したところ、発生した問題はなくなりました。

まず、サイト上のすべての税金を削除し、magento にすべての価格が税抜きであることを伝えました (税込みであっても)。

減税は、カスタム グループに適用されるプロモーションを通じて行われるようになったため、

$tax = 20; // percent 

の削減を追加します

(1 - (1 / ($tax / 100 + 1)))*100 
// for 20% tax => 16.6667% reduction
// for 24% tax => 19.3548% reduction

小数点以下4桁(これはmagentoが受け入れるのと同じくらいです)。時々 1 セントの誤差があるかもしれません - これが問題でなければ、それを試してみてください!

これで、ウェブサイト全体の価格が製品に対して正確に表示されます (プロモーションは製品ごとではなくカートごとに適用されるため)。

于 2013-03-11T08:18:01.683 に答える
1

の出力は何$item->getOptions()ですか?試しました$item->getData('price')か?カスタム オプションをどのように適用しますか? の出力は何$item->debug()ですか? そこで必要なものが見つかるかもしれません。

よろしくサイモン

于 2013-03-09T12:32:32.550 に答える
0

これを試すことができます:

$grandTotal = $this->helper('checkout/cart')->getQuote()->getGrandTotal();
echo $text .= $this->__(' Total: %s', $this->helper('core')->formatPrice($grandTotal, false));
于 2013-03-11T06:25:38.727 に答える
0

ヘッダーにカートの数量を表示する

if ($parentBlock = $this->getParentBlock()) {
$count = $this->helper('checkout/cart')->getSummaryCount();
if( $count == 1 ) {
echo $text = $this->__('My Cart (%s item)', $count);
} elseif( $count > 0 ) {
echo $text = $this->__('My Cart (%s items)', $count);
} else {
echo $text = $this->__('My Cart (0 items)');
}
}

ヘッダーにカートの合計金額を表示する

$grandTotal = $this->helper('checkout/cart')->getQuote()->getGrandTotal();
echo $text .= $this->__(' Total: %s', $this->helper('core')->formatPrice($grandTotal, false));
于 2013-03-12T10:28:25.143 に答える