/** * {@inheritDoc} */ public function getNewChildSelectOptions() { $productAttributes = $this->productConditionFactory->create()->loadAttributeOptions()->getAttributeOption(); $attributes = []; $productConditionType = get_class($this->productConditionFactory->create()); foreach ($productAttributes as $code => $label) { $attributes[] = ['value' => $productConditionType . '|' . $code, 'label' => $label]; } $conditions = parent::getNewChildSelectOptions(); $conditions = array_merge_recursive($conditions, [['value' => $this->getType(), 'label' => __('Conditions Combination')], ['label' => __('Product Attribute'), 'value' => $attributes]]); return $conditions; }
/** * Transform a category in query rule. * * @param CategoryInterface $category Category. * * @return QueryInterface */ private function getStandardCategoryQuery(CategoryInterface $category) { $conditionsParams = ['data' => ['attribute' => 'category_ids', 'operator' => '()', 'value' => $category->getId()]]; $categoryCondition = $this->productConditionsFactory->create($conditionsParams); return $this->queryBuilder->getSearchQuery($categoryCondition); }