Di halaman tampilan secara default magento menampilkan harga terendah dari produk terkait.
Saya perlu menampilkan harga tertinggi dari produk terkait. Ada yang tahu di mana logika berada. Bagaimana cara menyesuaikan perilaku ini.
memperbarui:
Magento \ ConfigurableProduct \ Pricing \ Price \ ConfigurablePriceResolver
/**
* @param \Magento\Framework\Pricing\SaleableInterface|\Magento\Catalog\Model\Product $product
* @return float
* @throws \Magento\Framework\Exception\LocalizedException
*/
public function resolvePrice(\Magento\Framework\Pricing\SaleableInterface $product)
{
$price = null;
foreach ($this->configurable->getUsedProducts($product) as $subProduct) {
$productPrice = $this->priceResolver->resolvePrice($subProduct);
$price = $price ? min($price, $productPrice) : $productPrice;
}
if (!$price) {
throw new \Magento\Framework\Exception\LocalizedException(
__('Configurable product "%1" do not have sub-products', $product->getName())
);
}
return (float)$price;
}
Saya mencoba untuk mengganti file inti ini, tetapi tidak berfungsi.
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<preference for="Magento\ConfigurableProduct\Pricing\Price\ConfigurablePriceResolver" type="Kensium\Catalog\Pricing\Price\ConfigurablePriceResolver" />
<?php
namespace Kensium\Catalog\Pricing\Price;
class ConfigurablePriceResolver extends \Magento\ConfigurableProduct\Pricing\Price\ConfigurablePriceResolver
{
/**
* @param \Magento\Framework\Pricing\SaleableInterface|\Magento\Catalog\Model\Product $product
* @return float
* @throws \Magento\Framework\Exception\LocalizedException
*/
public function resolvePrice(\Magento\Framework\Pricing\SaleableInterface $product)
{
$price = null;
$assPrice=array();
foreach ($this->configurable->getUsedProducts($product) as $subProduct) {
$productPrice = $this->priceResolver->resolvePrice($subProduct);
$assPrice[]=$productPrice;
$price = $price ? min($price, $productPrice) : $productPrice;
}
if (!$price) {
throw new \Magento\Framework\Exception\LocalizedException(
__('Configurable product "%1" do not have sub-products', $product->getName())
);
}
return (float)(max($assPrice));
//return (float)$price;
}
}
magento2
configurable-product
price
sivakumar
sumber
sumber
Jawaban:
Anda harus membuat plugin untuk itu untuk menampilkan harga maksimum di dalam halaman detail, Di bawah ini adalah modul langkah demi langkah untuk kebutuhan Anda,
Filepath, app / code / Vendor / Modulename /
File pendaftaran, aplikasi / kode / Vendor / Modulename / registrasi.php
app / code / Vendor / Modulename / etc / module.xml
app / code / Vendor / Modulename / etc / frontend / di.xml
app / code / Vendor / Modulename / Pricing / ConfigurablePrice.php
Di dalam file ini, Anda harus memasang fungsi resolveprice ()
jalankan perintah
hapus folder var dan periksa di frontend
sumber
Lihat
\Magento\ConfigurableProduct\Pricing\Price\ConfigurablePriceResolver::resolvePrice
. Metode ini bertanggung jawab untuk menghitung harga produk yang dapat dikonfigurasi berdasarkan harga anak.Anda dapat menyambungkannya dan mengimplementasikan algoritma Anda.
sumber