Since Magento 2.1, Cart has a @deprecated tag. Nevertheless, it is still used by Magento itself to store products when shopping. Is the deprecation intended, and if so, and what should we use instead?
- 70,385
- 34
- 188
- 352
- 673
- 6
- 9
-
Welcome to Magento.SE! Great question! You may think to revise the title a bit so it doesn't ask for subjective answer. For instance, "Should I still use?" is probably better than "why was it deprecated" – philwinkle Jun 24 '16 at 14:52
-
Thanks for your reply, philwinkle! However, @deprecated already implies that it should not be use anymore. I just wanted to know what it is replaced by, and because it is still actively used by Magento, I have a small suspicion that the class was deprecated by mistake. :) – Patrick van Bergen Jun 24 '16 at 15:02
-
Outside of a core team member the answer cannot be canonically answered. But I think that as it stands it is a perfectly valid question. – philwinkle Jun 24 '16 at 15:32
-
for the record. deprecation removed in https://github.com/magento/magento2/pull/11070 – M.Elwan Mar 31 '18 at 21:51
2 Answers
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 as you said, it is still used in the software so you can still keep using it for now.
I reckon this @deprecated tag is a similar flag as the one for the load() method from Magento\Framework\Model\AbstractMode
Same goes for the XML <action> tag which is deprecated but still is the only option in some cases: http://goo.gl/laVP35 and is still widely used in 2.1: https://github.com/magento/magento2/search?l=xml&q=action&utf8=%E2%9C%93
- 70,385
- 34
- 188
- 352
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 contracts and \Magento\Quote\Api\CartItemRepositoryInterface cannot replace the cart model either, I agree with your suspicion that it has been deprecated too early.
Of course, a final answer can only be given by a Magento employee.
- 65,791
- 25
- 187
- 421