特定のカテゴリの製品リスト ページで、製品 ID または SKU によって Json Config を取得する必要があります。
特定の製品が 1 つしか表示されていない製品オプション ブロックでデカール化されていることgetJsonConfig
がわかります。これが、製品 ID を言わずに Json Config を表示できる理由です。しかし、私は商品リストページにいます。
以下のように取得する方法はありますか?
$this->getJsonConfig($productId);
特定のカテゴリの製品リスト ページで、製品 ID または SKU によって Json Config を取得する必要があります。
特定の製品が 1 つしか表示されていない製品オプション ブロックでデカール化されていることgetJsonConfig
がわかります。これが、製品 ID を言わずに Json Config を表示できる理由です。しかし、私は商品リストページにいます。
以下のように取得する方法はありますか?
$this->getJsonConfig($productId);
$this->getJsonConfig()
メソッドはの一部です
class Mage_Catalog_Block_Product_View
そして、それは呼び出します
/* @var $product Mage_Catalog_Model_Product */
$product = $this->getProduct();
public function getProduct()
{
if (!Mage::registry('product') && $this->getProductId()) {
$product = Mage::getModel('catalog/product')->load($this->getProductId());
Mage::register('product', $product);
}
return Mage::registry('product');
}
したがって、それを (他のページで) 使用するには、以下のようにブロック インスタンスに product を設定する必要があります。
Mage::register('product', $_product); // add the product object in the registry
$block = Mage::getBlockSingleton('Mage_Catalog_Block_Product_View'); // Instantiate the product view block
echo $block->getJsonConfig();
構成可能な製品ビュー ページの簡単な解決策を見つけました。
それが役立つことを願っています。
if ($_product->isConfigurable())
{ $block1 = Mage::app()->getLayout()->createBlock('catalog/product_view');
$block1->setProduct($_product);
$configPrice = $block1->getJsonConfig(); //var_dump( $config = $block->getJsonConfig`enter code here`() );
$block2 = Mage::app()->getLayout()->createBlock('catalog/product_view_type_configurable');
$block2->setProduct($_product);
$config = $block2->getJsonConfig();
}
<?php if ($_product->isConfigurable()): ?>
<script type="text/javascript">
var optionsPrice = new Product.OptionsPrice(<?php echo $configPrice ?>);
</script>
<script type="text/javascript">
var spConfig = new Product.Config(<?php echo $config ?>);
</script>
<?php endif; ?>