trexology/laravel-order

Laravel应用程序的订单管理。

v2.0.3 2016-08-02 02:07 UTC

This package is auto-updated.

Last update: 2024-09-09 20:10:55 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License

laravel-order

Laravel 5+ 的基础订单管理包

安装

composer require trexology/laravel-order:2.*

安装后,前往 config/app.php 中的 providers 部分,添加以下内容

Trexology\LaravelOrder\LaravelOrderServiceProvider::class

并在 "aliases" 下添加

'Order'     => Trexology\LaravelOrder\Facades\OrderFacade::class

使用以下命令发布迁移和配置文件

php artisan vendor:publish

config/order.php 中编辑额外的设置

    return [

        /*
        |--------------------------------------------------------------------------
        | Order Status Name
        |--------------------------------------------------------------------------
        | Customize the status name recorded
        |
        */

        'init' => "init",
        'complete' => "complete",

        'ignoredFields' => []

    ];

从 1.* 版本升级指南

• 此包使用 VentureCraft/revisionable 跟踪订单变更

• 删除旧的迁移文件 '2015_12_02_150448_create_orderLogs_table.php'

• 在 Orderitems 表中,列 line_item_id 已从整数更改为字符串,以提供更大的灵活性(版本 1 用户必须手动更改列类型)

使用方法

创建新订单

订单 Order::order(int $user_id, array $data = null, bool $draft = FALSE)

    $data = [
        //Custom fields
        'cust_first_name' => $cust->first_name,
        'cust_last_name' => $cust->last_name
    ];

    $order = Order::order($cust->id, $data);

向订单添加项目

订单 Order::addItem(Order $order, Model $object, double $price, int $quantity, array $data = null, double $vat = 0);

    $data = [
      'description' => "My item descriptions",
      'currency' => "SGD"
    ];
    $order = Order::addItem($order, $object, 25.5, 2, $data, 7);

向订单添加项目(非 Eloquent 风格)

订单 Order::addItemManual(Order $order, string $object_id, string $object_type, double $price, int $quantity, array $data = null, double $vat = 0)

    $data = [
      'description' => "My item descriptions",
      'currency' => "SGD"
    ];
    $order = Order::addItem($order, 22, "App\Model\Object", 25.5, 2, $data, 7);

批量向订单添加项目

订单 Order::batchAddItems(Order $order, array $order_Items)

    $order_Items = [
        [
            "description" => "Some Description",
            "currency" => "USD",
            "line_item_id" => 1,
            "line_item_type" => "App\\Models\\Package",
            "price" => 1802,
            "quantity" => 1,
            "vat" => 0,
        ],
        [
            "description" => "Some Description",
            "currency" => "USD",
            "line_item_id" => 1,
            "line_item_type" => "App\\Models\\Package",
            "price" => 1802,
            "quantity" => 1,
            "vat" => 0,
        ]
    ];
    $order = Order::batchAddItems($order, $order_Items);

获取订单

    Order Order::getOrder(int $order_id);

获取用户的订单

    Collection Order::getUserOrders(int $user_id);

更新订单状态

    boolean Order::updateStatus(int $order_id, string $status);

删除订单

    boolean Order::deleteOrder(int $order_id);

更新订单数量

    OrderItem Order::updateQty(int $item_id, int qty);

计算订单总金额

    float Order::total(Order $order);

计算订单总项目数

    int Order::count(Order $order);