public function getAttributesRawData($storeId, array $entityIds, $tableName, array $attributeIds)
    {
        $select = $this->connection->select();

        // The field modelizing the link between entity table and attribute values table. Either row_id or entity_id.
        $linkField = $this->getEntityMetaData($this->getEntityTypeId())->getLinkField();

        // The legacy entity_id field.
        $entityIdField = $this->getEntityMetaData($this->getEntityTypeId())->getIdentifierField();

        $joinStoreValuesConditionClauses = [
            "t_default.$linkField = t_store.$linkField",
            't_default.attribute_id = t_store.attribute_id',
            't_store.store_id= ?',
        ];

        $joinStoreValuesCondition = $this->connection->quoteInto(
            implode(' AND ', $joinStoreValuesConditionClauses),
            $storeId
        );

        $select->from(['entity' => $this->getEntityMetaData($this->getEntityTypeId())->getEntityTable()], [$entityIdField])
            ->joinInner(
                ['t_default' => $tableName],
                new \Zend_Db_Expr("entity.{$linkField} = t_default.{$linkField}"),
                ['attribute_id']
            )
            ->joinLeft(['t_store' => $tableName], $joinStoreValuesCondition, [])
            ->where('t_default.store_id=?', 0)
            ->where('t_default.attribute_id IN (?)', $attributeIds)
            ->where("entity.{$entityIdField} IN (?)", $entityIds)
            ->columns(['value' => new \Zend_Db_Expr('COALESCE(t_store.value, t_default.value)')]);

        return $this->connection->fetchAll($select);
    }
public function getAttributesRawData($storeId, array $entityIds, $tableName, array $attributeIds)
    {
        $select = $this->connection->select();

        // The field modelizing the link between entity table and attribute values table. Either row_id or entity_id.
        $linkField = $this->getEntityMetaData($this->getEntityTypeId())->getLinkField();

        // The legacy entity_id field.
        $entityIdField = $this->getEntityMetaData($this->getEntityTypeId())->getIdentifierField();

        $joinStoreValuesConditionClauses = [
            "t_default.$linkField = t_store.$linkField",
            't_default.attribute_id = t_store.attribute_id',
            't_store.store_id= ?',
        ];

        $joinStoreValuesCondition = $this->connection->quoteInto(
            implode(' AND ', $joinStoreValuesConditionClauses),
            $storeId
        );

        $select->from(['entity' => $this->getEntityMetaData($this->getEntityTypeId())->getEntityTable()], [$entityIdField])
            ->joinInner(
                ['t_default' => $tableName],
                new \Zend_Db_Expr("entity.{$linkField} = t_default.{$linkField}"),
                ['attribute_id']
            )
            ->joinLeft(['t_store' => $tableName], $joinStoreValuesCondition, [])
            ->where('t_default.store_id=?', 0)
            ->where('t_default.attribute_id IN (?)', $attributeIds)
            ->where("entity.{$entityIdField} IN (?)", $entityIds)
            ->columns(['value' => new \Zend_Db_Expr('COALESCE(t_store.value, t_default.value)')]);

        return $this->connection->fetchAll($select);
    }
public function getAttributesRawData ( $ storeId , array $ entityIds , $ tableName , array $ attributeIds ) { $ select = $ this -> connection -> select ( ) ; // The field modelizing the link between entity table and attribute values table. Either row_id or entity_id. $ linkField = $ this -> getEntityMetaData ( $ this -> getEntityTypeId ( ) ) -> getLinkField ( ) ; // The legacy entity_id field. $ entityIdField = $ this -> getEntityMetaData ( $ this -> getEntityTypeId ( ) ) -> getIdentifierField ( ) ; $ joinStoreValuesConditionClauses = [ "t_default.$linkField = t_store.$linkField" , 't_default.attribute_id = t_store.attribute_id' , 't_store.store_id= ?' , ] ; $ joinStoreValuesCondition = $ this -> connection -> quoteInto ( implode ( ' AND ' , $ joinStoreValuesConditionClauses ) , $ storeId ) ; $ select -> from ( [ 'entity' => $ this -> getEntityMetaData ( $ this -> getEntityTypeId ( ) ) -> getEntityTable ( ) ] , [ $ entityIdField ] ) -> joinInner ( [ 't_default' => $ tableName ] , new \ Zend_Db_Expr ( "entity.{$linkField} = t_default.{$linkField}" ) , [ 'attribute_id' ] ) -> joinLeft ( [ 't_store' => $ tableName ] , $ joinStoreValuesCondition , [ ] ) -> where ( 't_default.store_id=?' , 0 ) -> where ( 't_default.attribute_id IN (?)' , $ attributeIds ) -> where ( "entity.{$entityIdField} IN (?)" , $ entityIds ) -> columns ( [ 'value' => new \ Zend_Db_Expr ( 'COALESCE(t_store.value, t_default.value)' ) ] ) ; return $ this -> connection -> fetchAll ( $ select ) ; }
Load attribute data for a list of entity ids.

@param int    $storeId      Store id.
@param array  $entityIds    Entity ids.
@param string $tableName    Attribute table.
@param array  $attributeIds Attribute ids to get loaded.

@return array
Load attribute data for a list of entity ids .