You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Magento 2.4.5-p1:如何在可配置产品下拉框显示子产品缺货文本

Magento 2.4.5-p1 可配置产品下拉缺货选项显示“缺货”文本方案

方式一:检查后台基础配置

先确保后台已开启缺货产品的前端显示权限:

  • 登录后台,进入 Stores > Configuration > Catalog > Inventory > Stock Options
  • 找到 Display Out of Stock Products,设置为 Yes,保存配置后刷新缓存。

该配置仅保证缺货子产品在下拉选项中可见(默认状态为禁用),若要添加“缺货”标识,还需修改前端模板或逻辑。

方式二:修改前端模板添加缺货文本

1. 适配普通可配置产品下拉模板

复制核心模板文件到主题目录(禁止直接修改核心文件,避免升级丢失改动):

app/design/frontend/[你的主题包]/[主题名]/Magento_ConfigurableProduct/templates/product/view/type/options/configurable.phtml

找到生成下拉选项的循环代码,在选项标签内添加缺货判断:

<?php foreach ($_attributes as $_attribute): ?>
    ...
    <?php foreach ($_attribute->getOptions() as $_option): ?>
        ...
        <option value="<?php echo $_option->getValue() ?>"
            <?php if (!$_option->getIsAvailable()): ?>disabled="disabled"<?php endif; ?>
            <?php echo $_selectedOption == $_option->getValue() ? 'selected="selected"' : '' ?>
        >
            <?php echo $_option->getLabel() ?>
            <?php if (!$_option->getIsAvailable()): ?>
                <span>(缺货)</span>
            <?php endif; ?>
        </option>
        ...
    <?php endforeach; ?>
    ...
<?php endforeach; ?>

2. 适配Swatches属性切换组件(如颜色/尺寸色块)

若店铺使用Swatches模块展示属性,需修改Swatches模板:
复制核心文件到主题目录:

app/design/frontend/[你的主题包]/[主题名]/Magento_Swatches/templates/product/view/renderer.phtml

找到生成Swatch选项的代码,追加缺货标识:

<?php foreach ($_swatchOptions as $_option): ?>
    ...
    <div class="swatch-option text"
         data-option-type="0"
         data-option-id="<?php echo $_option['option_id'] ?>"
         data-option-label="<?php echo $_option['label'] ?>"
         data-option-tooltip-thumb=""
         data-option-tooltip-value="<?php echo $_option['label'] ?>"
         <?php if (!$_option['products']): ?>disabled="disabled"<?php endif; ?>
    >
        <?php echo $_option['label'] ?>
        <?php if (!$_option['products']): ?>
            <span class="out-of-stock-label">(缺货)</span>
        <?php endif; ?>
    </div>
    ...
<?php endforeach; ?>

3. 刷新缓存生效

修改完成后,进入后台 System > Cache Management,刷新所有缓存,前端页面刷新后即可看到效果。

注意事项

  • 所有修改必须基于主题重写实现,禁止直接修改Magento核心文件。
  • 若使用第三方库存管理插件,需额外适配——部分插件会覆盖默认的库存判断逻辑。

内容的提问来源于stack exchange,提问作者Kasper Elund

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 01:33:11