我正在做一个项目,在产品页面而不是正常的可配置选项上,有一些可配置选项,然后查询数据库以查看特定供应商是否携带该产品。然后它通过 javascript 显示供应商列表,如下所示。
我希望添加到购物车块显示在每个供应商旁边。因为这都是动态创建的,所以我必须将供应商 ID 传递给我创建的“添加到购物车”脚本。我采用了原始的 app/design/frontend/base/default/template/catalog/product/view/addtocart.phtml 并制作了我自己的,如下所示。以下 php 文件通过 ajax 调用。原来的 addtocart.phtml 有一堆 $this 变量。我需要模拟 $this (无论模型,它所指的助手),以便这个块工作。我没有多少成功。有人可以看到我做错了什么或者我可以做些什么不同的事情吗?非常感谢!
<?php
require_once('/var/www/Staging/public_html/app/Mage.php');
umask(0);
Mage::app();
//ensure that the value is legitimate
if($_POST && is_numeric($_POST['value'])){
$value = $_POST['value'];
}
//pass this in your ajax call for the add button
if($_POST && is_numeric($_POST['product_id'])){
$product_id = $_POST['product_id'];
}
$helper = Mage::helper('core'); //for translation
$block = new Mage_Catalog_Blockproduct_View(); // not best practice, but neither are standalones
$product = Mage::getModel('catalog/product')->load($product_id); // no need to use the _ here, it's not protected/private; additonally Mage::registry won't work because you're technically not on a product detail page
$buttonTitle = ''; //you are using this, but it isn't set
?>
<div class="add-to-cart">
<label for="qty"><?php echo $helper->__('Qty:') ?></label>
<input type="text" name="qty" id="qty" maxlength="12" value="<?php echo $block->getProductDefaultQty($product) * 1 ?>" title="<?php echo $helper->__('Qty') ?>" class="input-text qty" />
<button onclick="window.location = '<?php echo Mage::helper('checkout/cart')->getAddUrl($product);?>'" type="button" title="<?php echo $buttonTitle ?>" class="button btn-cart" id='$value'><span><?php echo $buttonTitle ?></span></button>
</div>