bestit/commercetools-customer-prices-bundle

提供commercetools替代方案,使用自定义对象获取客户个体价格。

0.5.3 2019-04-02 06:30 UTC

This package is auto-updated.

Last update: 2024-08-29 04:03:41 UTC


README

目前,commercetools平台对个体客户价格没有实际支持。您可以尝试为您的产品添加大量的“渠道价格”,但您可能会遇到一些问题,例如在搜索功能中缺少scopedPrice的回退(如果没有渠道价格,则不会回退到正常价格),由于庞大的产品数据集导致的性能损失,以及可能触及数据库自身最大文档大小。

因此,您需要一个替代方案。此bundle将为您提供一个基于自定义对象(如)的替代方案:

{
    "id": "UUID",
    "version": 1,
    "container": "YOUR-CONTAINER-NAME",
    "key": "KEY-1-2",
    "value": {
        "price": {
            "value": {
                "centAmount": 5000,
                "currencyCode": "EUR"
            },
            "tiers": [
                {
                    "minimumQuantity": 10,
                    "value": {
                        "centAmount": 4000,
                        "currencyCode": "EUR"
                    }
                },
                {
                    "minimumQuantity": 20,
                    "value": {
                        "centAmount": 3000,
                        "currencyCode": "EUR"
                    }
                },
               {
                    "minimumQuantity": 30,
                    "value": {
                        "centAmount": 2000,
                        "currencyCode": "EUR"
                    }
                }
            ]
        },
        "customer": "1",
        "article": "2",
        "currency": "EUR"
    },
    "createdAt": "2017-08-04T06:51:44.642Z",
    "lastModifiedAt": "2017-08-14T00:04:08.763Z"
}

您可以为容器、价格值、文章和客户值配置字段名称!

API

您可以使用服务 best_it_ct_customer_prices.model.customer_price_collection 来获取价格,使用 BestIt\CtCustomerPricesBundle\Model\CustomerPriceCollection::getByArticle(string $articleId)。$articleId需要与您的自定义对象中的数据匹配。

懒加载的服务 best_it_ct_customer_prices.model.customer_price_collection 使用工厂“创建”,该工厂从[安全令牌存储](http://symfony .com/blog/new-in-symfony-2-6-security-component-improvements)中获取授权用户。

安装

步骤1:下载Bundle

打开命令行,进入项目目录,并执行以下命令以下载此bundle的最新稳定版本:

$ composer require bestit/commercetools-customer-prices-bundle

此命令需要您已全局安装Composer,如Composer文档中的安装章节中所述。

步骤2:启用Bundle

然后,通过将其添加到项目app/AppKernel.php文件中注册的bundle列表中启用bundle。

<?php
// app/AppKernel.php

// ...
class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = array(
            // ...

            new BestIt\CtCustomerPricesBundle\BestItCtCustomerPricesBundle(),
        );

        // ...
    }

    // ...
}

步骤3:配置bundle

您可以为搜索自定义对象定义一个自定义查询。如果您未设置此字段,则将使用以下默认查询:container="{container}-{currencyValue}-{customerValue}"

您可以在查询中使用占位符

# Default configuration for extension with alias: "best_it_ct_customer_prices"
best_it_ct_customer_prices:

    # Please provide the service id for your cache adapter.
    cache_service_id:    cache.app

    # Please provide the service id for your commercetools client.
    client_service_id:    ~ # Required
    
    # Please provide the search query. You can use placeholder in your query
    query: 'container="customer-prices-{currencyValue}-{customerValue}"'

    # Please provide the name of the custom object container where the prices are saved.
    container:            customer-prices
    fields:

        # Please provide the name of the custom object value field which saves the article id / number.
        article:              article

        # Please provide the name of the custom object value field which saves the customer id / number.
        customer:             customer
                
        # Please provide the name of the custom object value field which saves the currency.
        currency:             currency

        # Please provide the name of the custom object value field which saves the price object.
        prices:               prices

步骤4:标记用户对象为可用。

请实现在您的用户对象上BestIt\CtCustomerPricesBundle\Model\CustomerInterface。使用的id需要与您的自定义对象中的客户数据匹配。

待办事项

  • 更多文档