Как получить URL для удаления товара из корзины в Magento? - PullRequest
2 голосов
/ 23 октября 2011

Я посмотрел на default / template / checkout / cart.html и нашел этот код:

        <?php foreach($this->getItems() as $_item): ?>
            <?php echo $this->getItemHtml($_item) ?>
        <?php endforeach ?>

Но он возвращает больше, чем мне нужно. Есть ли способ просто позвонить по URL, чтобы удалить товар из корзины? Или получить идентификатор товара в корзине? (поскольку в магазине все не так)

Ответы [ 2 ]

18 голосов
/ 24 октября 2011

Кажется, что это те вопросы, которые я задавал снова и снова (около 14 месяцев назад).Некоторые основы необходимо очистить сейчас.

В Checkout Cart основной сущностью является " Quote " (класс которой "Mage_Sales_Model_Quote"), и она вообще не связана собъект " Каталог продукции " (класс "Mage_Catalog_Model_Product").Таким образом, продукты имеют свои собственные уникальные (числовые) идентификаторы, но когда они добавляются в корзину покупок, их идентификаторы перестают быть релевантными на странице корзины покупок (за исключением URL-адреса продукта, поскольку пользователь может захотеть просмотреть сведения о продукте).снова на странице).

На странице корзины покупок доступные идентификаторы - это, в частности, идентификаторы ценовых позиций для каждого из добавленных там товаров, а сама корзина покупок имеет идентификатор цитаты, который является родителем всехПредметы, добавленные в корзину во время этого конкретного сеанса проверки.

Подробности этой цитаты можно найти в таблице базы данных "sales_flat_quote", а ее элементы можно найти в "sales_flat_quote_items".

Теперь, возвращаясь к вопросу, страница просмотра, которую вы видите, это "default/template/checkout/cart.phtml" (нет страницы с расширением "html", она должна быть "phtml").Это страница просмотра всей корзины.Так как вы заинтересованы в пунктах, поэтому вы должны смотреть на "default/template/checkout/cart/item/default.phtml".Класс Block, на который он ссылается, это "Mage_Checkout_Block_Cart_Item_Renderer".Эта страница PHTML служит для каждого элемента, поэтому все, что вам нужно сделать для каждого элемента, можно сделать на этой странице.

Чтобы удалить Продукт из корзины , вам необходимо знатьУкажите идентификатор элемента в кавычках и напишите следующее утверждение: -

$this->getUrl('checkout/cart/delete', array('id' => 'xxxx'));

, где xxxx относится к идентификатору элемента для цитаты удаляемого продукта.

Для удаления продуктаиз корзины , на странице корзины покупок, вам нужно вызвать следующий оператор в "default/template/checkout/cart/item/default.phtml": -

$this->getDeleteUrl();

Когда этот оператор будет выполнен, он будет принимать этот продуктАвтоматически цитируйте идентификатор изделия изнутри (это прекрасно для Magento).

Чтобы получить идентификатор продукта из корзины , на странице корзины покупок необходимо вызвать следующее заявление в "default/template/checkout/cart/item/default.phtml ": -

$this->getProduct()->getId();

Метод" getProduct() "вернет и загрузит объект Model продукта (со всеми подробностями), который будет использоваться следующим методом" getId() "получение идентификатора этого продукта.

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

1 голос
/ 07 января 2013

Для получения обратного URL я также сделал следующее:

В блоке

protected function getDeleteUrl($item)
{
    $params = array(
        'id'=>$item->getId(),
        Mage_Core_Controller_Front_Action::PARAM_NAME_URL_ENCODED => Mage::helper('core')->urlEncode($this->getUrl('checkout/cart'))
    );
    return $this->getUrl('checkout/cart/delete', $params);
}

В PHTML

<?php foreach($this->getItems() as $_item): ?>
    <?php echo $this->getDeleteUrl($_item) ?>
<?php endforeach; ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...