Magento: 根据产品属性加载产品信息 Load A Category or Product by an Attribute

Load a Product by ID

<?php
 
// get product model by product id, assuming you have known product id, $productId
$_product = Mage::getModel('catalog/product')->load($productId)

Load a Product by SKU

<?php

	$sku = 'my-product-sku';
	$product = Mage::getModel('catalog/product')->load($sku, 'sku');
	
	if ($product->getId()) {
		echo $product->getName();
		echo $product->getProductUrl();
	}
	else {
		echo 'Product not found with SKU of ' . $sku;
	}

Load a Product by an Attribute

<?php

	// Instantiate a product collection object
	$products = Mage::getResourceModel('catalog/product_collection');
	
	// Select which fields to load into the product
	// * will load all fields but it is possible to pass an array of
	// select fields to load
	$products->addAttributeToSelect('*');
	
	// Ensure the product is visible
	$products->addAttributeToFilter('visibility', array('neq' => 1));
	
	// Ensure the product is enabled
	$products->addAttributeToFilter('status', 1);
	
	// Add Name filter
	$products->addAttributeToFilter('name', 'My Product Name');

	// Limit the collection to 1 result
	$products->setCurPage(1)->setPageSize(1);
	
	// Load the collection
	$products->load();
	
	if ($products->getFirstItem()) {
		$product = $products->getFirstItem();
		
		echo $product->getName();
	}
	else {
		echo 'No product exists with the name ' . $name;
	}
<?php
	
	// Print out the SQL query generated by the collection object so far
	echo $products->getSelect() . '<br/><br/>';

Loading a Category by an Attribute

<?php

	// Instantiate a category collection object
	$categories = Mage::getResourceModel('catalog/category_collection');
	
	// Select which fields to load into the category
	// * will load all fields but it is possible to pass an array of
	// select fields to load
	$categories->addAttributeToSelect('*');
	
	// Ensure the category is active
	$categories->addAttributeToFilter('is_active', 1);
	
	// Add Name filter
	$categories->addAttributeToFilter('name', 'My Category Name');

	// Limit the collection to 1 result
	$categories->setCurPage(1)->setPageSize(1);
	
	// Load the collection
	$categories->load();
	
	if ($categories->getFirstItem()) {
		$category = $categories->getFirstItem();
		
		echo $category->getName();
	}
	else {
		echo 'No category exists with the name ' . $name;
	}

 

本文: Magento: 根据产品属性加载产品信息 Load A Category or Product by an Attribute

Leave a Reply