0

私は比較的小さな問題を抱えていますが、解決策を見つけることができません。

Magentoストアのカテゴリの製品のリストを表示する静的CMSページがあります。

ユーザーが各商品をショッピングカートに追加できるように、[カートに追加]ボタンと数量ボックスも含めたいと思います。

問題は、[カートに追加]ボタンを含めたのに、クリックしても商品がカートに追加されないことです。文字列に商品IDを含める必要があることを読みましたが、foreachループを使用してカテゴリから複数の商品を動的に表示しています...。

私の問題の回避策または解決策はありますか?どんなアイデアでも歓迎します。

コードは次のとおりです。

              <?php 
$category_id = "49"; // category_id for "Accessories"
$_productCollection = Mage::getResourceModel('catalog/product_collection')
->addAttributeToSelect(array('name', 'price', 'small_image', 'short_description'), 'inner')
->addCategoryFilter(Mage::getModel('catalog/category')->load($category_id));
?>
<?php if($_productCollection->count()): ?>
  <ul class="media-list pull-left">
   <?php 
   $products = array();
   foreach ($_productCollection as $_product) { 
    ?>
    <li class="media">
      <a class="fancybox pull-left" href="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(220, 200); ?>" title="<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>">
        <img class="media-object"  src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(100, 100); ?>" alt="<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>" title="<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>" />
      </a>
    </li>
    <div class="media-body">
      <h4 class="media-heading"><a class="view-item-button" href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->htmlEscape($_product->getName()) ?>"><?php echo $this->__('Order'); ?> <?php echo $this->htmlEscape($_product->getName())?><?php echo $this->__('&#8482;'); ?></a></h4>
      <div class="media">
       <?php echo $_product->_data['short_description']; ?>
       <div class="clearfix"></div>
       <h6>Price <?php echo Mage::helper('core')->currency($_product->getPrice());; ?></h6>
       <?php if($_product->isSaleable()): ?>
       <button type="button" title="<?php echo $this->__('Add to Cart') ?>" class="btn btn-danger btn-mini" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>')"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button>
     <?php else: ?>
     <p class="availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p>
   <?php endif; ?>

 </div>
</div> 
<?php } ?>
</ul> 
<script type="text/javascript">decorateGeneric($$('ul.products-grid'), ['odd','even','first','last'])</script><?php endif; ?>
<script type="text/javascript">
$j(document).ready(function() {
  $j(".fancybox").fancybox();
});
</script>
4

3 に答える 3

0

ここで説明するように、クエリ文字列を使用してこれを実現できます

于 2012-12-03T14:40:34.137 に答える
0

次のブロックコードを使用して、商品をカートに追加できます。

 

 {{block type="catalog/product_list_related" category_id="49" template="PATH_TO_TEMPLATE_FILE"}}

次に、ファイルにチェックアウトボタンを追加すると、機能します。

`<?php if($_product->isSaleable()): ?>
            <button type="button" title="<?php echo $this->__('Add to Cart') ?>" class="btn btn-danger" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>')"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button>
                <?php else: ?>
            <p class="availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p>
        <?php endif; ?> `
于 2012-12-04T09:59:27.393 に答える
0
                 <?php 
$category_id = 49; // category_id for "Accessories"
$category = new Mage_Catalog_Model_Category();
$category->load($categoryid);
$_productCollection = $category->getProductCollection();
$_productCollection->addAttributeToSelect('*');
?>
<?php if($_productCollection->count()): ?>
  <ul class="media-list pull-left">
   <?php 
   $products = array();
   foreach ($_productCollection as $_product) { 
    ?>
    <li class="media">
      <a class="fancybox pull-left" href="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(220, 200); ?>" title="<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>">
        <img class="media-object"  src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(100, 100); ?>" alt="<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>" title="<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>" />
      </a>
    </li>
    <div class="media-body">
      <h4 class="media-heading"><a class="view-item-button" href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->htmlEscape($_product->getName()) ?>"><?php echo $this->__('Order'); ?> <?php echo $this->htmlEscape($_product->getName())?><?php echo $this->__('&#8482;'); ?></a></h4>
      <div class="media">
       <?php echo $_product->_data['short_description']; ?>
       <div class="clearfix"></div>
       <h6>Price <?php echo Mage::helper('core')->currency($_product->getPrice());; ?></h6>
       <?php if($_product->isSaleable()): ?>
       <form id="addtocartform_<?=$_product->getId()?>" action="<?=Mage::helper('checkout/cart')->getAddUrl($_product)?>">
        <input type="hidden" value="<?=$_product->getId()?>" name="product" id="product"/>
        <?php if(!$_product->isGrouped()): ?>
        <input type="text" name="qty" id="qty" maxlength="12" value="1" />
        <?php endif; ?>
        <button type="button" class="button btn-cart" onclick="this.form.submit()"><span><span>Add To Cart</span></span></button>
       </form>
     <?php else: ?>
     <p class="availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p>
   <?php endif; ?>

 </div>
</div> 
<?php } ?>
</ul>  
<?php endif; ?>
于 2014-01-20T16:34:52.653 に答える