当我单击色样颜色属性时,需要在可配置页面上动态更改自定义属性。为此,我以编程方式在管理面板上创建了自定义属性,并在其中为每个产品保存了自己的自定义属性。 我想出了如何在简单的产品上调用自定义属性,但是我无法使用可配置的产品来实现。
当我更改颜色属性时,我会看到-每个简单产品的价格都会更改([这是默认设置]),但是如何使用我的自定义属性来更改颜色? 我有一个主意,但我不知道这是怎么实现的。因此,当您单击color属性(through js code)时,我知道如何获取当前产品ID,然后我需要将此ID数据通过Ajax传递给控制器。我需要知道如何确切地做到这一点,如何在每次单击color属性时将js数据通过ajax传递给控制器,然后在类别页面上调用所需的块? ?当我知道该怎么做时,我将获得此id数据-自定义属性值,并在所需位置调用此模板。 下面的代码调用了可配置产品上的自定义属性,但是调用了可配置产品中包含的所有简单产品的所有属性。每当我对color属性赞时,都需要为当前产品调用这些属性。例如:如果我单击黑色(与ID 123的产品有关),则会获得具有自定义属性的自定义块,而无需重新加载页面(如价格)。color attributes
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$product = $objectManager->get('Magento\Framework\Registry')->registry('current_product');
$product_id = $product->getId();
$configProduct = $objectManager-
>create('Magento\Catalog\Model\Product')->load($product_id);
$configurable = $configProduct->getTypeId() ==
\Magento\ConfigurableProduct\Model\Product\Type\Configurable::TYPE_CODE;
$_children = $configProduct->getTypeInstance()-
>getUsedProducts($configProduct);
if ($configurable){
foreach ($_children as $child){
$child_badge = $child->getResource()->getAttribute('mycustom_attribute_code')->getFrontend()->getValue($child);
echo $child_badge;
}
}