-
-
Save quantumJLBass/6581038 to your computer and use it in GitHub Desktop.
In order to programmatically delete attributes when you switch from one set to another you must first look at all the entries for the new set, then get a list of all attributes, check against that list and (this is the important part) remove it from the correct entity table. For example, I want to get rid of a value of 500 GB
that is in the sample Magento data when I switch Western Digital 500GB HD - 7200RPM
from Hard Drive
to Shoes
. In order to do that I must remove the entry in the catalog_product_entity_text
table it's stored at. This means that I must find that entry where it's equal to the product id and then delete it. Here is how I approached this issue. NOTE: This is from a WSU (Washington State University) extension I'm working on Storeutilities
<?php
class Wsu_Storeutilities_Adminhtml_Catalog_ProductController extends Mage_Adminhtml_Controller_Action {
protected $_allAttributes = array();
/**
* Get or initialize an array of the default attributes for every product.
*
* @return array The Require attribute codes for the produt's new attribute set.
*/
protected function _getRequiredAttributes($attrSetId) {
$_requiredAttributes = array();
$attributes = Mage::getModel('catalog/product_attribute_api')->items($attrSetId);
foreach ($attributes as $_attribute) {
$_requiredAttributes[] = $_attribute['code'];
}
//these must be there so lets just make sure
$_requiredAttributes[] = 'has_options';
$_requiredAttributes[] = 'required_options';
$_requiredAttributes[] = 'sku';
return $_requiredAttributes;
}
protected function _getAllAttributes() {
if (empty($this->_allAttributes)) {
$attributes = Mage::getResourceModel('catalog/product_attribute_collection')->getItems();
foreach ($attributes as $_attribute) {
$attr['code'] = $_attribute['attribute_code'];
$attribute = Mage::getModel('eav/entity_attribute')->load($_attribute['attribute_id']);
$attr['table'] = $attribute->getBackendTable();
$attr['id'] = $_attribute['attribute_id'];
$this->_allAttributes[] = $attr;
}
}
return $this->_allAttributes;
}
/**
* Attempt to remove any required attributes linked to the product that are not in the new attribute set.
*
* @param Mage_Catalog_Model_Product $product
*/
protected function _cleanAttributes(Mage_Catalog_Model_Product $product) {
$write = $product->getResource()->getWriteConnection();
$required = $this->_getRequiredAttributes($product->getAttributeSetId());
$all_attributes = $this->_getAllAttributes();
foreach ($all_attributes as $attribute) {
try {
if (!in_array($attribute['code'], $required)) {
$write->delete($attribute['table'], join(' AND ', array(
$write->quoteInto('attribute_id=?', $attribute['id']),
$write->quoteInto('entity_id=?', $product->getId())
)));
}
}
catch (Exception $e) {
$this->_getSession()->addError("Failed to unlink attribute {$attribute['code']} from product.".$e->getMessage());
}
}
}
/**
* Change the attribute set of the product.
*/
public function changeattributesetAction() {
$_productIds = $this->getRequest()->getParam('product');
$productIds = array_map('intval', $_productIds);
$affectedProductIds = array();
$storeId = (int) $this->getRequest()->getParam('store', 0);
$attributeSet = (int) $this->getRequest()->getParam('attribute_set');
$defaultSetId = Mage::getSingleton('catalog/product')->getResource()->getEntityType()->getDefaultAttributeSetId();
if (!is_array($productIds)) {
$this->_getSession()->addError($this->__('Please select product(s)'));
} else {
try {
foreach ($productIds as $productId) {
$product = Mage::getSingleton('catalog/product')->unsetData()->setStoreId($storeId)->load($productId);
$ptype = $product->getTypeID();
$is_simple = (!$product->isComposite() && !$product->isSuper());
//at this time we want to just do the simple product types. Maybe later we can test out for something better
if ($is_simple && $ptype != "bundle") {
$product->setAttributeSetId($attributeSet)->setIsMassupdate(true)->save();
if(Mage::helper('storeutilities')->hasExt('Wsu_Logger')){
$_product=Mage::getModel('cataloginventory/stock_item')->loadByProduct($product);
Mage::getModel('wsu_logger/stock_observer')->insertStockMovement($_product, "Changed to attribute $attributeSet in mass edit");
}
$this->_cleanAttributes($product);
$affectedProductIds[] = $product->getEntityId();
} else {
$this->_getSession()->addError($this->__('Skipping product ' . $product->getName() . ' as it is not the base product.'));
}
}
Mage::dispatchEvent('catalog_product_massupdate_after', array(
'products' => $affectedProductIds
));
$this->_getSession()->addSuccess($this->__('Total of %d record(s) were successfully updated', count($affectedProductIds)));
}
catch (Exception $e) {
$this->_getSession()->addException($e, $e->getMessage());
}
}
$this->_redirect('adminhtml/catalog_product/index/', array());
}
}
<?php Mage::log('Your Log Message', Zend_Log::INFO, 'your_log_file.log'); ?>
<?= Zend_Debug::dump($thing_to_debug, 'debug'); ?>
Reset Development Environment (delete orders, customers, reset ids and counters, truncate statistics)
SET FOREIGN_KEY_CHECKS=0;
-- Here's where we reset the orders
TRUNCATE `sales_flat_order`;
TRUNCATE `sales_flat_order_address`;
TRUNCATE `sales_flat_order_grid`;
TRUNCATE `sales_flat_order_item`;
TRUNCATE `sales_flat_order_status_history`;
TRUNCATE `sales_flat_quote`;
TRUNCATE `sales_flat_quote_address`;
TRUNCATE `sales_flat_quote_address_item`;
TRUNCATE `sales_flat_quote_item`;
TRUNCATE `sales_flat_quote_item_option`;
TRUNCATE `sales_flat_order_payment`;
TRUNCATE `sales_flat_quote_payment`;
TRUNCATE `sales_flat_shipment`;
TRUNCATE `sales_flat_shipment_item`;
TRUNCATE `sales_flat_shipment_grid`;
TRUNCATE `sales_flat_invoice`;
TRUNCATE `sales_flat_invoice_grid`;
TRUNCATE `sales_flat_invoice_item`;
TRUNCATE `sendfriend_log`;
TRUNCATE `tag`;
TRUNCATE `tag_relation`;
TRUNCATE `tag_summary`;
TRUNCATE `wishlist`;
TRUNCATE `log_quote`;
TRUNCATE `report_event`;
ALTER TABLE `sales_flat_order` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order_address` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order_grid` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order_item` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order_status_history` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote_address` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote_address_item` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote_item` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote_item_option` AUTO_INCREMENT=1;
ALTER TABLE `sendfriend_log` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order_payment` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote_payment` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_shipment` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_shipment_item` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_invoice` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_invoice_grid` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_invoice_item` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_shipment_grid` AUTO_INCREMENT=1;
ALTER TABLE `tag` AUTO_INCREMENT=1;
ALTER TABLE `tag_relation` AUTO_INCREMENT=1;
ALTER TABLE `tag_summary` AUTO_INCREMENT=1;
ALTER TABLE `wishlist` AUTO_INCREMENT=1;
ALTER TABLE `log_quote` AUTO_INCREMENT=1;
ALTER TABLE `report_event` AUTO_INCREMENT=1;
-- Here's where we reset the customers
TRUNCATE `customer_address_entity`;
TRUNCATE `customer_address_entity_datetime`;
TRUNCATE `customer_address_entity_decimal`;
TRUNCATE `customer_address_entity_int`;
TRUNCATE `customer_address_entity_text`;
TRUNCATE `customer_address_entity_varchar`;
TRUNCATE `customer_entity`;
TRUNCATE `customer_entity_datetime`;
TRUNCATE `customer_entity_decimal`;
TRUNCATE `customer_entity_int`;
TRUNCATE `customer_entity_text`;
TRUNCATE `customer_entity_varchar`;
TRUNCATE `log_customer`;
TRUNCATE `log_visitor`;
TRUNCATE `log_visitor_info`;
ALTER TABLE `customer_address_entity` AUTO_INCREMENT=1;
ALTER TABLE `customer_address_entity_datetime` AUTO_INCREMENT=1;
ALTER TABLE `customer_address_entity_decimal` AUTO_INCREMENT=1;
ALTER TABLE `customer_address_entity_int` AUTO_INCREMENT=1;
ALTER TABLE `customer_address_entity_text` AUTO_INCREMENT=1;
ALTER TABLE `customer_address_entity_varchar` AUTO_INCREMENT=1;
ALTER TABLE `customer_entity` AUTO_INCREMENT=1;
ALTER TABLE `customer_entity_datetime` AUTO_INCREMENT=1;
ALTER TABLE `customer_entity_decimal` AUTO_INCREMENT=1;
ALTER TABLE `customer_entity_int` AUTO_INCREMENT=1;
ALTER TABLE `customer_entity_text` AUTO_INCREMENT=1;
ALTER TABLE `customer_entity_varchar` AUTO_INCREMENT=1;
ALTER TABLE `log_customer` AUTO_INCREMENT=1;
ALTER TABLE `log_visitor` AUTO_INCREMENT=1;
ALTER TABLE `log_visitor_info` AUTO_INCREMENT=1;
-- This is to Reset all the ID counters
TRUNCATE `eav_entity_store`;
ALTER TABLE `eav_entity_store` AUTO_INCREMENT=1;
SET FOREIGN_KEY_CHECKS=1;
TRUNCATE TABLE `sales_bestsellers_aggregated_daily`;
TRUNCATE TABLE `sales_bestsellers_aggregated_monthly`;
TRUNCATE TABLE `sales_bestsellers_aggregated_yearly`;
DELETE FROM report_event WHERE event_type_id IN (SELECT event_type_id FROM report_event_types WHERE event_name IN ('catalog_product_view'));
find </path/to/magento> -type f \-exec chmod 644 {} \;
find </path/to/magento> -type d \-exec chmod 755 {} \;
Other recommendations in "Securing Magento File & Directory Permissions" (http://blog.nexcess.net/2010/12/06/securing-magento-file-directory-permissions/)
find </path/to/magento> \-exec chown youruser.youruser {} \;
find </path/to/magento> -type f \-exec chmod 644 {} \;
find </path/to/magento> -type d \-exec chmod 711 {} \;
find </path/to/magento> -type f -name "*.php" \-exec chmod 600 {} \;
chmod 600 </path/to/magento>/app/etc/*.xml
update eav_entity_store
inner join eav_entity_type on eav_entity_type.entity_type_id = eav_entity_store.entity_type_id
set eav_entity_store.increment_prefix='YOURPREFIX'
set eav_entity_store.increment_last_id='YOURSTARTINGORDERNUMBER'
where eav_entity_type.entity_type_code='order';
<?php
$_category = Mage::getModel('catalog/category')->load(89);
$_category_url = $_category->getUrl();
?>
<?php
$_product_1 = Mage::getModel('catalog/product')->load(12);
$_product_2 = Mage::getModel('catalog/product')->loadByAttribute('sku','cordoba-classic-6-String-guitar');
?>
<?php
// input is $_product and result is iterating child products
$childProducts = Mage::getModel('catalog/product_type_configurable')->getUsedProducts(null, $product);
?>
<?php
// input is $_product and result is iterating child products
$conf = Mage::getModel('catalog/product_type_configurable')->setProduct($_product);
$col = $conf->getUsedProductCollection()->addAttributeToSelect('*')->addFilterByRequiredOptions();
foreach($col as $simple_product){
var_dump($simple_product->getId());
}
?>
<?= $this->getLayout()->createBlock('cms/block')->setBlockId('block-name')->toHtml(); ?>
First approach: page.xml - you can add something like
<action method="addJs"><script>path/to/my/file.js</script></action>
Second approach: Find page/html/head.phtml
in your theme and add the code directly to page.html
.
Third approach: If you look at the stock page.html mentioned above, you'll see this line
<?= $this->getChildHtml(); ?>
Normally, the getChildHtml method is used to render a specific child block. However, if called with no paramater, getChildHtml will automatically render all the child blocks. That means you can add something like
<!-- existing line --> <block type="page/html_head" name="head" as="head">
<!-- new sub-block you're adding --> <block type="core/template" name="mytemplate" as="mytemplate" template="page/mytemplate.phtml"/>
...
to page.xml
, and then add the mytemplate.phtml
file. Any block added to the head block will be automatically rendered. (this automatic rendering doesn't apply for all layout blocks, only for blocks where getChildHtml is called without paramaters).
<?php
$currentCategory = Mage::registry('current_category');
$currentProduct = Mage::registry('current_product');
$currentCmsPage = Mage::registry('cms_page');
?>
By default, Magento will check the 'Exclude' box for you on all imported images, making them not show up as a thumbnail under the main product image on the product view.
# Mass Unexclude
UPDATE`catalog_product_entity_media_gallery_value` SET `disabled` = '0' WHERE `disabled` = '1';
# Mass Exclude
UPDATE`catalog_product_entity_media_gallery_value` SET `disabled` = '1' WHERE `disabled` = '0';
<?php
// http://example.com/
echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB);
// http://example.com/js/
echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS);
// http://example.com/index.php/
echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK);
// http://example.com/media/
echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA);
// http://example.com/skin/
echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN);
?>
<?php
$rootCategoryId = Mage::app()->getStore()->getRootCategoryId();
$_category = Mage::getModel('catalog/category')->load($rootCategoryId);
// You can then get all of the top level categories using:
$_subcategories = $_category->getChildrenCategories();
?>
<?= Mage::helper('core/url')->getCurrentUrl(); ?>
Make sure the block that you’re working is of the type catalog/navigation. If you’re editing catalog/navigation/left.phtml then you should be okay.
<div id="leftnav">
<?php $helper = $this->helper('catalog/category') ?>
<?php $categories = $this->getStoreCategories() ?>
<?php if (count($categories) > 0): ?>
<ul id="leftnav-tree" class="level0">
<?php foreach($categories as $category): ?>
<li class="level0<?php if ($this->isCategoryActive($category)): ?> active<?php endif; ?>">
<a href="<?php echo $helper->getCategoryUrl($category) ?>"><span><?php echo $this->escapeHtml($category->getName()) ?></span></a>
<?php if ($this->isCategoryActive($category)): ?>
<?php $subcategories = $category->getChildren() ?>
<?php if (count($subcategories) > 0): ?>
<ul id="leftnav-tree-<?= $category->getId(); ?>" class="level1">
<?php foreach($subcategories as $subcategory): ?>
<li class="level1<?php if ($this->isCategoryActive($subcategory)): ?> active<?php endif; ?>">
<a href="<?= $helper->getCategoryUrl($subcategory); ?>"><?= $this->escapeHtml(trim($subcategory->getName(), '- ')); ?></a>
</li>
<?php endforeach; ?>
</ul>
<script type="text/javascript">decorateList('leftnav-tree-<?php echo $category->getId() ?>', 'recursive')</script>
<?php endif; ?>
<?php endif; ?>
</li>
<?php endforeach; ?>
</ul>
<script type="text/javascript">decorateList('leftnav-tree', 'recursive')</script>
<?php endif; ?>
</div>
<?php if($_product->isSaleable()) { // do stuff } ?>
<?php
$_category = Mage::getModel('catalog/category')->load(47);
$_productCollection = $_category->getProductCollection();
if($_productCollection->count()) {
foreach( $_productCollection as $_product ):
echo $_product->getProductUrl();
echo $this->getPriceHtml($_product, true);
echo $this->htmlEscape($_product->getName());
endforeach;
}
?>
In /app/design/frontend/default/site/template/catalog/product/view/type/
<?php $_helper = $this->helper('catalog/output'); ?>
<?php $_associatedProducts = $this->getAllowProducts() ?>
<?php //var_dump($_associatedProducts); ?>
<br />
<br />
<?php if (count($_associatedProducts)): ?>
<?php foreach ($_associatedProducts as $_item): ?>
<a href="<?= $_item->getProductUrl(); ?>"><?= $_helper->productAttribute($_item, $_item->getName(), 'name'); ?> | <?= $_item->getName(); ?> | <?= $_item->getPrice(); ?></a>
<br />
<br />
<?php endforeach; ?>
<?php endif; ?>
<?php
$countryList = Mage::getResourceModel('directory/country_collection')
->loadData()
->toOptionArray(false);
echo '<pre>';
print_r( $countryList);
exit('</pre>');
?>
<?php
$_countries = Mage::getResourceModel('directory/country_collection')
->loadData()
->toOptionArray(false) ?>
<?php if (count($_countries) > 0): ?>
<select name="country" id="country">
<option value="">-- Please Select --</option>
<?php foreach($_countries as $_country): ?>
<option value="<?= $_country['value']; ?>">
<?= $_country['label']; ?>
</option>
<?php endforeach; ?>
</select>
<?php endif; ?>
<?php
$_product->getThisattribute();
$_product->getAttributeText('thisattribute');
$_product->getResource()->getAttribute('thisattribute')->getFrontend()->getValue($_product);
$_product->getData('thisattribute');
// The following returns the option IDs for an attribute that is a multiple-select field:
$_product->getData('color'); // i.e. 456,499
// The following returns the attribute object, and instance of Mage_Catalog_Model_Resource_Eav_Attribute:
$_product->getResource()->getAttribute('color'); // instance of Mage_Catalog_Model_Resource_Eav_Attribute
// The following returns an array of the text values for the attribute:
$_product->getAttributeText('color') // Array([0]=>'red', [1]=>'green')
// The following returns the text for the attribute
if ($attr = $_product->getResource()->getAttribute('color')):
echo $attr->getFrontend()->getValue($_product); // will display: red, green
endif;
?>
<?php
$formattedPrice = Mage::helper('core')->currency($_finalPrice,true,false);
}
?>
<?php
$cart = Mage::getModel('checkout/cart')->getQuote()->getData();
print_r($cart);
$cart = Mage::helper('checkout/cart')->getCart()->getItemsCount();
print_r($cart);
$session = Mage::getSingleton('checkout/session');
foreach ($session->getQuote()->getAllItems() as $item) {
echo $item->getName();
Zend_Debug::dump($item->debug());
}
?>
<?php
Mage::getModel('checkout/cart')->getQuote()->getItemsCount();
Mage::getSingleton('checkout/session')->getQuote()->getItemsCount();
?>
<?php
Mage::getModel('checkout/cart')->getQuote()->getItemsQty();
Mage::getSingleton('checkout/session')->getQuote()->getItemsQty();
?>
<?php
Mage::getModel('checkout/cart')->getQuote()->getSubtotal();
Mage::getSingleton('checkout/session')->getQuote()->getSubtotal();
?>
<?php
Mage::helper('checkout')->formatPrice(Mage::getModel('checkout/cart')->getQuote()->getGrandTotal());
Mage::helper('checkout')->formatPrice(Mage::getSingleton('checkout/session')->getQuote()->getGrandTotal());
?>
<?php
$quote = Mage::getSingleton('checkout/session')->getQuote();
$items = $quote->getAllItems();
foreach ($items as $item) {
$priceInclVat += $item->getRowTotalInclTax();
}
Mage::helper('checkout')->formatPrice($priceInclVat);
?>
<?php
// $items = Mage::getModel('checkout/cart')->getQuote()->getAllItems();
$items = Mage::getSingleton('checkout/session')->getQuote()->getAllItems();
foreach($items as $item) {
echo 'ID: '.$item->getProductId().'<br />';
echo 'Name: '.$item->getName().'<br />';
echo 'Sku: '.$item->getSku().'<br />';
echo 'Quantity: '.$item->getQty().'<br />';
echo 'Price: '.$item->getPrice().'<br />';
echo "<br />";
}
?>
<?php
$totalItems = Mage::getModel('checkout/cart')->getQuote()->getItemsCount();
$totalQuantity = Mage::getModel('checkout/cart')->getQuote()->getItemsQty();
?>
<?php
if($_product->getTypeId() == "configurable") {
$ids = $_product->getTypeInstance()->getUsedProductIds();
?>
<ul>
<?php
foreach ($ids as $id) {
$simpleproduct = Mage::getModel('catalog/product')->load($id);
?>
<li>
<?= $simpleproduct->getName() . " - " . (int)Mage::getModel('cataloginventory/stock_item')->loadByProduct($simpleproduct)->getQty(); ?>
</li>
<?php } ?>
</ul>
<?php } ?>
UPDATE
customer_entity,
newsletter_subscriber
SET
customer_entity.`group_id` = 5
WHERE
customer_entity.`entity_id` = newsletter_subscriber.`customer_id`
AND
newsletter_subscriber.`subscriber_status` = 1;
<?php
$simpleProductId = 465;
$parentIds = Mage::getResourceSingleton('catalog/product_type_configurable')
->getParentIdsByChild($simpleProductId);
$product = Mage::getModel('catalog/product')->load($parentIds[0]);
echo $product->getId(); // ID = 462 (aka, Parent of 465)
?>
<?php
/**
* Load product by product id
*/
$product = Mage::getModel('catalog/product')->load(YOUR_PRODUCT_ID);
/**
* Get child products id (only ids)
*/
$childIds = Mage::getModel('catalog/product_type_configurable')->getChildrenIds($product->getId());
/**
* Get children products (all associated children products data)
*/
$childProducts = Mage::getModel('catalog/product_type_configurable')->getUsedProducts(null,$product);
?>
<?php
$_product = Mage::getModel('catalog/product')->load(YOUR_SIMPLE_PRODUCT_ID);
$parentIdArray = $_product->loadParentProductIds()->getData('parent_product_ids');
print_r($parentIdArray);
?>
<?php
$_customer = Mage::getSingleton('customer/session')->isLoggedIn();
if ($_customer) {}
?>
<?= $this->helper('catalog/image')->init($_product, 'image'); ?>
<?php
$this->helper('catalog/image')
->init($_product, 'image')
->keepFrame(false) // avoids getting the small image in original size on a solid background color presented (can be handy not to break some layouts)
->constrainOnly(true) // avoids getting small images bigger
->resize(650); // sets the desired width and the height accordingly (proportional by default)
?>
<img src="<?php echo $this->helper('catalog/image')->init($this->getProduct(), 'thumbnail', $_image->getFile())->backgroundcolor('000', '000', '000')->resize(100); ?>" />
<img src="<?php echo $this->helper('catalog/image')->init($this->getProduct(), 'thumbnail', $_image->getFile())->keepFrame(false)->resize(100); ?>" width="100" ... />
<img src="<?= $this->getSkinUrl('images/logo.png'); ?>" alt="logo" />
<img src={{skin url="images/logo.png"}} />
<?= $this->getLayout()->createBlock('cms/block')->setBlockId('my_block_identifier')->toHtml(); ?>
<?php
$customerAddressId = Mage::getSingleton('customer/session')->getCustomer()->getDefaultShipping();
if ($customerAddressId){
$address = Mage::getModel('customer/address')->load($customerAddressId);
}
?>
<?php
$productId = 1;
$product = Mage::getModel('catalog/product')->load($productId);
$path = Mage::helper('catalog/image')->init($product, 'image')->resize(75, 75);
?>
<?php
$productId = 1;
$product = Mage::getModel('catalog/product')->load($productId);
$path = Mage::getUrl().$product->getUrlPath();
?>
<?= Mage::getModel('catalog/category')->load($categoryId)->getUrl(); ?>
<?php
$id = 52;
$_product = Mage::getModel('catalog/product')->load($id);
// or load it by SKU
// $sku = "microsoftnatural";
// $_product = Mage::getModel('catalog/product')->loadByAttribute('sku', $sku);
$stock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($_product);
print_r($stock->getData());
echo $stock->getQty();
echo $stock->getMinQty();
echo $stock->getMinSaleQty();
?>
<?php
$_productId = 52;
$_product = Mage::getModel('catalog/product')->load($_productId);
// without currency sign
$_actualPrice = number_format($_product->getPrice(), 2);
// with currency sign
$_formattedActualPrice = Mage::helper('core')->currency(number_format($_product->getPrice(), 2),true,false);
// without currency sign
$_specialPrice = $_product->getFinalPrice();
// with currency sign
$_formattedSpecialPrice = Mage::helper('core')->currency(number_format($_product->getFinalPrice(), 2),true,false);
?>
<?= Mage::app()->getLocale()->currency(Mage::app()->getStore()->getCurrentCurrencyCode())->getSymbol(); ?>
<?= Mage::app()->getStore()->getCurrentCurrencyCode(); ?>
<?php
$visitorData = Mage::getSingleton('core/session')->getVisitorData();
print_r($visitorData);
// Array
// (
// [] =>
// [server_addr] => 167772437
// [remote_addr] => 167772437
// [http_secure] =>
// [http_host] => 127.0.0.1
// [http_user_agent] => Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.237 Safari/534.10
// [http_accept_language] => en-US,en;q=0.8
// [http_accept_charset] => ISO-8859-1,utf-8;q=0.7,*;q=0.3
// [request_uri] => /magento/index.php/catalog/category/view/id/22
// [session_id] => 13qm5u80238vb15lupqcac97r5
// [http_referer] => http://127.0.0.1/magento/
// [first_visit_at] => 2011-01-17 11:42:23
// [is_new_visitor] =>
// [last_visit_at] => 2011-01-17 11:58:38
// [visitor_id] => 41
// [last_url_id] => 139
// )
// user's ip address (visitor's ip address)
$remoteAddr = Mage::helper('core/http')->getRemoteAddr(true);
// server's ip address (where the current script is)
$serverAddr = Mage::helper('core/http')->getServerAddr(true);
?>
<?php
/**
* Get all products related to any particular brand
* Let us suppose that we are fetching the products related to 'Samsung' brand
* Let us suppose the Manufacturer ID of Samsung = 3
*/
$manufacturerId = 3;
$attributeCode = 'manufacturer';
$products = Mage::getModel('catalog/product')->getCollection()->addAttributeToFilter($attributeCode, $manufacturerId);
// print all products
print_r($products->getItems());
?>
<?php
if($this->getIsHomePage()) {
// Homepage
} else {
// not on Homepage
}
// alternative method
$routeName = Mage::app()->getRequest()->getRouteName();
$identifier = Mage::getSingleton('cms/page')->getIdentifier();
if($routeName == 'cms' && $identifier == 'home') {
// Homepage
} else {
// not on Homepage
}
?>
<?php
$baseCurrencyCode = Mage::app()->getStore()->getBaseCurrencyCode();
$currentCurrencyCode = Mage::app()->getStore()->getCurrentCurrencyCode();
$price = 100;
// convert price from current currency to base currency
$priceOne = Mage::helper('directory')->currencyConvert($price, $currentCurrencyCode, $baseCurrencyCode);
// convert price from base currency to current currency
$priceTwo = Mage::helper('directory')->currencyConvert($price, $baseCurrencyCode, $currentCurrencyCode);
?>
<?php
$from = 'USD';
$to = 'NPR';
$price = 10;
$newPrice = Mage::helper('directory')->currencyConvert($price, $from, $to);
?>
<?php
/**
* Get the base currency
*/
$baseCurrencyCode = Mage::app()->getBaseCurrencyCode();
/**
* Get all allowed currencies
* returns array of allowed currency codes
*/
$allowedCurrencies = Mage::getModel('directory/currency')->getConfigAllowCurrencies();
/**
* Get the currency rates
* returns array with key as currency code and value as currency rate
*/
$currencyRates = Mage::getModel('directory/currency')->getCurrencyRates($baseCurrencyCode, array_values($allowedCurrencies));
$allowedCurrencies = Mage::getModel('directory/currency')->getConfigAllowCurrencies();
/**
* Get currency rates for Nepalese Currency
*/
$currencyRates = Mage::getModel('directory/currency')->getCurrencyRates('NPR', array_values($allowedCurrencies));
?>
<?php
$categories = Mage::getModel('catalog/category')->getCollection()->addAttributeToSelect('*');
?>
<?php
$categories = Mage::getModel('catalog/category')->getCollection()->addAttributeToSelect('*')->addIsActiveFilter();
?>
<?php
$categories = Mage::getModel('catalog/category')->getCollection()->addAttributeToSelect('*')->addIsActiveFilter()->addLevelFilter(1)->addOrderField('name');
?>
<?php
$helper = Mage::helper('catalog/category');
// sorted by name, fetched as collection
$categoriesCollection = $helper->getStoreCategories('name', true, false);
// sorted by name, fetched as array
$categoriesArray = $helper->getStoreCategories('name', false, false);
?>
<?php
$_product = Mage::getModel('catalog/product')->load($product_id);
$qty = Mage::getModel('cataloginventory/stock_item')->loadByProduct($_product)->getQty();
?>
<?php
$configurable_products = Mage::getModel('catalog/product')
->getCollection()
->addAttributeToSelect('*')
->addAttributeToFiler('type_id',array('eq'=>'configurable'))
->load();
?>
<?php
echo Mage::getModel('sales/order')->formatPricePrecision($_product->getFinalPrice(), 3);
?>
<?php
$collection = Mage::getResourceModel('sales/report_bestsellers_collection')
->setModel('catalog/product')
->addStoreFilter(Mage::app()->getStore()->getId()) //if you want the bestsellers for a specific store view. if you want global values remove this
->setPageSize(5)//set the number of products you want
->setCurPage(1);
foreach ($collection as $_product){
$realProduct = Mage::getModel('catalog/product')->load($_product->getProductId());
//do something with $realProduct;
}
?>
<?php
$categoryIds = $_product->getCategoryIds();
foreach ($categoryIds as $categoryId){
$tmpId = $categoryId;
$categories = array();
while($tmpId != Mage::app()->getStore()->getRootCategoryId()) {
$category = Mage::getModel('catalog/category')->setStoreId(Mage::app()->getStore()->getId())->load($tmpId);
$categories[] = $category;
$tmpId = $category->getParentId();
};
for ($i = count($categories) - 1; $i>=0;$i--){
echo '<a href="'.echo $categories[$i]->getUrl().'">'.echo $categories[$i]->getName().'</a>';
if ($i>0){
echo "->"<!-- this is the tree separator. change to whatever you like-->
}
}
//break;//uncomment this if you want only one category tree to appear.
};
?>
<?= $this->getToolbarBlock()->setTemplate('catalog/product/list/toolbar_bottom.phtml')->toHtml(); ?>
add this to Varien.Tabs.prototype
Varien.Tabs.prototype = {
remoteTabs: function(b) {
var controlledLink = $$("#"+b+" a")[0];
this.showContent(controlledLink);
}
}
var csTablist = new Varien.Tabs('.tabs');
to fire the link remotely you can call
csTablist.remoteTabs('product_tabs_email');
where product_tabs_email is the name of the li that you want to open.
<?php
/**
* Load Product you want to get Super attributes of
*/
$product=Mage::getModel("catalog/product")->load(52520);
/**
* Get Configurable Type Product Instace and get Configurable attributes collection
*/
$configurableAttributeCollection=$product->getTypeInstance()->getConfigurableAttributes();
/**
* Use the collection to get the desired values of attribute
*/
foreach($configurableAttributeCollection as $attribute){
echo "Attr-Code:".$attribute->getProductAttribute()->getAttributeCode()."<br/>";
echo "Attr-Label:".$attribute->getProductAttribute()->getFrontend()->getLabel()."<br/>";
echo "Attr-Id:".$attribute->getProductAttribute()->getId()."<br/>";
var_dump($_attribute->debug()); // returns the set of values you can use the get magic method on
}
?>
<?php
$_customerId = Mage::getSingleton('customer/session')->getCustomerId();
$lastOrderId = Mage::getSingleton('checkout/session')->getLastOrderId();
$order = Mage::getSingleton('sales/order');
$order->load($lastOrderId);
$_totalData =$order->getData();
$_grand = $_totalData['grand_total'];
?>
<?php
//set up the store instance
require_once "app/Mage.php";
umask(0);
$app = Mage::app('default');
$app->getTranslator()->init('frontend');
Mage::getSingleton('core/session', array('name' => 'frontend'));
Mage::getConfig()->init();
?>
<?php
//set up the store instance
require_once "app/Mage.php";
umask(0);
$app = Mage::app('admin');
$app->getTranslator()->init('frontend');
$app->setUseSessionInUrl(false);
Mage::getSingleton('core/session', array('name' => 'adminhtml'));
Mage::registry('isSecureArea'); // acting is if we are in the admin
Mage::getConfig()->init();
?>
<?php
require_once 'app/Mage.php';
Mage::app($yourStoreCode);
Mage::getSingleton('core/session', array('name'=>'frontend'))->setSessionId($_COOKIE['frontend']);
echo "cart_id=".Mage::helper('checkout/cart')->getCart()->getQuote()->getId();
?>
<?php
// find 'path' in table 'core_config_data' e.g. 'design/head/demonotice'
$my_change_config = new Mage_Core_Model_Config();
// turns notice on
$my_change_config->saveConfig('design/head/demonotice', "1", 'default', 0);
// turns notice off
$my_change_config->saveConfig('design/head/demonotice', "0", 'default', 0);
?>
Open up the /app/etc/local.xml
file, locate the <frontName>
tag, and change the ‘admin’ part it to something a lot more random, eg:
<frontName><![CDATA[supersecret-admin-name]]></frontName>
Clear your cache and sessions.
<?php
// clear cache
Mage::app()->removeCache('catalog_rules_dirty');
// reindex prices
Mage::getModel('index/process')->load(2)->reindexEverything();
/*
1 = Product Attributes
2 = Product Attributes
3 = Catalog URL Rewrites
4 = Product Flat Data
5 = Category Flat Data
6 = Category Products
7 = Catalog Search Index
8 = Tag Aggregation Data
9 = Stock Status
*/
?>
rm -rf var/log/*
rm -rf var/cache/*
rm -rf var/session/*
rm -rf var/report/*
rm -rf var/locks/*
rm -rf app/code/core/Zend/Cache
rm -rf var/ait_rewrite/*
rm -rf media/css/*
rm -rf media/js/*
// if there are many files which can't get deleted in once
find /path/to/session/* -mtime +1 -exec rm {} \;
<?php
// $_GET
$productId = Mage::app()->getRequest()->getParam('product_id');
// The second parameter to getParam allows you to set a default value which is returned if the GET value isn't set
$productId = Mage::app()->getRequest()->getParam('product_id', 44);
$postData = Mage::app()->getRequest()->getPost();
// You can access individual variables like...
$productId = $postData['product_id']);
?>
First, use get_class
to get the name of an object's class.
<?php $class_name = get_class($object); ?>
Then, pass that get_class_methods
to get a list of all the callable methods on an object
<?php
$class_name = get_class($object);
$methods = get_class_methods($class_name);
foreach($methods as $method)
{
var_dump($method);
}
?>
// Gets the current store's details
$store = Mage::app()->getStore();
// Gets the current store's id
$storeId = Mage::app()->getStore()->getStoreId();
// Gets the current store's code
$storeCode = Mage::app()->getStore()->getCode();
// Gets the current website's id
$websiteId = Mage::app()->getStore()->getWebsiteId();
// Gets the current store's group id
$storeGroupId = Mage::app()->getStore()->getGroupId();
// Gets the current store's name
$storeName = Mage::app()->getStore()->getName();
// Gets the current store's sort order
$storeSortOrder = Mage::app()->getStore()->getSortOrder();
// Gets the current store's status
$storeIsActive = Mage::app()->getStore()->getIsActive();
// Gets the current store's locale
$storeLocaleCode = Mage::app()->getStore()->getLocaleCode();
// Gets the current store's home url
$storeHomeUrl = Mage::app()->getStore()->getHomeUrl();