/** * @param string $identifier * @param string|null $familyCode * * @return ProductInterface */ protected function findOrCreateProduct($identifier, $familyCode) { $product = $this->repository->findOneByIdentifier($identifier); if (!$product) { $product = $this->builder->createProduct($identifier, $familyCode); } return $product; }
/** * Transform an array of values to ProductValues * * @param array $arrayValues * * @return ArrayCollection */ protected function transformArrayToValues(array $arrayValues) { $product = $this->productBuilder->createProduct(); $this->productUpdater->update($product, $arrayValues); $values = $product->getValues(); $values->removeElement($product->getIdentifier()); return $values; }
/** * Create product * * @param Request $request * @param string $dataLocale * * @Template * @AclAncestor("pim_enrich_product_create") * * @return array */ public function createAction(Request $request, $dataLocale) { if (!$request->isXmlHttpRequest()) { return $this->redirectToRoute('pim_enrich_product_index'); } $product = $this->productBuilder->createProduct(); $form = $this->createForm('pim_product_create', $product, $this->getCreateFormOptions($product)); if ($request->isMethod('POST')) { $form->submit($request); if ($form->isValid()) { $this->productSaver->save($product); $this->addFlash('success', 'flash.product.created'); if ($dataLocale === null) { $dataLocale = $this->getDataLocaleCode(); } $url = $this->generateUrl('pim_enrich_product_edit', ['id' => $product->getId(), 'dataLocale' => $dataLocale]); $response = ['status' => 1, 'url' => $url]; return new Response(json_encode($response)); } } return ['form' => $form->createView(), 'dataLocale' => $this->getDataLocaleCode()]; }
/** * {@inheritdoc} */ protected function createEntity($class, array $data) { return $this->productBuilder->createProduct(); }