72
I think you messed up some closing / opening tags and amount of them this code works:
<referenceBlock name="checkout.cart.shipping">
<arguments>
<argument name="jsLayout" xsi:type="array">
<item name="components" xsi:type="array">
<item name="block-summary" xsi:type="array">
...
65
$cart = Mage::getModel('checkout/cart')->getQuote();
foreach ($cart->getAllItems() as $item) {
$productName = $item->getProduct()->getName();
$productPrice = $item->getProduct()->getPrice();
}
in $cart you got all collection of cart item and if you want to get product id,name you can get from using foreach loop
41
This is my first answer on this site. I've been struggling trying to make this work for the past two days and I was finally able to make it work, so I though it would be nice to share it.
First of all you need to create a module:
registration.php
etc/module.xml
view/frontend/layout/default.xml
view/frontend/templates/minicart_open.phtml
view/frontend/web/...
35
My suggestion would be to put an observer on the sales_quote_collect_totals_before event which is fired in the Mage_Sales_Model_Quote::collectTotals method before it starts the total collection process. Then from inside this observer method, iterate the quote items and change the tax class on the (already loaded) product object you can retrieve from the ...
35
When I'm interviewing candidates, and in particular junior candidates, I first assess whether they're going to be good developers. Nevermind Magento.
So you would hear a lot of generic, non-Magento, questions from me up front. Here are just a few:
Explain the difference between a map, a hash, an array, a collection, and a list.
Explain what you think "...
32
Mage::helper('checkout/cart')->getItemsCount() -- return shopping cart items count means how many sku add to shopping cart.
Mage::helper('checkout/cart')->getSummaryCount() -- return shopping cart items summary (suppose you add sku1 6 qty and sku2 3 qty = total 9 qty return)
32
I'll answer the question in two parts:
I. Where should you change the checkout URL?
The destination in link.phtml is $block->getCheckoutUrl(). You should not change the template to change functionality, but change the block Magento\Checkout\Block\Onepage\Link instead. To do so create a plugin for it with a method afterGetCheckoutUrl() to change the ...
answered Apr 16 '16 at 12:13
Fabian Schmengler
63.4k2323 gold badges169169 silver badges397397 bronze badges
29
I found another solution. The following code works for me.
$quote = Mage::getSingleton('checkout/session')->getQuote();
$cartItems = $quote->getAllVisibleItems();
foreach ($cartItems as $item) {
$productId = $item->getProductId();
// Do something more
}
28
There are many things wrong here and I feel compelled to do a code review with you. See the end for the correct approach.
Code review:
This line is loading a product with an undefined $sku var:
$product = Mage::getModel('catalog/product')->getCollection()
->addAttributeToFilter('sku', $sku)
->addAttributeToSelect('*')
->...
27
The use of Magento\Checkout\Model\Cart is deprecated.
You should use the session to get the quote and your cart items.
use Magento\Checkout\Model\Session;
public function __construct(
...
Session $session
...
) {
...
$this->_session = $session;
...
}
public function yourFunction()
{
$items = ...
24
My guess is that the Magento team is planning to implement service contracts for this class.
However as of 2.1 if you check the app/code/Magento/Checkout/Api folder there's no class (yet) that implements such service contract.
I assume it'll happen at some point and the Magento team flagged that model to be deprecated in the future. However as I said and ...
answered Jun 24 '16 at 15:21
Raphael at Digital Pianism
67.1k2929 gold badges171171 silver badges338338 bronze badges
22
There are several methods that work in a different way:
$items = Mage::getSingleton('checkout/cart')->getQuote()->getItemsCollection();
Returns a quote item collection with all items associated to the current quote.
$items = Mage::getSingleton('checkout/cart')->getItems();
This is a shortcut for the method above, but if there is no quote it ...
answered Aug 11 '15 at 9:38
Fabian Schmengler
63.4k2323 gold badges169169 silver badges397397 bronze badges
21
The events catalog_product_type_prepare_full_options and catalog_product_type_prepare_lite_options are your friends
<?xml version="1.0"?>
<config>
<modules>
<Fooman_Example>
<version>0.1.0</version>
</Fooman_Example>
</modules>
<global>
<models>
...
19
@Tim gave a talk about this issue on the weekend: https://docs.google.com/presentation/d/1efPznQSVTrT1HAD1xQvCPC-Tgvr8jYok4X7ZEJhm9jE/edit
What you want is Method 2:
Add Following Event in Config.xml
<sales_quote_collect_totals_before>
<observers>
<hackathon_presentation>
<type>singleton</type>
<class>modulename/observer&...
answered Mar 14 '13 at 18:48
Fabian Blechschmidt
35k88 gold badges6868 silver badges179179 bronze badges
18
Nice wrap up of the bug above, Fabian!
For any further users who will come accross this bug, there is already a patch from Magento for this.
As an Enterprise customer, you can request/download PATCH_SUPEE-6190_EE_1.14.2.0_v1.sh to fix this.
Update 24.02.2016: This was also addressed in the latest SUPEE-7405 v 1.1 patch. According to Fabian on Twitter (see ...
18
The commit that deprecated the cart model is c4e9a77403655646a18d4277de96429c86bd34fa with the message
MAGETWO-51558: Mark Checkout Cart model as deprecated
This doesn't tell much, especially since this is the only commit that references the internal ticket number "MAGETWO-51558"
Since \Magento\Checkout\Api still does not contain any new service ...
answered Jun 24 '16 at 15:19
Fabian Schmengler
63.4k2323 gold badges169169 silver badges397397 bronze badges
18
I've also encountered this issue and I've found out that in vendor/magento/module-checkout/view/frontend/templates/cart/form.phtml ~line 27, Magento Team seems missed to put a dot for the 'action' classname. It's a small mistake that creates a big problem. Hopefully this will be fixed in 2.2.7
So from
action.clear
It should be
.action.clear
*Note: ...
18
bccomp() function belongs to BCMath package; if it's undefined, then possible this library not installed or it's not enabled for your PHP version. Like for php7.2 need to install for ubuntu distribution:
sudo apt install php7.2-bcmath
17
If you're new to Magento, this answer likely will not make sense. So either get an experienced Magento developer on this or start brushing up. With that, here's what you can try.
Prerequisites
Ensure that you have defined terms in Magento under Sales > Terms and conditions
Ensure that you have terms enabled in System Configuration > Sales > ...
17
You have to just keep below line in your minicart.phtml file to get
updated subtotal ,
This Below line is workig for all cases if cache is enable its working fine,
<span data-bind="html: getCartParam('subtotal')"></span>
For getting value of grandtotal,shipping rate,
You can get GrandTotal, subtotal and shipping rate for current quote ...
answered Jun 17 '16 at 5:28
Rakesh Jesadiya
39.2k1515 gold badges107107 silver badges171171 bronze badges
17
If you need to work with DOM elements, rendered by knockout from this template, you can use afterRender binding.
<div data-bind="afterRender: function() {alert('yes');}"></div>
17
I am not sure about my below solution:
May be you need to load Quote item object by item id
As you want set price then using setPrice() you cannot set your desire price for that cart item
$item = $quote->getItemById($item->getId());
if (!$item) {
continue;
}
$item->setQty((double) $qty);
$item->setCustomPrice($price);
$item->...
answered Mar 21 '17 at 6:09
16
It turned out that this is a bug in Mage_Sales_Model_Quote_Item::compare() that was introduced in Magento CE 1.9.2 / EE 1.14.2. The method is used to compare items to decide if they are the same product and can be merged (during login and when adding products to the cart).
When comparing all custom options, it should skip the options that are not ...
answered Jan 19 '16 at 16:03
Fabian Schmengler
63.4k2323 gold badges169169 silver badges397397 bronze badges
16
This will do the trick. From your question, I assume that the customer has already selected their desired shipping method.
<?php
$quote = Mage::getModel("checkout/session")->getQuote();
$amount = $quote->getShippingAddress()->getShippingAmount();
In fact, there are a number of methods available to you. Such as:
<?php
$address = $quote-&...
16
If you want to leave taxes enabled and with a value but just remove them from display remove the item with the name tax at the appropriate place.
For example to remove tax from the checkout cart sidebar add this to your themes (or module) app/design/frontend/<vendor>/<theme>/Magento_Checkout/layout/checkout_cart_index.xml:
<referenceBlock ...
15
This is how the different methods to get items from an order work:
getItems(): returns array of items from loaded order item collection
getAllItems(): returns array of all items that are not marked as deleted
getAllVisibleItems(): returns array of all items that are not marked as deleted and do not have a parent item
So to get only the configurable product ...
answered Apr 15 '16 at 19:14
Fabian Schmengler
63.4k2323 gold badges169169 silver badges397397 bronze badges
15
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$cart = $objectManager->get('\Magento\Checkout\Model\Cart');
// retrieve quote items collection
$itemsCollection = $cart->getQuote()->getItemsCollection();
// get array of all items what can be display directly
$itemsVisible = $cart->getQuote()->getAllVisibleItems();
// ...
15
I finally found the answer to this. The sticky behavior of the cart summary is due to the code in the file magento_root/vendor/magento/theme-frontend-blank/Magento_Theme/web/js/theme.js.
$('.cart-summary').mage('sticky', {
container: '#maincontent'
});
To remove this functionality, I copied the file theme.js to my theme magento_root/app/design/frontend/...
15
You can try the below code.
require([
'Magento_Customer/js/customer-data'
], function (customerData) {
var sections = ['cart'];
customerData.invalidate(sections);
customerData.reload(sections, true);
});
14
It's not a single call statement, but here is how you can do it:
Setup an observer to listen to the checkout_cart_add_product_complete and set a flag on the core/session object:
Mage::getSingleton('core/session')->setProductAddedToCartFlag(true);
When you are redirected back to the product page, you'll now have a flag set on the session object. You can ...
Only top voted, non community-wiki answers of a minimum length are eligible
Related Tags
cart × 2146magento2 × 727
magento-1.9 × 431
checkout × 344
addtocart × 184
product × 158
shopping-cart × 139
quote × 133
magento-2.1 × 108
event-observer × 91
shipping × 83
mini-cart × 83
magento-1.7 × 80
shopping-cart-price-rules × 77
price × 74
custom-options × 67
configurable-product × 64
ajax × 61
magento-1.8 × 60
magento2.3 × 58
php × 52
onepage-checkout × 51
session × 51
tax × 49
discount × 45