微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 在Magento中,扩展rest / products api的性能是什么,检索返回列表中产品的标签和属性?

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

我对Magento还是有点新鲜,而且这在性能上似乎相当沉重.以上解决方案在性能方面是否有效,或者是否有更好的方法从其余/产品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"
    }
}

我想添加以下内容(作为示例),**包括显示我想要添加内容的东西.

{
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);
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐