예제 #1
0
 /**
  * @inheritdoc
  */
 public function getList(array $ids, Struct\ShopContextInterface $context)
 {
     $query = $this->connection->createQueryBuilder();
     $query->addSelect($this->fieldHelper->getManufacturerFields());
     $query->from('s_articles_supplier', 'manufacturer')->leftJoin('manufacturer', 's_articles_supplier_attributes', 'manufacturerAttribute', 'manufacturerAttribute.supplierID = manufacturer.id');
     $query->where('manufacturer.id IN (:ids)')->setParameter(':ids', $ids, Connection::PARAM_INT_ARRAY);
     $this->fieldHelper->addManufacturerTranslation($query, $context);
     /**@var $statement \Doctrine\DBAL\Driver\ResultStatement */
     $statement = $query->execute();
     $data = $statement->fetchAll(\PDO::FETCH_ASSOC);
     $manufacturers = [];
     foreach ($data as $row) {
         $id = $row['__manufacturer_id'];
         $manufacturers[$id] = $this->manufacturerHydrator->hydrate($row);
     }
     return $manufacturers;
 }
예제 #2
0
 /**
  * @param Struct\ListProduct $product
  * @param array $data
  * @return Struct\ListProduct
  */
 private function assignData(Struct\ListProduct $product, array $data)
 {
     $translation = $this->getProductTranslation($data);
     $data = array_merge($data, $translation);
     $this->assignProductData($product, $data);
     $product->setTax($this->taxHydrator->hydrate($data));
     $this->assignPriceGroupData($product, $data);
     if ($data['__product_supplierID']) {
         $product->setManufacturer($this->manufacturerHydrator->hydrate($data));
     }
     if ($data['__esd_id']) {
         $product->setEsd($this->esdHydrator->hydrate($data));
     }
     $product->setUnit($this->unitHydrator->hydrate($data));
     if (!empty($data['__productAttribute_id'])) {
         $this->assignAttributeData($product, $data);
     }
     return $product;
 }