magento 獲取自定義產品屬性和屬性值
在magento系統中經常要自定義自己的產品屬性,在後臺自定義的產品屬性如何獲取呢,下面根據屬性型別的不同分別說明
產品屬性要想在前臺獲取到需要設定屬性的Used in Product Listing 為true
1、下拉列表的產品屬性
如定義了一個表示產品的硬體支援型別的下拉列表屬性support_hardware就可以這樣獲取
- $attributes['support_hardware']=$product->getAttributeText('support_hardware');
2、文字型別的產品屬性
如定義了一個屬性叫
- $attributes['version_number']=$product->getData('version_number');
當得到產品物件後我們可以獲取產品的各種屬性,如果我們要獲取滿足一定屬性條件的產品集呢?這時候就需要根據產品屬性對產品過濾了
magento提供的根據屬性過濾的介面有兩種,一種是addAttributeToFilter,另一種是直接操作資料庫通過getSelect()->where()的方法
1、addAttributeToFilter介面
比如我們想要獲取APP產品支援的系統版本(屬性name是system_version)在4.2以上的的產品集,就可以這麼做
- $_productCollection = Mage::getResourceModel('catalog/product_collection')
- ->setStoreId(1)
- ->addAttributeToSelect('*')
-
->addAttributeToFilter('system_version',array('gteq'=><span style="color:#ff6666;">45</span>));<span style=
通過這種方式要求對資料庫結構屬性,通常我們會用
- $_productCollection->getSelectSql()
- $_productCollection->getSelect()->where('age',array('gteq'=>45));
怎麼通過where寫複雜的查詢資料庫語句會在另一篇中講解
獲取產品後通常還要加上對產品做產品是否是啟用,是否在當前商店的判斷
- $product->isSalable()
下面講下怎麼獲去屬性的值
1、假設我們知道attribute的ID為149,就可以這樣獲取屬性的value和label
- $attributeOption=Mage::getResourceModel('eav/entity_attribute_option_collection')
- ->setPositionOrder('asc')
- ->setAttributeFilter(149)
- ->setStoreFilter()
- ->load();
- $attributeOptionArray=$attributeOption->toOptionArray();
- echo"<hr>";
- print_r($attributeOptionArray);
2、怎麼根據attribute的name來得到attribute物件還在研究中
在實際應用時通常要獲取可用來過濾產品的的屬性,也就是filterable attributes,獲取的方法如下:
- protectedfunction _getFilterableAttributes(){
- $layer = Mage::getModel("catalog/layer");
- $rootCategory=Mage::getModel('catalog/category')->load(Mage::app()->getStore()->getRootCategoryId());
- $layer->setCurrentCategory($rootCategory);
- $attributes = $layer->getFilterableAttributes();
- $this->_filterableAttributesExists=array();
- foreach ($attributesas$attribute) {
- //echo $attribute->getAttributeCode(),"---",$attribute->getId(),"</br>";
- $this->_filterableAttributes[$attribute->getAttributeCode()]=$attribute->getId();
- }
- krsort($this->_filterableAttributes);
- return$this->_filterableAttributes;
- }
相關推薦
magento 獲取自定義產品屬性和屬性值
在magento系統中經常要自定義自己的產品屬性,在後臺自定義的產品屬性如何獲取呢,下面根據屬性型別的不同分別說明 產品屬性要想在前臺獲取到需要設定屬性的Used in Product Listing 為true 1、下拉列表的產品屬性 如定義了一個表示產品的硬體
Flume(ng) 自定義sink實現和屬性注入
最近需要利用flume來做收集遠端日誌,所以學習一些flume最基本的用法。這裡僅作記錄。 遠端日誌收集的整體思路是遠端自定義實現log4j的appender把訊息傳送到flume端,flume端自定義實現一個sink來按照我們的規則儲存日誌。
如何獲取自定義“ data-*/data_* ”中的值
HTML<div id="one" data-test="123"></div> <div id="tow" data_test="456"></div>
總結Jquery中獲取自定義屬性使用.attr()和.data()以及.prop()的區別
p.p1 { margin: 0.0px 0.0px 2.0px 0.0px; font: 14.0px ".PingFang SC" } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px ".PingFang SC" } p.p3 { margin:
獲取自定義屬性/event的觸發事件物件和繫結事件物件
1.獲取自定義屬性 var testEle = document.getElementById("test") testEle.setAttribute("key","value"); // 設定 testEle.attributes["k
jquery獲取自定義屬性(attr和prop)例項介紹
$("form").attr("check"); $("form").prop("check"); 兩種都可以,不過新版jquery推薦第二種,兩個在其他方面都差不多,我發現的唯一不同就是在checkbox上的時候,需要用prop,不然IE瀏覽器會不相容 jquery1.6
jquery 獲取 自定義屬性(attr 和 prop)用法
$("form").attr("check"); $("form").prop("check"); 兩種都可以,不過新版jquery推薦第二種,兩個在其他方面都差不多,我發現的唯一不同就是在che
H5對自定義屬性的規定和新增獲取自定義屬性的方法
H5對自定義屬性的規定和新增獲取自定義屬性的方法 元素屬性那麼多,如何區分是自帶的屬性還是預設的屬性呢? H5規定自帶的屬性有個data- 字首,如data-index="1" <script> var divele = document.querySelector(
jquery獲取自定義屬性的值
取值 知識庫 rep -name bsp class tar itl jquery //獲取屬性值 1 <div id="text" value="黑噠噠的盟友"><div> jQuery取值: $("#text").attr("value");
獲取自定義屬性的值
js獲取自定義屬性的值在js中有3種常見的方法:獲取自定義屬性的值
React學習之旅----獲取自定義屬性
獲取自定屬性,在小程式中可能更常用,在React中同樣也是可以獲取的,看例項 import React, { Component } from 'react'; class Event extends Component { constructor(props) { super(pr
【小程式】獲取自定義屬性
<view bindtap="getDataAttr" data-postId="{{postId}}" data-id="id" class="div"> </view> getDataAttr:function(e){ console.log(e.currentTa
js中通過節點獲取自定義屬性
父標籤,子標籤 TObj = pNode.parent().next() .children(‘div’).children(’.title’); TObj = pNode.parent().parent().children(‘div’).children(’.title’); TOb
jQuery點選元素獲取自定義屬性的值,利用冒泡原理~
知識鋪墊: attr(“屬性名”); //獲取屬性的值(取得第一個匹配元素的屬性。通過這個方法可以方便的從第一個匹配元素中獲取一個屬性的值。如果元素沒有相應屬性,則返回undefined)
Android自定義View獲取自定義屬性
首先扯點別的:今晚回家做了一個魚香肉絲,剛學的,出鍋以後,才想起沒有放豆瓣醬,也是沒誰了。不過吃起來還行,吃了三塊煎餅。 今天記錄一下自定義View的建構函式的使用,以及如何獲取自定義屬性。 先看一下自定義View 的建構函式 public class
layui select 新增獲取自定義屬性
<select id="pz" name="pz" lay-filter="pz" type="select"> <option data-href="'.$url.'&pz=10" value="10">10</op
React.js點選獲取自定義屬性
點選刪除按鈕,刪除列表中對應項本來是React比較基礎的應用,可是應用情況變得複雜了以後,我還真想了一會兒才搞定。 簡化一下應用場景:點選新增按鈕,增加一條輸入框,點選輸入框旁邊的按鈕,刪除該輸入框(不能刪錯了啊)。 先說第一種方法問題剛上手,首先規劃級別:一個輸入框和對應刪除按鈕為一個子元件,整體為父元
asp.net 自定義伺服器控制元件屬性 [Bindable(true)]...
自定義伺服器控制元件屬性的特性:Bindable這個特性表示屬性是否可以繫結一個有效資料來源。通常使用布林值進行設定。例如:Bindable(true)。如果使用值true標記屬性,表示該屬性可以繫結一個有效資料來源,且應引發該屬性的屬性更改通知。Browsable指定屬性是否應該在屬性瀏覽器中顯示,使用布林
fastjson和SpringMVC實現自定義HttpMessageConverter接收和獲取JSON格式的資料
**引言**:Spring MVC 提供了處理JSON格式請求/響應的HttpMessageConverter利用Jackson 開源包處理JSON格式的請求響應訊息。 ```"關鍵技術"```: **RequestBody**註解 :用於讀取Request請求
小程式使用selectComponent獲取自定義元件時,返回null(分析和解決方法)
一、原因: 元件所在的佈局層級不同,該元件被建立的時間會有所不同,意味著ready(元件生命週期函式,元件佈局完成後執行)被呼叫的時間有所不同。由於元件建立完成的時間晚於頁面建立完成,即元件生命週期函式的ready被執行的時間晚於頁面生命週期