mirror of
https://github.com/bdnugget/magento2.git
synced 2026-11-07 09:17:35 +00:00
61 lines
1.9 KiB
PHP
61 lines
1.9 KiB
PHP
<?php
|
|
/**
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
namespace Magento\ConfigurableProduct\Model;
|
|
|
|
class ConfigurableAttributeHandler
|
|
{
|
|
/**
|
|
* Attribute collection factory
|
|
*
|
|
* @var \Magento\Catalog\Model\ResourceModel\Product\Attribute\CollectionFactory
|
|
*/
|
|
protected $collectionFactory;
|
|
|
|
/**
|
|
* @param \Magento\Catalog\Model\ResourceModel\Product\Attribute\CollectionFactory $attributeColFactory
|
|
*/
|
|
public function __construct(
|
|
\Magento\Catalog\Model\ResourceModel\Product\Attribute\CollectionFactory $attributeColFactory
|
|
) {
|
|
$this->collectionFactory = $attributeColFactory;
|
|
}
|
|
|
|
/**
|
|
* Retrieve list of attributes applicable for configurable product
|
|
*
|
|
* @return \Magento\Catalog\Model\ResourceModel\Product\Attribute\Collection
|
|
*/
|
|
public function getApplicableAttributes()
|
|
{
|
|
/** @var $collection \Magento\Catalog\Model\ResourceModel\Product\Attribute\Collection */
|
|
$collection = $this->collectionFactory->create();
|
|
return $collection->addFieldToFilter(
|
|
'frontend_input',
|
|
'select'
|
|
)->addFieldToFilter(
|
|
'is_user_defined',
|
|
1
|
|
)->addFieldToFilter(
|
|
'is_global',
|
|
\Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @param \Magento\Catalog\Api\Data\ProductAttributeInterface $attribute
|
|
* @return bool
|
|
*/
|
|
public function isAttributeApplicable($attribute)
|
|
{
|
|
$types = [
|
|
\Magento\Catalog\Model\Product\Type::TYPE_SIMPLE,
|
|
\Magento\Catalog\Model\Product\Type::TYPE_VIRTUAL,
|
|
\Magento\ConfigurableProduct\Model\Product\Type\Configurable::TYPE_CODE,
|
|
];
|
|
return !$attribute->getApplyTo() || count(array_diff($types, $attribute->getApplyTo())) === 0;
|
|
}
|
|
}
|