Magento 2:在产品缺货后切换“已售”标签的价格
Posted
技术标签:
【中文标题】Magento 2:在产品缺货后切换“已售”标签的价格【英文标题】:Magento 2: Switch the price for 'Sold' label after product is out of stock 【发布时间】:2020-02-13 12:57:01 【问题描述】:我正在尝试为缺货产品的产品页面上的“已售”标签更改价格。 如果产品已售罄,则应隐藏价格,取而代之的是“已售”标签。
我发现价格放在 catalog_product_view.xml 中,它调用了vendor/magento/module-catalog/view/base/templates/product/price/final_price.phtml
文件,但我不知道在哪里以及如何引入条件来检查产品是否售罄。
有人可以帮忙吗? 提前致谢。
元
【问题讨论】:
【参考方案1】:据我了解,您对这个问题有两个方面
1) 如果产品缺货,则在产品详细信息页面上隐藏价格
价格在 vendor/magento/module-catalog/view/frontend/layout/catalog_product_view.xml 中定义 在类中调用:Magento\Catalog\Pricing\Render 和方法:_toHtml()您可以将使用 DI 的方法覆盖到下面
protected function _toHtml()
/** @var PricingRender $priceRender */
$priceRender = $this->getLayout()->getBlock($this->getPriceRender());
if ($priceRender instanceof PricingRender)
$product = $this->getProduct();
if ($product instanceof SaleableInterface && $product->isAvailable())
$arguments = $this->getData();
$arguments['render_block'] = $this;
return $priceRender->render($this->getPriceTypeCode(), $product, $arguments);
return parent::_toHtml();
$product->isAvailable() 是我们添加的新条件
2) 显示已售标签
缺货标签默认显示,但如果您仍想显示,请在 vendor/magento/modul-catalog/view/frontend/layout/catalog_product_view.xml 中创建您的块和模板
和 $product->isAvailable() 函数来检查产品的可用性希望对你有帮助
【讨论】:
【参考方案2】:在 Magento 1 中隐藏缺货产品的价格。
RWD 主题
app/design/frontend/rwd/template/catalog/product/view.phtml
改变
<div class="price-info">
<?php echo $this->getPriceHtml($_product); ?>
<?php echo $this->getChildHtml('bundle_prices') ?>
<?php echo $this->getTierPriceHtml() ?>
</div>
收件人:
<?php if($_product->isSaleable()): ?>
<div class="price-info">
<?php echo $this->getPriceHtml($_product); ?>
<?php echo $this->getChildHtml('bundle_prices') ?>
<?php echo $this->getTierPriceHtml() ?>
</div>
<?php endif; ?>
默认主题:
\app\design\frontend\base\default\template\catalog\product\view\type\default.phtml
改变
<?php echo $this->getPriceHtml($_product) ?>
收件人:
<?php if($_product->isSaleable()): ?>
<?php echo $this->getPriceHtml($_product) ?>
<?php endif; ?>
或
在 Magento 2 中隐藏缺货产品的价格。
在管理页面,点击Stores,然后在Setting部分下,选择Configuration。
在此页面中,您可以在 目录 下找到 Inventory 部分。展开 Stock Options 部分,您可以开始设置产品的自定义状态。
在进入缺货产品部分之前,您需要输入此字段。
在订单取消时将商品的状态设置为库存:您在订单被取消时想要将商品退回库存时选择“是”。 p>
下单时减少库存:如果您想在下单时调整手头数量,请选择是
那么我们就可以进入 Magento 2 中允许您显示或禁用产品缺货的部分了。
您要显示缺货产品,您将显示缺货产品部分设置为是。相反,如果要禁用它,请设置 No。
【讨论】:
您好,感谢您的回答,但您的解决方案是针对 Magento 2 的吗?也许我只是不明白,但它看起来像是 Magento 1 的。 @whiterabbit 请再次检查我的答案,我也用 Magento 2 更新了它。 您好,再次感谢您的帮助。真的很感激,但我不想在售罄后隐藏整个产品。产品应该仍然可见,但在产品页面上的价格应该替换为“已售”标签。以上是关于Magento 2:在产品缺货后切换“已售”标签的价格的主要内容,如果未能解决你的问题,请参考以下文章