magento 1.7 新功能6.2下面的产品数据怎么完美搬迁到1.7下面, 产品数据的类型包括simple,product,bundle product

在centos上安装Magento1.7和zendServer | Magento中文项目组Magento 常用技巧与方法
- 心心的技术生活 - ITeye技术网站
博客分类:
资料来自网络,大部分没有经过验证,仅供参考:
1.属性Attribute
产品属性操作:
$product = Mage::getModel('catalog/product')-&getCollection()-&getFirstItem();
foreach($product-&getAttributes() as $att) {
$group_id = $att-&getData('attribute_group_id');
$group = Mage::getModel('eav/entity_attribute_group')-&load($group_id);
var_dump($group);
$attrSetName = 'my_custom_attribute';
$attributeSetId = Mage::getModel('eav/entity_attribute_set') -&load($attrSetName, 'attribute_set_name') -&getAttributeSetId();
1.1 得到Product的属性id,即catalog_product_entity表的entity_type_id字段
$productAttributeSets = $this-&getProductAttributeSets();
1.2 前台页面获取商品属性
$_product-&getResource()-&getAttribute('cost')-&getFrontend()-&getValue($_product);
Magento的产品属性,在catalog.xml中已经写进去了。你可以在product view中找到
&block type="catalog/product_view_attributes" name="product.attributes" as="additional" template="catalog/product/view/attributes.phtml"&
&action method="addToParentGroup"&&group&detailed_info&/group&&/action&
现在只要在产品详细页(view.phtml)中想要的位置插入
&?php echo $this-&getChildHtml('additional') ?&
1.3获取产品属性集
$sets = Mage::getResourceModel('eav/entity_attribute_set_collection') -&setEntityTypeFilter(Mage::getModel('catalog/product')-&getResource()-&getTypeId()) -&load() -&toOptionHash();
1.4 加载某个attribute:
$attributeCode=Mage::getModel('catalog/resource_eav_attribute')
-&load($attrbuteId)
-&getData("attribute_code");
1.5 获取所有的产品属性的attribute:
$attributes = Mage::getResourceModel ( 'catalog/product_attribute_collection' )
-&addFieldToFilter ( "frontend_input", "select" )
-&load ();
1.6 获取某个product的所有attribute:
注:如果是在 collection 中获取自定义的attribute,必须加 addAttributeToSelect(), 如下:
$product=Mage::getModel('catalog/product')-&getCollection()-&addAttributeToSelect("dropdownlistone")
1.7 获取某个种类的所有attribute:
$entityTypeId = Mage::getSingleton('eav/config')
-&getEntityType('catalog_product')
-&getEntityTypeId();
$items = Mage::getResourceSingleton('catalog/product_attribute_collection')
-&setEntityTypeFilter($entityTypeId)
-&getItems();
1.8 获取某个attribute的所有option:
$attributeObject=Mage::getModel('eav/config')-&getAttribute('catalog_product')-&load($attributeId);
$options = $attributeObject-&setStoreId(Mage::app()-&getStore()-&getId())-&getSource()-&getAllOptions(false);
$table = $attributeObject-&getBackend()-&getTable();
public function getAttributeOptionsByAttributeCode($entityType, $attributeCode){
$entityType = Mage::getSingleton('eav/config')-&getEntityType($entityType);
$attributeObject = Mage::getModel('customer/attribute')-&loadByCode($entityType, $attributeCode);
return $attributeObject-&setStoreId(Mage::app()-&getStore()-&getId())-&getSource()-&getAllOptions(false);
$optionCollection = Mage::getResourceModel('eav/entity_attribute_option_collection')
-&setAttributeFilter($attr_model-&getId())
-&setStoreFilter($storeId, false)
1.9 获取某个attribute的所有多语言label:
$attributeLabelsArray= Mage::getResourceModel('eav/entity_attribute')
-&getStoreLabelsByAttributeId($attrbuteId);
1.10 获取某个attribute_set的所有attribute:
$attributes = Mage::getResourceModel('catalog/product_attribute_collection')
-&setAttributeSetFilter($attribute_set_id)
$attributeSetCollection = Mage::getResourceModel('eav/entity_attribute_set_collection')
1.11 获取attribute 对象 by attribute code
$muarqspFrom = Mage::getSingleton('eav/config')-&getAttribute('catalog_product', ' muarqsp_from');
$attrCollection = Mage::getResourceModel('eav/entity_attribute_collection')
-&setCodeFilter($attributeCode)
1.12 通过attributeName得到 attributeSetId
Mage::getResourceModel('eav/entity_attribute_set_collection')
-&addFieldToFilter('attribute_set_name',$attributSetName)
-&getFirstItem()-&getId();
1.13 通过 attributeSetId得到attributeSetName
Mage::getModel('eav/entity_attribute_set')
-&load($id)-&getData("attribute_set_name");
2. 产品相关操作
2.1 产品缩略图
$_thumb = Mage::helper('catalog/image')-&init($product, 'thumbnail')-&resize(50, 50)-&setWatermarkSize('30x10');
2.2 product collection
$collection = Mage::getResourceModel('catalog/product_collection')
-&addStoreFilter()
-&addAttributeToSelect("*")
-&addAttributeToFilter('entity_id', array('in' =& $products))
-&setPageSize(10)
-&setCurPage(1);
2.3 删除一个product的所有的images//Get products gallery attribute
$attributes = $product-&getTypeInstance()-&getSetAttributes();
if (isset($attributes['media_gallery'])) {
$gallery = $attributes['media_gallery'];
//Get the images
$galleryData = $product-&getMediaGallery();
foreach($galleryData['images'] as $image){
//If image exists
if ($gallery-&getBackend()-&getImage($product, $image['file'])) {
$gallery-&getBackend()-&removeImage($product, $image['file']);
$filename = Mage::getBaseDir('media') . DS . 'catalog'. DS .'product' . $image['file'];
debug('&span style="color:"&&& unlinked previous image '.$image['file'].' from product '.$product-&getSku().'&/span&');
if (file_exists($filename) && is_file($filename) && is_writeable($filename)){
@unlink($filename);
debug('&span style="color:"&(and deleted file '.$filename.')&/span&');
debug('&span style="color:"&(but couldn\'t delete file '.$filename.')&/span&');
3. website
获取对象的方法:get_class_methods($object)
返回对象的类名:get_class($object)
3.1得到store id
$store_id=Mage::getModel('core/store')
-&getCollection()
-&addFieldToFilter ( "code", "france_fr" )
-&getFirstItem()-&getData('store_id');
Mage::getModel('core/store')-&load('france_fr')-&getId()
3.2 得到website config
//$website can be string or id
$import_type = Mage::getModel('core/website')-&load($website)-&getConfig('maps/stock_import/stock_limit');
if( $import_type===false ){
//get admin config
$import_type=Mage::getStoreConfig('maps/stock_import/import_type',0);
获取后台的配置
Mage::getStoreConfig("clientnumber/total_config/service_ip",0); //get admin config
3.3 generate skin url
Mage::getDesign()-&getSkinUrl('images/our_shops/shop_logo_default.jpg');
3.4 generate select html
$html = $this-&getLayout()-&createBlock('core/html_select')
-&setName($name)
-&setId($id)
-&setTitle(Mage::helper('directory')-&__($title))
-&setClass('validate-select')
-&setValue($defValue)
-&setOptions($options)
-&getHtml();
3.5 获取这个网站所代表的国家的代号(如:FR)
Mage::getModel('directory/country')
-&load(Mage::getStoreConfig('general/country/default'))-&getIso2Code(),
3.6 获取登录的用户信息
Mage::getSingleton('customer/session')-&getCustomer()
3.7 session,cookie
1) 获取session
$session = Mage::getSingleton('customer/session');
2) session,cookie设置
(1) Model:
Mage::getModel(‘core/cookie’); Mage::getModel(‘core/session’);
(2)Set Method:
Mage::getSingleton(‘core/cookie’)-&set(‘name’,'value’); Mage::getSingleton(‘core/session’)-&set(‘name’,'value’);
(3)Get method:
Mage::getSingleton(‘core/cookie’)-&get(‘name’); Mage::getSingleton(‘core/session’)-&get(‘name’);
3.8 Request对象
Mage::app()-&getRequest()
3.9 调用Model对象
Mage::getModel('infinity/model');
3.10 输出配置文件
//header(‘Content-Type: text/xml’);
header(‘Content-Type: text/plain’);
echo $config = Mage::getConfig() -&loadModulesConfiguration(‘system.xml’) -&getNode() -&asXML();
3.11 得到Magento分类的URL
Mage::getModel('catalog/category')-&load(17)-&getUrl();
3.12 build your URL with valid keys
Mage::helper("adminhtml")-&getUrl("mymodule/adminhtml_mycontroller/myaction/",array("param1"=&1,"param2"=&2));
3.13 create key values
Mage::getSingleton('adminhtml/url')-&getSecretKey("adminhtml_mycontroller","myaction");
3.14 disable security feature in the admin panel 在管理面板中禁用安全功能
admin panel -& System -& Configuration -& Admin section: “Add Secret key to Urls”.
3.15 后台模块跳转:
Mage::app()-&getResponse()-&setRedirect(Mage::helper('adminhtml')-&getUrl("adminhtml/promo_quote/index"));
3.16 get a drop down lists options for a mulit-select attribute 多属性选择下拉列表
$attribute = Mage::getModel('eav/config')-&getAttribute('catalog_product', 'attribute_id');
foreach ( $attribute-&getSource()-&getAllOptions(true, true) as $option)
$attributeArray[$option['value']] = $option['label'];
3.17 获取栏目图片
public function getImageUrl($category) {
return Mage::getModel('catalog/category')-&load($category-&getId())-&getImageUrl();
public function getThumbnailUrl($category) {
$image=Mage::getModel('catalog/category')-&load($category-&getId())-&getThumbnail();
if ($image) {
$url = Mage::getBaseUrl('media').'catalog/category/'.$
3.18 判断是否首页:$this-&getIsHomePage()
Mage::getSingleton('cms/page')-&getIdentifier() == 'home' && Mage::app()-&getFrontController()-&getRequest()-&getRouteName() == 'cms' )
3.19 主题颜色
$attributes = $_product-&getAttributes();
$themeColor = $attributes['theme_color']-&getFrontend()-&getValue($_product);
3.20 获取configurable产品simple product
if($_product-&getTypeId() == "configurable"):
$ids = $_product-&getTypeInstance()-&getUsedProductIds();
foreach ($ids as $id) :
$simpleproduct = Mage::getModel('catalog/product')-&load($id);
$simpleproduct-&getName()." - ".(int)Mage::getModel('cataloginventory/stock_item')-&loadByProduct($simpleproduct)-&getQty();
$childProducts = Mage::getModel('catalog/product_type_configurable')-&getUsedProducts(null, $product);
endforeach;
3.21 get the attributes of Configurable Product.
$attributes = $product-&getTypeInstance(true)-&getConfigurableAttributes($product);
3.22 当前路径
$currentUrl = $this-&helper('core/url')-&getCurrentUrl();
3.23 通过资源配置方式创建目录
$installer = $ $installer-&startSetup(); // make directory for font cache
$domPdfFontCacheDir = join(DS, array('lib', 'Symmetrics', 'dompdf', 'fonts'));
$domPdfFontCacheDir = Mage::getBaseDir('var') . DS . $domPdfFontCacheD
if (!file_exists($domPdfFontCacheDir)) {
mkdir($domPdfFontCacheDir, 0777, true);
} catch(Exception $e) {
throw new Exception( 'Directory ' . $domPdfFontCacheDir . ' is not writable or couldn\'t be ' . 'created. Please do it manually.' . $e-&getMessage() );
$installer-&endSetup();
3.24 在controllers 实现跳转
Mage::app()-&getFrontController() -&getResponse() -&setRedirect('');
×××××
$cms_id = Mage::getSingleton('cms/page')-&getIdentifier();
$cms_title = Mage::getSingleton('cms/page')-&getTitle();
$cms_content = Mage::getSingleton('cms/page')-&getContent();
3.25 获取当前站点货币符号
$storeId = (int) $this-&getRequest()-&getParam('store', 0);
$store=Mage::app()-&getStore($storeId);
$currencyCode=$store-&getBaseCurrency()-&getCode();
$attribute = Mage::getModel('catalog/resource_eav_attribute')-&load($attributeId);
$attributeData = $attribute-&getData();
$frontEndLabel = $attributeData['frontend_label'];
$attributeOptions = $attribute-&getSource()-&getAllOptions();
3.26 设置meta信息
$template = Mage::getConfig()-&getNode('global/page/layouts/'.Mage::getStoreConfig("featuredproducts/general/layout").'/template');
this-&loadLayout(); $this-&getLayout()-&getBlock('root')-&setTemplate($template);
$this-&getLayout()-&getBlock('head')-&setTitle($this-&__(Mage::getStoreConfig("featuredproducts/general/meta_title")));
$this-&getLayout()-&getBlock('head')-&setDescription($this-&__(Mage::getStoreConfig("featuredproducts/general/meta_description")));
$this-&getLayout()-&getBlock('head')-&setKeywords($this-&__(Mage::getStoreConfig("featuredproducts/general/meta_keywords")));
$this-&renderLayout();
magento中调用static block(静态块)的几种方法
通常情况下,在magento程序中使用静态块用来创建广告、促销图片及静态的内容等等
以下以在magento中利用静态块来创建首页两侧的广告
在后台创建一个ad1静态块
(1)如果要在.phtml文件中直接调用这个静态块,那可以采用以下方法
$block = Mage::getModel(‘cms/block’)
-&setStoreId(Mage::app()-&getStore()-&getId()) -&load(‘ad1′);
$content = $block-&getContent(); // Block的原始内容已经获得
$processor = Mage::getModel(‘core/email_template_filter’);
echo $html = $processor-&filter($content);
Mage::getModel(‘core/email_template_filter’)-&filter()是必须的,因为Static Block里可能包含Magento的模板语言(如:{{store url=”"}}),fiter将翻译成实际的值
Magento中调用静态Block主要有两个地方。
是否感觉这代码太长了呢,那你还可以这么写
&?php echo $this-&getLayout()-&createBlock('cms/block')-&setBlockId('order_form')-&toHtml() ?&
(2)在CMS页面的Content中调用这个静态块呢?你可以采用以下方法
{{block type=”cms/block” name=”cms_ad1_block” block_id=”ad1″ }}
(3)在layout中调用静态块
&reference name=”footer”&
&block type=”cms/block” name=”ad1″ before=”-”&
&action method=”setBlockId”&&block_id&ad1&/block_id&&/action&
&/reference&
5.1 获取当前的时间
1) $date = Mage::app()-&getLocale()-&date(Mage::getSingleton('core/date')-&gmtTimestamp(), null, null);
$date = $date-&toString('yyyy-MM-dd hh:m:s');
2) Mage::getModel('core/date')-&date(); date("Y-m-d", Mage::getModel('core/date')-&timestamp(time()));
Magento中默认时区为GMT, 不能直接使用time(), date()等方法,否则会出现时间差。
用下面的方法取当前时间(和后台设置的时区一致):
date("Y-m-d", Mage::getModel('core/date')-&timestamp(time()));
获得UTC时间的方法
$date = Mage::app()-&getLocale()-&utcDate($store, $value, true, Varien_Date::DATETIME_INTERNAL_FORMAT);
$this-&setData(‘date_start’, $date-&toString(Varien_Date::DATETIME_INTERNAL_FORMAT));
$date = Mage::app()-&getLocale()-&date();
$dStr = $date-&toString(Varien_Date::DATETIME_INTERNAL_FORMAT);
//$dStr 可以用于存储到数据库的datetime字段.
5.2 格式化时间
Mage::app()-&getLocale()-&date($creditMemo-&getCreatedAt())-&toString('YYYY-MM-dd');
$this-&_filterDates($data, array('date_expires'));
protected function _filterDates($array, $dateFields)
if (empty($dateFields)) {
$filterInput = new Zend_Filter_LocalizedToNormalized(array(
'date_format' =& Mage::app()-&getLocale()-&getDateFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT)
$filterInternal = new Zend_Filter_NormalizedToLocalized(array(
'date_format' =& Varien_Date::DATE_INTERNAL_FORMAT
foreach ($dateFields as $dateField) {
if (array_key_exists($dateField, $array) && !empty($dateField)) {
$array[$dateField] = $filterInput-&filter($array[$dateField]);
$array[$dateField] = $filterInternal-&filter($array[$dateField]);
5.3 加减日期
Mage::app()-&getLocale()-&date()-&sub("3",Zend_Date::DAY)-&toString('YYYY-MM-dd HH:mm:ss');
5.4 日期过滤
$todayDate = Mage::app()-&getLocale()-&date()-&toString(Varien_Date::DATETIME_INTERNAL_FORMAT);
$this-&_getProductCollection()
-&addAttributeToFilter('news_from_date', array('or'=& array(
0 =& array('date' =& true, 'to' =& $todayDate),
1 =& array('is' =& new Zend_Db_Expr('null')))
), 'left')
-&addAttributeToFilter('news_to_date', array('or'=& array(
0 =& array('date' =& true, 'from' =& $todayDate),
1 =& array('is' =& new Zend_Db_Expr('null')))
), 'left')
-&addAttributeToFilter(
array('attribute' =& 'news_from_date', 'is'=&new Zend_Db_Expr('not null')),
array('attribute' =& 'news_to_date', 'is'=&new Zend_Db_Expr('not null'))
-&addAttributeToFilter('visibility', array('in' =& array(2, 4)))
-&addAttributeToSort('news_from_date', 'desc')
-&setPage(1, 4);
5.5 判断日期是否有效
Mage::app()-&getLocale()-&isStoreDateInInterval(Mage::app()-&getStore(), $special_from_date, $special_to_date)
6. collection
6.1 在Configuation中添加validate
&validate&validate-number&/validate&
6.2 获取当前的controller
$moduleName=Mage::app()-&getRequest()-&getModuleName();
$controllerName=Mage::app()-&getRequest()-&getControllerName();
$actionName=Mage::app()-&getRequest()-&getActionName();
$fullActionName=$moduleName."_".$controllerName."_".$actionN
6.3 controller 中 添加block
$this-&getLayout()
-&createBlock('clientnumber/inputform', 'checkout.cart.inputclientnumber')
-&setTemplate('clientnumber/input.phtml')
-&toHtml()
6.5添加breadcrumbs在 controller中(为前端页面添加面包屑,如 Category/product这里的导航 ):
在controller文件中填充面包屑数据,在block的phtml文件中显示
1). 在controller的Action方法中
//判断是否存在名字为breadcrumbs的Block(默认都存在,后面有说明)
if ($breadcrumbsBlock = $this-&getLayout()-&getBlock('breadcrumbs')) {
// 该条目有目标链接地址
$breadcrumbsBlock-&addCrumb('category', array(
'label' =& 'Category',
'title' =& 'Category Title',
'link' =& '',
'readonly' =& true,
// 该条目没有链接地址,一般作为最后一个条目
$breadcrumbsBlock-&addCrumb('product', array('label' =& Mage::helper('catalog')-&__('Product')));
2). 在该action对应的Layout文件中添加Block
&block type="page/html_breadcrumbs" name="breadcrumbs" as="breadcrumbs"/&
相应的在你的Block的合适位置输出面包屑
&?php echo $this-&getChildHtml('breadcrumbs'); ?&
以上描述的是面包屑的一般原理,Magento实际上已经默认声明了Block
&block type="page/html_breadcrumbs" name="breadcrumbs" as="breadcrumbs"/&
而且默认的几个layout模板文件(page/1column.phtml,page/2columns-left.phtml..等)已经做了
&?php echo $this-&getChildHtml('breadcrumbs'); ?&
6.6 filter in collection
$collection = Mage::getModel('sales/order')-&getCollection()
-&addFieldToFilter('status', array('eq'=&'pending'))
-&addFieldToFilter('created_at', array('datetime' =& true, 'from'=&" 00:00:00",'to' =& Mage::app()-&getLocale()-&date()-&sub("3",Zend_Date::DAY)-&toString('YYYY-MM-dd HH:mm:ss')));
6.7 在controllers 实现跳转
Mage::app()-&getFrontController() -&getResponse() -&setRedirect('');
7. 获取quote中的所有的item
$quote=Mage::getSingleton('checkout/session')-&getQuote();
foreach ($quote-&getAllItems() as $item) {
$proId[]=$item-&getProduct()-&getId();
8. 发送邮件
$mailTransport = new Zend_Mail_Transport_Smtp( '192.168.0.1' );
$mail = new Zend_Mail();
$mail-&setBodyText($content);
$mail-&setFrom("", 'Webmaster');
$mail-&addTo("", '');
$mail-&setSubject('Import attribute logs');
$mail-&send($mailTransport);
9.1 用block创建一个template
&?php echo Mage::getBlockSingleton('inseecode/form')-&getInseeFormHtml($this-&getAddress(), 'customer');?&
public function getInseeFormHtml($address, $type) {
$this-&setTemplate('inseecode/form.phtml');
return $this-&toHtml();
9.2 利用静态block
&?php echo $this-&getLayout()-&createBlock('clientnumber/widget_name')
-&setObject($this-&getAddress())
-&toHtml()
9.3 调用static block
1) 如果要在.phtml文件中直接调用这个静态块,那可以采用以下方法
&?php $block = Mage::getModel('cms/block')
-&setStoreId(Mage::app()-&getStore()-&getId())
-&load('order_form');
$content = $block-&getContent(); // Block的原始内容已经获得
$processor = Mage::getModel('core/email_template_filter');
echo $html = $processor-&filter($content);
Mage::getModel(‘core/email_template_filter’)-&filter()是必须的,
因为Static Block里可能包含Magento的模板语言(如:{{store url=”"}}),fiter将翻译成实际的值
Magento中调用静态Block主要有两个地方。
是否感觉这代码太长了呢,那你还可以这么写
&?php echo $this-&getLayout()-&createBlock(‘cms/block’)-&setBlockId(‘order_form’)-&toHtml() ?&
2) magento中的CMS功能,可以让我们很方便的在PHP中嵌入经常要更改的内容,这样我们可以通过在CMS中直接修改文章内容,
而不需要去修改源代码,最经典的就是我们的首页就是写在CMS Static block中的。
如何在CMS页面的Content中调用这个静态块呢?你可以采用以下方法
{{block type=”cms/block” name=”cms_test_block” block_id=”order_form” }}
将里面order_form改成你的静态块对应的block_id则可
3) 怎么样在layout中调用静态块呢?
&reference name=”footer”&
&block type=”cms/block” name=”order_form” before=”-”&
&action method=”setBlockId”&&block_id&order_form&/block_id&&/action&
&/reference&
magento中调用CMS静态块(Static Block)教程到此就结束了,你应该能够灵活的运用magento中的静态块了吧!
10. 获取指定level目录
$parent = Mage::app()-&getStore()-&getRootCategoryId();
$categoryModel = Mage::getModel('catalog/category');
$storeCategories = $categoryModel-&getCategories($parent, 2); //获取level 2
11. 数据库
11.1 修改数据库结构
$installer-&getConnection()-&addColumn(
$installer-&getTable('enterprise_giftcardaccount/giftcardaccount'),
'gift_card_type',
"VARCHAR(200) DEFAULT ''");
$installer-&getConnection()-&addColumn(
$installer-&getTable('enterprise_giftcardaccount/giftcardaccount'),
'gift_card_type',
"TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT '0'");
$installer-&getConnection()-&dropColumn($installer-&getTable('eav_attribute'), 'use_in_super_product');
$installer-&run("ALTER TABLE `sales_flat_order` CHANGE `is_synced` `is_synced` INT( 4 ) NOT NULL ");
11.2 magento操作数据库
$this-&getSelect()
-&from(array('e' =& $this-&getEntity()-&getFlatTableName()), null)
-&columns(array('status' =& new Zend_Db_Expr(Mage_Catalog_Model_Product_Status::STATUS_ENABLED)));
$this-&addAttributeToSelect(array('entity_id', 'type_id', 'attribute_set_id'));
if ($this-&getFlatHelper()-&isAddChildData()) {
$this-&getSelect() -&where('e.is_child=?', 0);
$this-&addAttributeToSelect(array('child_id', 'is_child'));
$select=$this-&getSelect()-&from(array('e'=&$this-&getEntity()-&getEntityTable()));
$select-&joinRight( array('t'=&'test_product'), 'e.entity_id = t.entity_id', array() );
$resource = Mage::getSingleton('core/resource');
$read= $resource-&getConnection('read');
$tempTable = $resource-&getTableName('eav_attribute'); //用其他表也是可以的
$wheres = "`entity_type_id` =4 ";
//SELECT count(*) as num FROM `eav_attribute` WHERE (`entity_type_id` =4 )
//$select = $read-&select() -&from($tempTable, array('count(*) as num')) -&where($wheres);
//SELECT `eav_attribute`.* FROM `eav_attribute` WHERE (`entity_type_id` =4 )
//$select = $read-&select() -&from($tempTable) -&where($wheres);
//SELECT `eav_attribute`.`attribute_code` FROM `eav_attribute` WHERE (`entity_type_id` =4 )
$select = $read-&select() -&from($tempTable, array('attribute_code')) -&where($wheres);
$result = $read-&fetchAll($select);
$resource = Mage::getSingleton('core/resource');
$read= $resource-&getConnection('read');
$select = "select * from catalog_product_entity where entity_id =5";
$result = $read-&fetchAll($select);
//$result = $read-&fetchOne($select);
$instructors = array();
foreach($result as $item){
$instructors[$item['entity_id']] = array('position' =& $item['sku']);
$dbw = Mage::getSingleton('core/resource')-&getConnection('write');
$sql="update catalog_product_entity set sku='sku11' where entity_id=5";
$dbw-&query( $sql );
magento--调用数据库的步骤--使用magento机制访问数据库
在后台附加一个属性,譬如品牌.然后,在产品详细页面,把同个品牌的产品都调用出来!下面是程序代码
public function getOtherProduct(){
$_producty = $this-&getProduct();
$_biaoshi = $_producty['biaoshi'];
$resource = Mage::getSingleton('core/resource');
$read = $resource-&getConnection('catalog_read');
$categoryProductTable = $resource-&getTableName('catalog/category_product');
//$productEntityIntTable = $resource-&getTableName('catalog/product_entity_int'); // doesn't work
$productEntityIntTable = (string)Mage::getConfig()-&getTablePrefix().'catalog_product_entity_int';
$eavAttributeTable = $resource-&getTableName('eav/attribute');
$product_attribute_valueTable = (string)Mage::getConfig()-&getTablePrefix().'catalog_product_entity_varchar';
//return $product_attribute_valueT
// var_dump($productEntityIntTable);
// Query database for featured product
$select = $read-&select()
-&from(array('cp'=&$categoryProductTable))
// -&join(array('pei'=&$productEntityIntTable),'pei.entity_id=cp.product_id', array())
-&join(array('pss'=&$product_attribute_valueTable),'pss.entity_id=cp.product_id',array())
-&joinNatural(array('ea'=&$eavAttributeTable))
// -&joinNatural(array('pss'=&$product_attribute_valueTable))
// -&where('cp.category_id=?', $categoryId)
-&where('pss.value=?',$_biaoshi)
// -&where('ea.a')
-&where('ea.attribute_code="biaoshi"');
$rows = $read-&fetchAll($select);
$ids = array();
foreach($rows AS $row) {
$ids[] = $row['product_id'];
$ret = implode(',', $ids);
$ids = array_unique($ids);
// return $
$productList = array();
foreach($ids as $idq){
$product = Mage::getModel('catalog/product')-&load($idq);
$productList[] = $
// $product = Mage::getModel('catalog/product')-&load($this-&getProductId());
// $collection = Mage::getModel('catalog/product')-&getCollection();
// $collection-&getSelect()-&where('e.entity_id in (?)', $ids);
// $collection-&addAttributeToSelect('*');
// $productList = $collection-&load();
return $productL
// return $
如果你想成为一个magento二次开发程序员,上面的代码,你会感兴趣
12. 打印php调试信息的代码
$array = debug_backtrace();
//print_r($array);//信息很齐全
unset($array[0]);
foreach($array as $row)
$html .= $row['file'].':'.$row['line'].'行,调用方法:'.$row['function']."&p&";
13. test code for quote
$quote=Mage::getSingleton('checkout/session')-&getQuote();
foreach ($quote-&getAllVisibleItems() as $item) {
echo $item-&getProductId();
浏览: 82948 次
来自: 上海
人才啊,还会安卓开发
hudeyong926 写道转载了还在搞magento,my

我要回帖

更多关于 magento 1.7 新功能 的文章

 

随机推荐