kinoba/coupon-bundle

Symfony 的优惠券组合

安装: 17

依赖: 0

建议者: 0

安全: 0

星星: 4

关注者: 4

分支: 0

开放问题: 2

类型:symfony-bundle

dev-master 2022-12-05 19:05 UTC

This package is not auto-updated.

Last update: 2024-09-27 17:16:33 UTC


README

此包正在建设中,请勿在生产环境中使用

安装

使用 Symfony Flex 的应用程序

打开命令行,进入您的项目目录并执行

$ composer require kinoba/coupon-bundle

不使用 Symfony Flex 的应用程序

步骤 1:下载包

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

$ composer require kinoba/coupon-bundle

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

步骤 2:启用包

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

<?php
// app/AppKernel.php

// ...
class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = array(
            // ...
            new Kinoba\CouponBundle\KinobaCouponBundle(),
            // ...
        );
    }
}

步骤 3:配置您的应用

您必须将 2 个实体:Coupon 和 GeneratedCoupon 添加到您的项目中

namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;
use Kinoba\CouponBundle\Model\Coupon as BaseCoupon;

/**
 * @ORM\Table(name="coupons")
 * @ORM\Entity
 */
class Coupon extends BaseCoupon
{
}
namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;
use Kinoba\CouponBundle\Model\GeneratedCoupon as BaseGeneratedCoupon;

/**
 * @ORM\Table(name="generated_coupons")
 * @ORM\Entity
 */
class GeneratedCoupon extends BaseGeneratedCoupon
{
}

您需要将实体映射到我们的接口。在 doctrine.yamlconfig.yml 中添加

doctrine:
    orm:
        resolve_target_entities:
            Kinoba\CouponBundle\Model\CouponUserInterface: App\Entity\User
            Kinoba\CouponBundle\Model\BillableInterface: App\Entity\Offer

您可以添加一个包含 3 个参数的新文件 kinoba_coupon.yaml

kinoba_coupon:
    default_mask: KIN*****
    characters: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
    coupon_class: App\Entity\Coupon
    generated_coupon_class: App\Entity\GeneratedCoupon

步骤 4:使用方法

通过 CouponProvider 创建数据库中的新代码:create($amount = 1, $type = Coupon::TYPE_FIXED, $maxNumber = 1, $expiredAt = null, $mask = null)

$type:TYPE_FIXED 用于货币折扣或 TYPE_PERCENTAGE 用于百分比

$maxNumber:优惠券失效后的最大生成优惠券数

$expiredAt:优惠券的有效期结束

$mask:创建一个新的掩码优惠券(非默认掩码)

如果您想检查代码是否存在且可用:check($code)

如果有效则返回 Coupon 对象,如果无效则返回 false

如果您想检查用户是否第二次尝试使用代码,您可以调用 isSecondUsageAttempt 并传递 Coupon 对象和 CouponUserInterface 作为参数。返回一个布尔值

应用代码:apply($code, $user, $bill = null)

$bill:如果您想将生成的优惠券与支付/账单/优惠连接

应用将检查代码是否可用