本文整理汇总了PHP中Magento\Catalog\Api\Data\ProductInterface::getTypeInstance方法的典型用法代码示例。如果您正苦于以下问题:PHP ProductInterface::getTypeInstance方法的具体用法?PHP ProductInterface::getTypeInstance怎么用?PHP ProductInterface::getTypeInstance使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Magento\Catalog\Api\Data\ProductInterface
的用法示例。
在下文中一共展示了ProductInterface::getTypeInstance方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getLinkedProducts
/**
* Get linked to configurable simple products
*
* @param ProductInterface $product
* @return int[]
*/
private function getLinkedProducts(ProductInterface $product)
{
/** @var Configurable $typeInstance */
$typeInstance = $product->getTypeInstance();
$childrenIds = $typeInstance->getChildrenIds($product->getId());
if (isset($childrenIds[0])) {
return $childrenIds[0];
} else {
return [];
}
}
示例2: load
/**
* @param ProductInterface $product
* @return OptionInterface[]
*/
public function load(ProductInterface $product)
{
$options = [];
/** @var Configurable $typeInstance */
$typeInstance = $product->getTypeInstance();
$attributeCollection = $typeInstance->getConfigurableAttributeCollection($product);
$this->extensionAttributesJoinProcessor->process($attributeCollection);
foreach ($attributeCollection as $attribute) {
$values = [];
$attributeOptions = $attribute->getOptions();
if (is_array($attributeOptions)) {
foreach ($attributeOptions as $option) {
/** @var \Magento\ConfigurableProduct\Api\Data\OptionValueInterface $value */
$value = $this->optionValueFactory->create();
$value->setValueIndex($option['value_index']);
$values[] = $value;
}
}
$attribute->setValues($values);
$options[] = $attribute;
}
return $options;
}
示例3: getOptions
/**
* @param \Magento\Catalog\Api\Data\ProductInterface $product
* @return \Magento\Bundle\Api\Data\OptionTypeInterface[]
*/
private function getOptions(\Magento\Catalog\Api\Data\ProductInterface $product)
{
/** @var \Magento\Bundle\Model\Product\Type $productTypeInstance */
$productTypeInstance = $product->getTypeInstance();
$productTypeInstance->setStoreFilter($product->getStoreId(), $product);
$optionCollection = $productTypeInstance->getOptionsCollection($product);
$selectionCollection = $productTypeInstance->getSelectionsCollection($productTypeInstance->getOptionsIds($product), $product);
$options = $optionCollection->appendSelections($selectionCollection);
return $options;
}
示例4: getAttributesFromConfigurable
/**
* Retrieve collection of Eav Attributes from Configurable product
*
* @param Product $product
* @return \Magento\Catalog\Model\ResourceModel\Eav\Attribute[]
*/
public function getAttributesFromConfigurable(Product $product)
{
$result = [];
$typeInstance = $product->getTypeInstance();
if ($typeInstance instanceof Configurable) {
$configurableAttributes = $typeInstance->getConfigurableAttributes($product);
/** @var \Magento\ConfigurableProduct\Model\Product\Type\Configurable\Attribute $configurableAttribute */
foreach ($configurableAttributes as $configurableAttribute) {
/** @var \Magento\Catalog\Model\ResourceModel\Eav\Attribute $attribute */
$attribute = $configurableAttribute->getProductAttribute();
$result[] = $attribute;
}
}
return $result;
}
示例5: saveConfigurableProductLinks
/**
* @param \Magento\Catalog\Api\Data\ProductInterface $product
* @param int[] $linkIds
* @return $this
*/
protected function saveConfigurableProductLinks(\Magento\Catalog\Api\Data\ProductInterface $product, array $linkIds)
{
$configurableProductTypeResource = $this->typeConfigurableFactory->create();
if (!empty($linkIds)) {
/** @var \Magento\ConfigurableProduct\Model\Product\Type\Configurable $configurableProductType */
$configurableProductType = $product->getTypeInstance();
$configurableAttributes = $configurableProductType->getConfigurableAttributes($product);
$attributeCodes = [];
foreach ($configurableAttributes as $configurableAttribute) {
/** @var \Magento\Catalog\Model\ResourceModel\Eav\Attribute $productAttribute */
$productAttribute = $configurableAttribute->getProductAttribute();
$attributeCode = $productAttribute->getAttributeCode();
$attributeCodes[] = $attributeCode;
}
$this->validateProductLinks($attributeCodes, $linkIds);
}
$configurableProductTypeResource->saveProducts($product, $linkIds);
return $this;
}