To use Object Manager is not a proper way but this code is for testing purpose only.
I want to get attribute value which is available in configurable products. I have tried with below code, but I get an all Attribute value which is assigned in the attributes drop-down list.
Please See below code
<?php
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$repository = $objectManager->create('Magento\Catalog\Model\ProductRepository');
$product = $repository->getById($p_coll->getId());
$data = $product->getTypeInstance()->getConfigurableOptions($product);
$options = array();
foreach ($data as $attr) {
foreach ($attr as $p) {
$options[] = $p['attribute_code'];
}
}
$statu = 0;
$eavConfig = $objectManager->get('\Magento\Eav\Model\Config');
foreach (array_unique($options) as $code) {
$attribute = $eavConfig->getAttribute('catalog_product', $code);
$options = $attribute->getSource()->getAllOptions();
$optionsExists = array();
if ($options) {
echo $code;
echo "<select>";
foreach ($options as $option) {
//$optionsExists[] = $option['label'];
if ($option['label']) {
echo "<option value='" . $option['label'] . "'>" . $option['label'] . "</option>";
}
}
echo "</select>";
}
}
?>
Please see below screen shot
There are only 2 colours available for this configurable product, but all colour options show in my collection. Please see below screenshot.
Best Answer
Please try below code and please enter product id to get the value