Dynamically create a recycle bin in your cart for each final custom parameter, Helper for $ this

I am working on a project where, on the product page, instead of the usual custom settings, there are some custom settings, and then a database is queried to find out if certain vendors carry the product. It then displays the list of providers through javascript, as shown below.

enter image description here

I want the cart add block to be displayed next to EVERY seller. Since all this was dynamically created, I had to pass the provider ID to the “add to cart” script that I created. I took the original application / design / frontend / base / default / template / catalog / product / view / addtocart.phtml and made my own as shown below. The following php file is called via ajax. There were many $ this variables in the addtocart.phtml source file. I need to simulate $ this (no matter what model the helper link is), so this block works. I am without much success. Can someone see what I'm doing wrong or what can I do differently? Many thanks!

<?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 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>
+5
source share
2 answers

Mage_Catalog_Blockproduct_View - , . , Magento .

, Mage_Catalog_Block_Product_View

, , $this->. . - add to cart.

<?php
require_once Mage::getModuleDir('controllers', 'Mage_Checkout') . DS . 'CartController.php';

class NS_AjaxCart_CartController extends Mage_Checkout_CartController
{
    public function addAction()
    {
        $params = $this->getRequest()->getParams();
...

, , . :

public function __construct()
{
        parent::__construct();
        $this->setTemplate('catalog/vendoraddtocart.phtml');
}

, $this :

$this->getLayout()->createBlock('cms/block')->setBlockId('vendor_add_to_cart')->toHtml()

toHtml , :

, .

+2
$this->getProduct() return a product loaded from Mage_Catalog_Model_Product
So it not a registry So cant be used as Mage::registry('current_product')

-

$_product = Mage::getModel('catalog/product')=>load(prodid)

: (

+1

All Articles