tde/craft-commerce-product-bundles

将多个产品组合成可购买的套餐,以特价销售。

2.0.4 2024-08-30 08:53 UTC

This package is auto-updated.

Last update: 2024-09-30 13:39:00 UTC


README

适用于 Craft CMSCraft Commerce 的插件

将多个产品组合成可购买的套餐,以特价销售。感谢现有 Commerce Bundles 插件的启发,本插件允许您从产品创建套餐,而不仅仅是它们的变体。用户现在可以订购套餐并选择他们想要的变体,例如,M号衬衫和L号裤子。

要求

此插件需要

  • Craft CMS 4 或更高版本
  • Craft Commerce 4.1 或更高版本

安装

此插件可以通过插件商店或使用 Composer 安装。

插件商店

  • 在 Craft 控制面板中,转到设置 -> 插件
  • 搜索“Commerce Product Bundles”
  • 点击“安装”按钮

Composer

  1. 打开您的终端并转到您的 Craft 项目

     cd /path/to/project
    
  2. 使用 Composer 下载插件

     composer require tde/commerce-product-bundles
    
  3. 在 Craft 控制面板中,转到设置 → 插件

  4. 为“Commerce Product Bundles”点击“安装”按钮。

用法

“产品套餐”导航项将添加到 Commerce 的子导航中。添加您想要的套餐并设置新价格。通过插件设置还可以添加自定义字段以增强套餐的用户体验并提供更多信息。

Add product bundle in CP

Twig 示例

该插件旨在从产品详情页中推广产品套餐。当查看产品A时,用户可能会被鼓励购买包含产品A和产品B的套餐。下面的Twig示例说明了如何在产品详情页中呈现套餐

Twig example

{# templates/shop/products/_entry.html #}

{% set productBundles = craft.commerceProductBundles.getProductBundles(product) %}
{% if productBundles|length %}
    <h3>Bundle tips</h3>
    {% for productBundle in productBundles %}
        <form method="POST">
            {{ csrfInput() }}
            {{ redirectInput('shop/cart') }}
            {{ hiddenInput('action', 'commerce/cart/update-cart') }}
            {{ hiddenInput('qty', 1) }}
            {{ hiddenInput('purchasableId', productBundle.id) }}
    
            <h4>{{ productBundle.title }}</h4>
    
            {% for product in productBundle.getProducts() %}
                <h5>{{ product.title }}</h5>

                {% if product.variants|length > 1 %}
                    <select name="options[productBundleProductsVariantIds][]">
                        {% for purchasable in product.variants %}
                            <option value="{{ purchasable.id }}">{{ purchasable.description }}</option>
                        {% endfor %}
                    </select>
                {% else %}
                    {{ hiddenInput('options[productBundleProductsVariantIds][]', product.variants[0].id) }}
                {% endif %}

                {% if not loop.last %}
                    <span>+</span>
                {% endif %}
            {% endfor %}

            {{ productBundle.price|commerceCurrency(cart.currency) }}
            <input type="submit">Add to cart</button>
        </form>
    {% endfor %}
{% endif %}

确保禁用缺货的产品变体。

字段类型

从1.0.3版本开始,还提供了一种自定义字段类型,可以直接将产品套餐添加到您的内容中。

TDE 提供