Comments (5)
The method clearInstance()
is defined in the class Mage_Core_Model_Abstract
:
Now, let's look at the code:
magento-lts/app/code/core/Mage/Core/Model/Abstract.php
Lines 606 to 637 in 8572935
It has only 4 statements. The first and third statements you can scroll down the above code snippet and see that it does nothing. Whereas the event catalog_product_clear
is observed in
magento-lts/app/code/core/Mage/CatalogInventory/etc/config.xml
Lines 86 to 93 in 8572935
which is:
magento-lts/app/code/core/Mage/CatalogInventory/Model/Observer.php
Lines 76 to 92 in 8572935
I would think that this issue is invalid.
For your use case:
// Get the first available configurable product
$configurableProductId = Mage::getModel('catalog/product')->getCollection()
->addAttributeToFilter('type_id', 'configurable')
->addAttributeToFilter('status', Mage_Catalog_Model_Product_Status::STATUS_ENABLED)
->getFirstItem()->getId();
The getId()
part is unnecessary, can be simplified to just
// Get the first available configurable product
$configurableProduct = Mage::getModel('catalog/product')->getCollection()
->addAttributeToFilter('type_id', 'configurable')
->addAttributeToFilter('status', Mage_Catalog_Model_Product_Status::STATUS_ENABLED)
->getFirstItem();
And if you need the id, you can get it like so: $configurableProductId = $configurableProduct->getId();
.
If you agree, I am closing this.
from magento-lts.
My bad. The methods _clearReference()
and _clearData()
exist in Mage_Catalog_Model_Product
.
from magento-lts.
@kiatng Hi, don't forget this is a sample code only just to replicate the issue. The real code is fetching all ids based on many rules and to speed things up the collection is limited to only some fields.
Later on for the filtered product list the product needs to be loaded fully.
So I know I can just get the first item without loading later but it wouldn't showcase the issue then :)
Even if clear instance didn't exist in the product model, as long as it causes a bug and not clearing fully the model as expected, it would still need to be overriden in the product model to perform the task correctly in my opinion
from magento-lts.
Basically no matter the circumstances or how a product is loaded when invoking the type instance for a configurable product, if it returns the simple product type instance instead of the configurable one then it's a bug and not the expected behavior don't you agree?
from magento-lts.
Fixed in PR #3395
from magento-lts.
Related Issues (20)
- Fatal error: Uncaught Error: Call to a member function addData() on null HOT 2
- Deprecated functionality: preg_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated
- Deprecated functionality: strlen(): Passing null to parameter #1 ($string) of type string is deprecated
- Fatal error: Uncaught Error: Call to a member function setOnclick() on false HOT 2
- Deprecated functionality: nl2br(): Passing null to parameter #1 ($string) of type string is deprecated
- Deprecated functionality: htmlspecialchars(): Passing null to parameter #1 ($string) of type string is deprecated
- incorrect currency value HOT 4
- Use redis for session HOT 5
- Customer information missing after 19.5.3 -> 20.5.0 upgrade HOT 8
- Creating an order for a new registered customer - Required email address issue HOT 1
- Recaptcha HOT 2
- Payment and Shipping not selectable in backend (customer) order, but in frontend. HOT 1
- OpenMage (19.x and 20.x) appears incompatible with Amasty extensions
- onepage/billing.phtml required still displayed after removed. HOT 3
- Upgrading from 19.4.x to 20: recurring data is not saved
- Customers on online not showing HOT 3
- A recurring product is not calculated correctly in the cart HOT 3
- Long running queries presumably from layered navigation HOT 13
- PHP Error in frontend with improper request params HOT 2
- shardj/zf1-future patches all fail during composer install HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from magento-lts.