2

特定のカテゴリの製品リスト ページで、製品 ID または SKU によって Json Config を取得する必要があります。

特定の製品が 1 つしか表示されていない製品オプション ブロックでデカール化されていることgetJsonConfigがわかります。これが、製品 ID を言わずに Json Config を表示できる理由です。しかし、私は商品リストページにいます。

以下のように取得する方法はありますか?

$this->getJsonConfig($productId);
4

2 に答える 2

5
$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(); 
于 2013-05-24T21:23:10.137 に答える
4

構成可能な製品ビュー ページの簡単な解決策を見つけました。

それが役立つことを願っています。

    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; ?>
于 2014-07-22T14:19:54.953 に答える