Pergunta

Desculpe, mas eu não sei como definir meu quetion.Deixe-me mostrar a você o código :

Magento 1 :

 <checkout_cart_index>
    <reference name="checkout.cart">
        <action method="addItemRender">
            <type>simple</type>
            <block>mymodule/checkout_cart_item_renderer_simple</block>
            <template>checkout/cart/item/default.phtml</template>
        </action>
     </reference>
</checkout_cart_index>

Código acima é para substituir simples entrada de produto no carrinho de compras da página.

Agora a minha pergunta é como posso conseguir a mesma coisa no Magento 2.

Obrigado.

Foi útil?

Solução

No Magento, os processadores são definidos de acordo com checkout_cart_item_renderers.xml, há vários deles:

  • app/code/Magento/Checkout/view/frontend/layout/checkout_cart_item_renderers.xml para o padrão e simples de produtos renderizadores
  • app/code/Magento/Bundle/view/frontend/layout/checkout_cart_item_renderers.xml para empacotar produtos renderizadores
  • app/code/Magento/Catalog/view/frontend/layout/checkout_cart_item_renderers.xml para produtos virtuais renderizadores
  • app/code/Magento/ConfigurableProduct/view/frontend/layout/checkout_cart_item_renderers.xml para produtos configuráveis renderizadores
  • app/code/Magento/Grouped/view/frontend/layout/checkout_cart_item_renderers.xml para agrupados produtos renderizadores
  • app/code/Magento/GiftMessage/view/frontend/layout/checkout_cart_item_renderers.xml este é especial, pois adiciona bloco extra para o presente recurso de mensagem para os diferentes renderizadores
  • app/code/Magento/Wishlist/view/frontend/layout/checkout_cart_item_renderers.xml esta é especial demais, como ele adiciona bloco extra para a lista de desejos recurso para os diferentes renderizadores

Depois de verificar esses processadores, você pode encontrar qual o processador que você deseja substituir.

Como você disse, você deseja substituir o produto simples, que é um renderizador Magento\Checkout\Block\Cart\Item\Renderer.

Se você deseja substituir o bloco inteiro, você deve usar o Magento 2 preferências:

No seu módulo, você pode criar uma di.xml arquivo sob o etc pasta com o seguinte conteúdo:

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <preference for="Magento\Checkout\Block\Cart\Item\Renderer" type="Vendor\ModuleName\Block\Checkout\Cart\Item\Renderer" />  
</config>

Em seguida, você precisa criar o app/code/Vendor/Module/Block/Checkout/Cart/Item/Renderer.php classe com o seguinte conteúdo:

<?php
namespace Vendor\Module\Block\Checkout\Cart\Item;
class Renderer extends \Magento\Checkout\Block\Cart\Item\Renderer
{
    public function theFunctionYouWantToRewrite()
    {
        // Do your custom stuff
    }
}

No entanto, se você deseja trabalhar no método níveis e não em toda a classe de nível, você deve usar plugins

Como ele pode ser muito específica, é difícil para mim dar-lhe um exemplo, mas você pode encontrar recursos úteis sobre plugins aqui:

Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top