一、配置
二、重写Cart.php
<?php
/** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Silk\Checkout\CustomerData;/**
* Cart source */ class Cart extends \Magento\Checkout\CustomerData\Cart { /** * Get array of last added items * * \Magento\Quote\Model\Quote\Item[] */ protected function getRecentItems() { $items = []; if (!$this->getSummaryCount()) { return $items; } //gift product put in end $giftProduct = ''; foreach (array_reverse($this->getAllQuoteItems()) as $item) { /* $item \Magento\Quote\Model\Quote\Item */ if (!$item->getProduct()->isVisibleInSiteVisibility()) { $product = $item->getOptionByCode('product_type') !== null ? $item->getOptionByCode('product_type')->getProduct() : $item->getProduct();$products = $this->catalogUrl->getRewriteByProductStore([$product->getId() => $item->getStoreId()]);
if (!isset($products[$product->getId()])) { //gift product $giftProduct = $this->itemPoolInterface->getItemData($item); continue; } $urlDataObject = new \Magento\Framework\DataObject($products[$product->getId()]); $item->getProduct()->setUrlDataObject($urlDataObject); } $items[] = $this->itemPoolInterface->getItemData($item); } if ($giftProduct) { $items[] = $giftProduct; } return $items; } }