Magento 如果产品有属性,获取它的 ID
Magento If product has attribute, get it's ID
我需要获取具有特定值属性的产品的产品 ID。
这是我目前的情况:
$found = false;
foreach ($_productCollection as $_product) {
$attribute = $_product->getResource()->getAttribute('attribute');
$id = $_product->getId();
if ($attribute = NULL) {
// Do Nothing
}
if ($attribute = "value1") {
echo $attribute . "<br>";
$value1 = $id;
}
if ($attribute = "value2") {
echo $attribute . "<br>";
$value2 = $id;
}
if ($attribute = "value3") {
echo $attribute . "<br>";
$value3 = $id;
}
if ($value1 && $value2 && $value3) {
$found = true;
echo "All IDs Found" ."<br>";
}
if ($found = true) {
break;
}
}
echo "Value 1 ID = " . $value1 ."<br>". "Value 2 ID = " . $value2 ."<br>". "Value 3 ID = " . $value3;
这大部分工作,它正确地循环遍历产品,并且可以获得每个产品的属性值。但它显示类别中第一个产品的 ID,对于每个产品,无论它们具有什么属性。
像这样:
value1
value2
value3
All IDs Found
Value 1 ID = 17024
Value 2 ID = 17024 (should be 17025)
Value 3 ID = 17024 (should be 17026)
我怎样才能得到它,以便如果类别中有具有该属性和特定值之一的产品,它会列出该产品的 ID?
编辑:
使用 == 解决了我的部分问题。
另一个问题是使用:
$_product->getResource()->getAttribute('attribute');
没有以允许我使用它的值的方式获取属性。通过使用它来代替:
$_product->getAttributeText('attribute');
并将属性设置为 'Use in product Listing'。这让我可以为每个值使用 if 语句。
您每次都在赋值:
if ($attribute = "value1") {
使用double比较:
if ($attribute == "value1") {
我需要获取具有特定值属性的产品的产品 ID。
这是我目前的情况:
$found = false;
foreach ($_productCollection as $_product) {
$attribute = $_product->getResource()->getAttribute('attribute');
$id = $_product->getId();
if ($attribute = NULL) {
// Do Nothing
}
if ($attribute = "value1") {
echo $attribute . "<br>";
$value1 = $id;
}
if ($attribute = "value2") {
echo $attribute . "<br>";
$value2 = $id;
}
if ($attribute = "value3") {
echo $attribute . "<br>";
$value3 = $id;
}
if ($value1 && $value2 && $value3) {
$found = true;
echo "All IDs Found" ."<br>";
}
if ($found = true) {
break;
}
}
echo "Value 1 ID = " . $value1 ."<br>". "Value 2 ID = " . $value2 ."<br>". "Value 3 ID = " . $value3;
这大部分工作,它正确地循环遍历产品,并且可以获得每个产品的属性值。但它显示类别中第一个产品的 ID,对于每个产品,无论它们具有什么属性。
像这样:
value1
value2
value3
All IDs Found
Value 1 ID = 17024
Value 2 ID = 17024 (should be 17025)
Value 3 ID = 17024 (should be 17026)
我怎样才能得到它,以便如果类别中有具有该属性和特定值之一的产品,它会列出该产品的 ID?
编辑:
使用 == 解决了我的部分问题。
另一个问题是使用:
$_product->getResource()->getAttribute('attribute');
没有以允许我使用它的值的方式获取属性。通过使用它来代替:
$_product->getAttributeText('attribute');
并将属性设置为 'Use in product Listing'。这让我可以为每个值使用 if 语句。
您每次都在赋值:
if ($attribute = "value1") {
使用double比较:
if ($attribute == "value1") {