/** * @param ListProduct $listProduct * @param ListProduct $product */ public function assignProductData(ListProduct $listProduct, ListProduct $product) { $product->setShippingFree($listProduct->isShippingFree()); $product->setMainVariantId($listProduct->getMainVariantId()); $product->setAllowsNotification($listProduct->allowsNotification()); $product->setHighlight($listProduct->highlight()); $product->setUnit($listProduct->getUnit()); $product->setTax($listProduct->getTax()); $product->setPrices($listProduct->getPrices()); $product->setManufacturer($listProduct->getManufacturer()); $product->setCover($listProduct->getCover()); $product->setCheapestPrice($listProduct->getCheapestPrice()); $product->setName($listProduct->getName()); $product->setAdditional($listProduct->getAdditional()); $product->setCloseouts($listProduct->isCloseouts()); $product->setEan($listProduct->getEan()); $product->setHeight($listProduct->getHeight()); $product->setKeywords($listProduct->getKeywords()); $product->setLength($listProduct->getLength()); $product->setLongDescription($listProduct->getLongDescription()); $product->setMinStock($listProduct->getMinStock()); $product->setReleaseDate($listProduct->getReleaseDate()); $product->setShippingTime($listProduct->getShippingTime()); $product->setShortDescription($listProduct->getShortDescription()); $product->setStock($listProduct->getStock()); $product->setWeight($listProduct->getWeight()); $product->setWidth($listProduct->getWidth()); $product->setPriceGroup($listProduct->getPriceGroup()); $product->setCreatedAt($listProduct->getCreatedAt()); $product->setPriceRules($listProduct->getPriceRules()); $product->setCheapestPriceRule($listProduct->getCheapestPriceRule()); $product->setManufacturerNumber($listProduct->getManufacturerNumber()); $product->setMetaTitle($listProduct->getMetaTitle()); $product->setTemplate($listProduct->getTemplate()); $product->setHasConfigurator($listProduct->hasConfigurator()); $product->setSales($listProduct->getSales()); $product->setHasEsd($listProduct->hasEsd()); $product->setEsd($listProduct->getEsd()); $product->setIsPriceGroupActive($listProduct->isPriceGroupActive()); $product->setBlockedCustomerGroupIds($listProduct->getBlockedCustomerGroupIds()); $product->setVoteAverage($listProduct->getVoteAverage()); $product->setHasAvailableVariant($listProduct->hasAvailableVariant()); $product->setCheapestUnitPrice($listProduct->getCheapestUnitPrice()); $product->setFallbackPriceCount($listProduct->getFallbackPriceCount()); $product->setCustomerPriceCount($listProduct->getCustomerPriceCount()); foreach ($listProduct->getAttributes() as $name => $attribute) { $product->addAttribute($name, $attribute); } foreach ($listProduct->getStates() as $state) { $product->addState($state); } }
/** * Internal function which converts only the data of a list product. * Associated data won't converted. * * @param StoreFrontBundle\Struct\ListProduct $product * @return array */ private function getListProductData(StoreFrontBundle\Struct\ListProduct $product) { $createDate = null; if ($product->getCreatedAt()) { $createDate = $product->getCreatedAt()->format('Y-m-d'); } $data = array('articleID' => $product->getId(), 'articleDetailsID' => $product->getVariantId(), 'ordernumber' => $product->getNumber(), 'highlight' => $product->highlight(), 'description' => $product->getShortDescription(), 'description_long' => $product->getLongDescription(), 'esd' => $product->hasEsd(), 'articleName' => $product->getName(), 'taxID' => $product->getTax()->getId(), 'tax' => $product->getTax()->getTax(), 'instock' => $product->getStock(), 'isAvailable' => $product->isAvailable(), 'weight' => $product->getWeight(), 'shippingtime' => $product->getShippingTime(), 'pricegroupActive' => false, 'pricegroupID' => null, 'length' => $product->getLength(), 'height' => $product->getHeight(), 'width' => $product->getWidth(), 'laststock' => $product->isCloseouts(), 'additionaltext' => $product->getAdditional(), 'datum' => $createDate, 'sales' => $product->getSales(), 'filtergroupID' => null, 'priceStartingFrom' => null, 'pseudopricePercent' => null, 'sVariantArticle' => null, 'sConfigurator' => $product->hasConfigurator(), 'metaTitle' => $product->getMetaTitle(), 'shippingfree' => $product->isShippingFree(), 'suppliernumber' => $product->getManufacturerNumber(), 'notification' => $product->allowsNotification(), 'ean' => $product->getEan(), 'keywords' => $product->getKeywords(), 'sReleasedate' => $this->dateToString($product->getReleaseDate()), 'template' => $product->getTemplate()); if ($product->hasAttribute('core')) { $attributes = $product->getAttribute('core')->toArray(); unset($attributes['id'], $attributes['articleID'], $attributes['articledetailsID']); $data = array_merge($data, $attributes); } $data['attributes'] = $product->getAttributes(); if ($product->getManufacturer()) { $manufacturer = array('supplierName' => $product->getManufacturer()->getName(), 'supplierImg' => $product->getManufacturer()->getCoverFile(), 'supplierID' => $product->getManufacturer()->getId(), 'supplierDescription' => $product->getManufacturer()->getDescription()); if (!empty($manufacturer['supplierImg'])) { $manufacturer['supplierImg'] = $this->mediaService->getUrl($manufacturer['supplierImg']); } $data = array_merge($data, $manufacturer); $data['supplier_attributes'] = $product->getManufacturer()->getAttributes(); } if ($product->hasAttribute('marketing')) { /**@var $marketing StoreFrontBundle\Struct\Product\MarketingAttribute */ $marketing = $product->getAttribute('marketing'); $data['newArticle'] = $marketing->isNew(); $data['sUpcoming'] = $marketing->comingSoon(); $data['topseller'] = $marketing->isTopSeller(); } $today = new \DateTime(); if ($product->getReleaseDate() && $product->getReleaseDate() > $today) { $data['sReleasedate'] = $product->getReleaseDate()->format('Y-m-d'); } return $data; }