php - 在 Magento 中,扩展 rest/products api 以检索返回列表中产品的标签和属性的性能如何?

标签 php api rest magento product

我能想到的唯一方法是检索产品,然后在脚本中调用其他 API 来检索我需要的信息,最后返回响应。

我对 Magento 还是有些陌生,这似乎对性能影响很大。上述解决方案在性能上是否有效,或者是否有更好的方法从 rest/products api 检索标签等?

本质上,我正在寻找的是这些方面的东西:

当前API返回:

{
337: {
    entity_id: "337"
    type_id: "simple"
    sku: "ace000"
    color: "15"
    gender: "93"
    material: "130"
    jewelry_type: null
    description: "Gunmetal frame with crystal gradient polycarbonate lenses in grey. "
    meta_keyword: null
    short_description: "A timeless accessory staple, the unmistakable teardrop lenses of our Aviator sunglasses appeal to everyone from suits to rock stars to citizens of the world."
    name: "Aviator Sunglasses"
    meta_title: null
    meta_description: null
    regular_price_with_tax: 319.34
    regular_price_without_tax: 295
    final_price_with_tax: 319.34
    final_price_without_tax: 295
    is_saleable: true
    image_url: "http://magentogs.cloudapp.net/magento/media/catalog/product/cache/0/image/9df78eab33525d08d6e5fb8d27136e95/a/c/ace000a_1.jpg"
    }
}

我想添加以下内容(作为示例),** include the things 显示我要添加的内容。

{
337: {
    entity_id: "337"
    type_id: "simple"
    sku: "ace000"
    color: "15"
    gender: "93"
    material: "130"
    jewelry_type: null
    description: "Gunmetal frame with crystal gradient polycarbonate lenses in grey. "
    meta_keyword: null
    short_description: "A timeless accessory staple, the unmistakable teardrop lenses of our Aviator sunglasses appeal to everyone from suits to rock stars to citizens of the world."
    name: "Aviator Sunglasses"
    meta_title: null
    meta_description: null
    regular_price_with_tax: 319.34
    regular_price_without_tax: 295
    final_price_with_tax: 319.34
    final_price_without_tax: 295
    is_saleable: true
    image_url: "http://magentogs.cloudapp.net/magento/media/catalog/product/cache/0/image/9df78eab33525d08d6e5fb8d27136e95/a/c/ace000a_1.jpg"
    **tags: [tag1,tag2,tag3]**
    **categories: [category1,category2,category3]**
    }
}

最佳答案

您应该扩展现有的产品 REST api 模型并覆盖方法 _prepareProductForResponse 以包含标签和其他数据

在此处检查覆盖其余模型 http://web.archive.org/web/20130512072025/http://magepim.com/news/Extending-the-Magento-REST-API-part-1_13

您的模型定义:

Namespace_yourmodule_Model_Catalog_Api2_Product_Rest extends Mage_Catalog_Model_Api2_Product_Rest {


protected function _prepareProductForResponse(Mage_Catalog_Model_Product $product)
{
 // keep the existing code as it is

 // now add new code to add tags

 $productData['tags'] = Mage::getModel('tag/tag')->getResourceCollection()
    ->addPopularity()
    ->addProductFilter($product->getId());


// in the end 
 $product->addData($productData);
}

关于php - 在 Magento 中,扩展 rest/products api 以检索返回列表中产品的标签和属性的性能如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28631834/

相关文章:

php - 如何检查一个值是否大于数组中的值

javascript - 在 JavaScript 和 PHP 之间传递语言字符

PHP列表宽度

Node.js API REST 安全性

ruby-on-rails - 强大的参数JSON API rails

javascript - Nodejs 后端 MVC 模式

javascript - 数组推送结果为空数组javascript

php 用表情图像替换字符串。用mysql表情数据形成数组的问题

android - 如何使用 volley android 将图像上传到 MVC api post 方法?

java - REST API : Multiple versions, 单个应用程序?