Как получить URL-адрес для удаления продукта из корзины в Magento?

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

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

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

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

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

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

Данные sales_flat_quote можно найти в таблице базы данных « 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 ссылается на идентификатор Item Item.

Чтобы удалить продукт из корзины , на странице «Корзина» вы должны вызвать следующую команду в « default/template/checkout/cart/item/default.phtml »:

 $this->getDeleteUrl(); 

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

Чтобы получить идентификатор продукта из корзины , на странице «Корзина» вы должны вызвать следующий оператор в « default/template/checkout/cart/item/default.phtml »: –

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

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

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

Чтобы получить 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; ?>