Example #1
0
    public function getProductsGroupByCategories(Shopware_StoreApi_Models_Query_Product $productQuery, Shopware_StoreApi_Models_Query_Category $categoryQuery)
    {
        if(!$productQuery instanceof Shopware_StoreApi_Models_Query_Product) {
            return new Shopware_StoreApi_Exception_Response('The parameter productModel is not instance of Shopware_StoreApi_Models_Query_Product', 10);
        }
        if(!$categoryQuery instanceof Shopware_StoreApi_Models_Query_Category) {
            return new Shopware_StoreApi_Exception_Response('The parameter productModel is not instance of Shopware_StoreApi_Models_Query_Category', 10);
        }

        $productQueryData = array();
        $productQueryData['start']          = $productQuery->getStart();
        $productQueryData['limit']          = $productQuery->getLimit();
        $productQueryData['orderBy']        = $productQuery->getOrderBy();
        $productQueryData['orderDirection'] = $productQuery->getOrderDirection();
        $productQueryData['criterion']      = $productQuery->getCriterion();

        $categoryQueryData = array();
        $categoryQueryData['start']          = $categoryQuery->getStart();
        $categoryQueryData['limit']          = $categoryQuery->getLimit();
        $categoryQueryData['orderBy']        = $categoryQuery->getOrderBy();
        $categoryQueryData['orderDirection'] = $categoryQuery->getOrderDirection();
        $categoryQueryData['criterion']      = $categoryQuery->getCriterion();

        return $this->gateway->getProductsGroupByCategories($productQueryData, $categoryQueryData);
    }
Example #2
0
    /**
     * The getPluginCommunityData function returns the community plugin data for the passed Shopware\Models\Plugin\Plugin
     * object.
     *
     * @param $plugin \Shopware\Models\Plugin\Plugin
     * @return array|\Shopware_StoreApi_Core_Response_SearchResult
     */
    public function getPluginCommunityData($plugin)
    {
        $query = new Shopware_StoreApi_Models_Query_Product();
        $query->setLimit(1);

        $query->addCriterion(
            new Shopware_StoreApi_Models_Query_Criterion_PluginName($plugin->getName())
        );

        $resultSet = $this->getProductService()->getProducts($query);

        if ($resultSet instanceof Shopware_StoreApi_Exception_Response) {
            return array('message' => $resultSet->getMessage(), 'code' => $resultSet->getCode());
        } else {
            return $resultSet->getIterator()->current()->getRawData();
        }
    }
 /**
  * @param  array                                         $plugins
  * @param  integer                                       $version
  * @return \Shopware_StoreApi_Core_Response_SearchResult | \Shopware_StoreApi_Exception_Response
  */
 private function getProductsByNameAndVersion($plugins, $version)
 {
     // Construct API query
     $productQuery = new \Shopware_StoreApi_Models_Query_Product();
     $productQuery->addCriterion(new \Shopware_StoreApi_Models_Query_Criterion_PluginName($plugins));
     $productQuery->addCriterion(new \Shopware_StoreApi_Models_Query_Criterion_Version($version));
     return $this->productService->getProducts($productQuery);
 }
Example #4
0
 /**
  * Get plugin infos for a list of plugin names
  *
  * @param array $plugins
  * @return array
  */
 public function getPluginInfos($plugins)
 {
     // Construct API query
     $productService = $this->getApi()->getProductService();
     $productQuery = new Shopware_StoreApi_Models_Query_Product();
     $productQuery->addCriterion(new Shopware_StoreApi_Models_Query_Criterion_PluginName($plugins));
     $resultSet = $productService->getProducts($productQuery);
     if ($resultSet instanceof Shopware_StoreApi_Exception_Response) {
         // If an empty result is returned, non of the passed plugins was compatible
         if ($resultSet->getCode() == 200) {
             return array('success' => true, 'data' => array(), 'total' => 0);
         } else {
             return array('success' => false, 'message' => $resultSet->getMessage(), 'code' => $resultSet->getCode());
         }
     } else {
         return array('success' => true, 'data' => $resultSet, 'total' => count($resultSet));
     }
 }