我们如何在magento中创建搜索Web服务?

时间:2014-09-06 19:00:02

标签: php magento

我正在制作magento的网络服务。我在magento项目中创建了许多magento项目的web服务,如登录,注册等。我没有使用第三方网络服务(默认的magento webservice)。

我按照步骤操作:只需在magento根目录(webservice)中创建文件夹,然后在创建文件serach.php之后创建搜索代码:

require("../app/Mage.php");
Mage::app();

if (isset($_REQUEST['search_text']) && ($_REQUEST['search_text'] != "")) {
    $text = $_REQUEST['search_text'];
} else {
    $text = "";
}

$search = "%" . trim($text) . "%";
$collection->addCategoryFilter()->addAttributeToSelect('name')->addAttributeToFilter('name', array(
    'like' => $search
));

echo "";
print_r($collection);
die;

我收到错误:

  

致命错误:在第700行的/home/demo/public_html/app/code/core/Mage/Catalog/Model/Resource/Product/Collection.php中的非对象上调用成员函数getId()< / p>

3 个答案:

答案 0 :(得分:0)

require("../app/Mage.php"); 
Mage::app(); 
if (isset($_REQUEST['search_text']) && ($_REQUEST['search_text'] != "")) { 
    $text = $_REQUEST['search_text']; 
} 
else{ 
     $text = ""; 
}

$search = "%".trim($text)."%"; 
$collection = Mage::getModel('catalog/product')->getCollection()->addAttributeToSelect('sku');
$collection->addAttributeToSelect('city');
$collection->joinAttribute('city', 'catalog_product/city', 'entity_id', null, 'inner'); 
$category = Mage::getModel('catalog/category')->load(); 
$productCollection = $collection->addCategoryFilter($category)
                                ->addAttributeToSelect('name')
                                ->addAttributeToFilter('name',array('like'=>$search));

答案 1 :(得分:0)

Magento提供内置易于使用的SOAP和REST API。可以轻松扩展..你可以参考Vinai Kopps通过会话认证获得REST API的回购

答案 2 :(得分:0)

您尚未初始化并加载该集合。

我错过了这样一句话:

  $collection = Mage::getModel('catalog/product')->getCollection()...