Как мне создать Удалить из корзины URL для продукта?(Magento) - PullRequest
2 голосов
/ 05 апреля 2011

Можно ли создать URL-адрес «Удалить из корзины» для продукта с пользовательской функцией, чтобы я мог поместить эту функцию в свой пользовательский блок, который позволяет пользователю удалить элемент из корзины ...

Ответы [ 4 ]

6 голосов
/ 14 сентября 2012

То, что сработало для меня, идет непосредственно к источнику:

добавить:

Mage::getUrl( 'checkout/cart/add', array( 'id' => $item->getId() ) );

изменить:

Mage::getUrl( 'checkout/cart/configure', array( 'id' => $item->getId() ) );

удалить:

Mage::getUrl( 'checkout/cart/delete', array( 'id' => $item->getId() ) );
4 голосов
/ 07 марта 2012

Где $_item является Mage_Sales_Model_Quote_Item_Abstract объектом:

$renderer = new Mage_Checkout_Block_Cart_Item_Renderer();
$renderer->setItem($_item);
$renderer->getDeleteUrl();
4 голосов
/ 05 апреля 2011

Если вы изучите, app / code / core / Mage / Checkout / Block / Cart / Item / Renderer.php и найдете метод: getDeleteUrl () предложит некоторое представление о том, как он генерируется:

/**
 * Get item delete url
 *
 * @return string
 */
public function getDeleteUrl()
{
    return $this->getUrl(
        'checkout/cart/delete',
        array(
            'id'=>$this->getItem()->getId(),
            Mage_Core_Controller_Front_Action::PARAM_NAME_URL_ENCODED => $this->helper('core/url')->getEncodedUrl()
        )
    );
}

Вы можете найти этот вызов в шаблоне / checkout / cart / item / default.phtml:

<td class="a-center"><a href="<?php echo $this->getDeleteUrl()?>" title="<?php echo $this->__('Remove item')?>" class="btn-remove btn-remove2"><?php echo $this->__('Remove item')?></a></td>

С этой информацией вы сможете создать новое действие контроллера для корзины, чтобы просто удалить определенный идентификатор продукта в индексе корзины.

Надеюсь, это поможет.

0 голосов
/ 02 мая 2014

Простейшая тренировка после объединения разных ответов

Добавьте это в начало файла lists.phtml (template / catlog / product)

<?php 
//getting cart count
$currentDelete = array();
$quote = Mage::getSingleton('checkout/session')->getQuote();
    foreach($quote->getAllItems() as $item){
        if($item->getProductId()){
            $currentDelete[$item->getProductId()] =  Mage::getUrl( 'checkout/cart/delete', array( 'id' => $item->getId() ) );
        }
    }
?>

После

<?php if($_product->isSaleable()): ?>

Добавить это

       <?php 
            if (isset($currentDelete) and array_key_exists($_product->getId(), $currentDelete)) { ?>
            <div class="curCart">
            <a href=" <?php echo $currentDelete[$_product->getId()]; ?>">Remove</a> 
            </div>
            <?php }?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...