本文整理汇总了PHP中Magento\Catalog\Api\Data\ProductInterface::getConfigurableAttributesData方法的典型用法代码示例。如果您正苦于以下问题:PHP ProductInterface::getConfigurableAttributesData方法的具体用法?PHP ProductInterface::getConfigurableAttributesData怎么用?PHP ProductInterface::getConfigurableAttributesData使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Magento\Catalog\Api\Data\ProductInterface
的用法示例。
在下文中一共展示了ProductInterface::getConfigurableAttributesData方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: saveConfigurableOptions
/**
* Save configurable product attributes
*
* @param ProductInterface $product
* @return void
* @throws \Exception
* @deprecated
*/
private function saveConfigurableOptions(ProductInterface $product)
{
$data = $product->getConfigurableAttributesData();
if (!$data) {
return;
}
$metadata = $this->metadataPool->getMetadata(ProductInterface::class);
foreach ($data as $attributeData) {
/** @var $configurableAttribute \Magento\ConfigurableProduct\Model\Product\Type\Configurable\Attribute */
$configurableAttribute = $this->configurableAttributeFactory->create();
if (!$product->getIsDuplicate()) {
if (!empty($attributeData['id'])) {
$configurableAttribute->load($attributeData['id']);
$attributeData['attribute_id'] = $configurableAttribute->getAttributeId();
} elseif (!empty($attributeData['attribute_id'])) {
$attribute = $this->_eavConfig->getAttribute(\Magento\Catalog\Model\Product::ENTITY, $attributeData['attribute_id']);
$attributeData['attribute_id'] = $attribute->getId();
if (!$this->canUseAttribute($attribute)) {
throw new \InvalidArgumentException('Provided attribute can not be used with configurable product');
}
$configurableAttribute->loadByProductAndAttribute($product, $attribute);
}
}
unset($attributeData['id']);
$configurableAttribute->addData($attributeData)->setStoreId($product->getStoreId())->setProductId($product->getData($metadata->getLinkField()))->save();
}
/** @var $configurableAttributesCollection \Magento\ConfigurableProduct\Model\ResourceModel\Product\Type\Configurable\Attribute\Collection */
$configurableAttributesCollection = $this->_attributeCollectionFactory->create();
$configurableAttributesCollection->setProductFilter($product);
$configurableAttributesCollection->addFieldToFilter('attribute_id', ['nin' => $this->getUsedProductAttributeIds($product)]);
$configurableAttributesCollection->walk('delete');
}