/** * Get fields for products * * @param array $productIds * * @return array */ public function getFieldsList($productIds) { $this->prepareAvailableAttributeIds($productIds); $attributes = $this->getAttributeIds(); if (empty($attributes)) { return []; } $attributes = $this->attributeRepository->findBy(['id' => $this->getAttributeIds()]); return $this->prepareFieldsList($attributes); }
/** * Get the attribute collection * * @return JsonResponse */ public function indexAction(Request $request) { $criteria = []; if ($request->query->has('identifiers')) { $criteria['code'] = explode(',', $request->query->get('identifiers')); } if ($request->query->has('types')) { $criteria['attributeType'] = explode(',', $request->query->get('types')); } $attributes = $this->attributeRepository->findBy($criteria); $filteredAttributes = $this->collectionFilter->filterCollection($attributes, 'pim.internal_api.attribute.view'); $normalizedAttributes = $this->normalizer->normalize($filteredAttributes, 'internal_api'); return new JsonResponse($normalizedAttributes); }
/** * Get non eligible attributes to a product template * * @param GroupInterface $group * * @return AttributeInterface[] */ public function getNonEligibleAttributes(GroupInterface $variantGroup) { $attributes = $variantGroup->getAxisAttributes()->toArray(); $template = $variantGroup->getProductTemplate(); if (null !== $template) { foreach (array_keys($template->getValuesData()) as $attributeCode) { $attributes[] = $this->attributeRepository->findOneByIdentifier($attributeCode); } } $uniqueAttributes = $this->attributeRepository->findBy(['unique' => true]); foreach ($uniqueAttributes as $attribute) { if (!in_array($attribute, $attributes)) { $attributes[] = $attribute; } } return $attributes; }