現在、次のコードを使用して、Magento CMS で使用する変数タグを作成し、製品の動的データのさまざまな部分を出力しています。
<?php
$_product = Mage::getModel('catalog/product')->loadByAttribute('sku', $this->getData('sku'));
$_categories = Mage::getModel('catalog/category')->loadByAtribute('id', $this->getData('id'));
switch($this->getData('valuetype')){
case "retail":
echo number_format($_product->getPrice(), 2, '.', ',');
break;
default:
case "final":
echo number_format($_product->getFinalPrice(), 2, '.', ',');
break;
case "diffDollar":
$difference = $_product->getPrice() - $_product->getFinalPrice();
echo number_format($difference, 2, '.', ',');
break;
case "diffPercent":
$difference = (1 - ($_product->getFinalPrice() / $_product->getPrice())) * 100;
echo number_format($difference, 0, '.', ',');
break;
case "prodName":
echo ($_product->getName());
break;
case "urlPath":
$prodName = ($_product->getName());
$prodName = strtolower($prodName);
$path = explode(" ", $prodName);
$path = implode("-", $path);
echo $path;
break;
case "catName":
$catName = ($_categories->getName());
echo $catName;
break;
}
?>
CMS の内部では、次を使用して $_categories のデータを取り込みます。
{{block type="catalog/category" id="176" template="catalog/product/cmsprice.phtml" valuetype="catName"}}
$_product の場合、次を使用します。
{{block type="catalog/products" sku="1000145" template="catalog/product/cmsprice.phtml" valuetype="retail"}}
$_product の使用は完全に機能しますが、$_categories を使用してカテゴリ名を出力しようとすると、CMS のページがホームページにレンダリングされませんが、ページの残りの部分が表示され、エラーは表示されません。
これを手に入れようとしているような気がしますが、何が欠けているのかわかりません。どんな助けでも大歓迎です