내가 아는 한 헤더 미니 카트는 고객 데이터에서 데이터를 가져옵니다.
공급 업체 / 마 젠토 / 모듈-체크 아웃 /view/frontend/web/js/view/minicart.js
define([
'uiComponent',
'Magento_Customer/js/customer-data',
'jquery',
'ko',
'sidebar'
], function (Component, customerData, $, ko) {
'use strict';
......
this.cart = customerData.get('cart');
......
}
고객 데이터 js를 살펴보면 vendor/magento/module-customer/view/frontend/web/js/customer-data.js
로컬 스토리지에서 고객 데이터를 가져올 수 있습니다. 예를 들어, 브라우저 콘솔에서 다음 행을 실행 localStorage.getItem('mage-cache-storage')
하십시오. 카트 정보도 얻을 수 있습니다.
{
"cart": {
"summary_count": 1,
....
"items": [
{
......
"qty": 1,
"item_id": "11728",
"configure_url": "http://magento2-demo/checkout/cart/configure/id/11728/product_id/1817/",
"is_visible_in_site_visibility": true,
"product_name": "Breathe-Easy Tank",
"product_url": "http://magento2-demo/breathe-easy-tank.html",
"product_has_url": true,
"canApplyMsrp": false
}
],
.......
}
}
이동에
벤더 / 젠토 / 결제 모듈 / CustomerData / DefaultItem.php
protected function doGetItemData()
{
.......
return [
'options' => $this->getOptionList(),
'qty' => $this->item->getQty() * 1,
'item_id' => $this->item->getId(),
'configure_url' => $this->getConfigureUrl(),
'is_visible_in_site_visibility' => $this->item->getProduct()->isVisibleInSiteVisibility(),
'product_name' => $this->item->getProduct()->getName(),
'product_url' => $this->getProductUrl(),
'product_has_url' => $this->hasProductUrl(),
.....
}
공급 업체 / 마 젠토 / 모듈-체크 아웃 / 고객 데이터 /AbstractItem.php
/**
* {@inheritdoc}
*/
public function getItemData(Item $item)
{
$this->item = $item;
return \array_merge(
['product_type' => $item->getProductType()],
$this->doGetItemData()
);
}
SKU 항목을 얻으려면 getItemData()
( Plugin으로 시도 해야 함)에 데이터를 추가해야한다고 생각합니다 . 그런 다음 템플릿 html 을 재정의하십시오. vendor/magento/module-checkout/view/frontend/web/template/minicart/item/default.html
<div class="product-item-details">
<!-- ko text: product_sku --><!-- /ko -->
마 젠토 2.1.0 버전 업데이트
Magento 2.1.0에서는을 재정의하면됩니다 default.html
. 방법 doGetItemData
에 이미 제품 SKU 가 있기 때문 입니다.