2017-01-11 8 views
1

Как добавить дополнительный атрибут для продукта в сводку окна проверки?Magento 2 - добавить дополнительный атрибут продукта в сводную кассовую корзину

я должен переопределить: «Автор здесь идет» Magento_Catalog/веб/шаблон/резюме/элемент/details.html

<div class="product-item-inner"> 
    <div class="product-item-name-block"> 
     <strong class="product-item-name" data-bind="text: $parent.name"></strong> 
     <strong class="product-item-authors">**Author goes here!**</strong> 
     <div class="details-qty"> 
      <span class="label"><!-- ko i18n: 'Qty' --><!-- /ko --></span> 
      <span class="value" data-bind="text: $parent.qty"></span> 
     </div> 
    </div> 
    <!-- ko foreach: getRegion('after_details') --> 
     <!-- ko template: getTemplate() --><!-- /ko --> 
    <!-- /ko --> 
</div> 

Итак, где вы видите фактический текст Я должен назвать что-то вроде $ parent.authors.

продукт [авторы] является атрибутом multiselect в базовом каталоге.

Checkout summary box - image

ответ

0

Вы должны создать плагин для этого. Я хотел добавить аромат продукта в список заказов. Так я создал плагин и добился того, чего хотел.

Vendor = Sejal

Файлы вам нужно создать:

  1. Registration.php: приложение \ код \ Sejal \ Flavor \ registration.php
  2. di.xml: приложение \ код \ Sejal \ Flavor \ и т.д. \ di.xml
  3. module.xml: приложение \ код \ Sejal \ Flavor \ и т.д. \ di.xml
  4. ConfigProviderPlugin.php: приложение \ код \ Sejal \ Flavor \ Plugin \ ConfigProviderPlugin.php
  5. details.html: копия поставщика \ Magento \ модульно-кассе \ вид \ фронтэнда \ Web \ шаблон \ резюме \ п \ details.html

вы можете изменить этот файл в вашей теме, как этот

приложение \ дизайн \ внешний интерфейс \ Vendor \ THEMENAME \ Magento_Checkout \ Web \ шаблон \ резюме \ элемент \ details.html

Код: registration.php

<?php 

\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::MODULE, 
    'Sejal_Flavor', 
    __DIR__ 
); 

di.xml

<?xml version="1.0"?> 

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> 
    <type name="Magento\Checkout\Model\DefaultConfigProvider"> 
     <plugin name="AddAttPlug" type="Sejal\Flavor\Plugin\ConfigProviderPlugin" /> 
    </type> 
</config> 

module.xml

<?xml version="1.0"?> 

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd"> 
    <module name="Sejal_Flavor" setup_version="1.0.0"> 
    </module> 
</config> 

ConfigProviderPlugin.php

<?php 

namespace Sejal\Flavor\Plugin; 

class ConfigProviderPlugin extends \Magento\Framework\Model\AbstractModel 
{ 

    public function afterGetConfig(\Magento\Checkout\Model\DefaultConfigProvider $subject, array $result) 
    { 

     $items = $result['totalsData']['items']; 

     $objectManager = \Magento\Framework\App\ObjectManager::getInstance(); 
     for($i=0;$i<count($items);$i++){ 

      $quoteId = $items[$i]['item_id']; 
      $quote = $objectManager->create('\Magento\Quote\Model\Quote\Item')->load($quoteId); 
      $productId = $quote->getProductId(); 
      $product = $objectManager->create('\Magento\Catalog\Model\Product')->load($productId); 
      $productFlavours = $product->getResource()->getAttribute('flavors')->getFrontend()->getValue($product);   
      if($productFlavours == 'No' || $productFlavours == 'NA'){ 
       $productFlavours = ''; 
      } 
      $items[$i]['flavor'] = $productFlavours; 
     } 
     $result['totalsData']['items'] = $items; 
     return $result; 
    } 

} 

details.html

Копия поставщика \ Magento \ модуль кассового \ вид \ внешний интерфейс \ Web \ шаблон \ summary \ item \ details.html в теме и добавить

<div class="product-item-flavor" data-bind="text: $parent.flavor"></div> 

ниже

<strong class="product-item-name" data-bind="text: $parent.name"></strong> 

Вот оно! Надеюсь, это поможет!

+0

Я сделал то же, что и вы, но не работал. – Sarfaraj

+0

@Sarfaraj Пожалуйста, обратитесь к https: //magento.stackexchange.com/questions/178398/add-custom-attribute-to-checkout-order-summary-not-reflecting-on-payment-page/181244? noredirect = 1 # comment287038_181244 –

+0

Я сделал это спасибо за этот материал – Sarfaraj