- public function getAttributesData(Product $product, array $options = [])
- {
- $defaultValues = [];
- $attributes = [];
- foreach ($product->getTypeInstance()->getConfigurableAttributes($product) as $attribute) {
- $attributeOptionsData = $this->getAttributeOptionsData($attribute, $options);
- if ($attributeOptionsData) {
- $productAttribute = $attribute->getProductAttribute();
- $attributeId = $productAttribute->getId();
- $attributes[$attributeId] = [
- 'id' => $attributeId,
- 'code' => $productAttribute->getAttributeCode(),
- 'label' => $productAttribute->getStoreLabel($product->getStoreId()),
- 'options' => $attributeOptionsData,
- ];
- $defaultValues[$attributeId] = $this->getAttributeConfigValue($attributeId, $product);
- }
- }
- return [
- 'attributes' => $attributes,
- 'defaultValues' => $defaultValues,