unisharp / cart
让可购买商品可以添加到购物车
dev-master / 1.0.x-dev
2018-09-26 06:42 UTC
Requires
- php: ^7.0
- askedio/laravel-soft-cascade: >5.5.0
- illuminate/config: >5.5.0
- illuminate/database: >5.5.0
- illuminate/support: >5.5.0
- konekt/enum-eloquent: ^1.1
- unisharp/buyable: dev-master
- unisharp/payment: dev-master
- unisharp/pricing: dev-master
- voicetube/taiwan-payment-gateway: dev-master
Requires (Dev)
- codedungeon/phpunit-result-printer: ^0.6.0
- mockery/mockery: ^0.9.4
- orchestra/database: ~3.6.0
- orchestra/testbench: ~3.6.0
- phpunit/phpunit: ^7.0
- sebastian/diff: ^3.0.0
- squizlabs/php_codesniffer: 3.*
This package is auto-updated.
Last update: 2024-09-06 19:33:42 UTC
README
让可购买商品可以添加到购物车,并能通过购物车中的商品进行下单,并提供支付功能。
此包依赖于
安装
composer require unisharp/cart dev-master
购物车用法
使用API
将API包含到api.php
Route::group(['prefix' => 'v1'], function () { CartManager::route(); });
路由列表
使用CartManager
创建一个新的购物车
$cart = CartManager::make();
获取一个已存在的购物车
$cart = CartManager::make($cart);
将商品添加到购物车
$item = new Item([ 'id' => 1, '$quantity' => 10, 'extra' => [ 'comment' => '...' ] ]); $cart->add($item->id, $item->quantity, $item->extra)->save();
获取购物车中的商品
$cart->getCartInstance()->getItems();
从购物车中移除商品
$cart->remove($item)->save();
清空购物车中的商品
$cart->clean();
销毁购物车
$cart->delete();
订单用法
使用API
将API包含到api.php
Route::group(['prefix' => 'v1'], function () { OrderManager::route(); });
路由列表
使用OrderManager
创建订单管理器
// Get order manager $order = OrderManager::make(); // Assign operator $order->assign(auth()->user()); // Checkout cart's items and buyer and receiver's information $items = CartManager::make($cart)->getItems(); $information = [ 'buyer' => [], 'receiver' => [], 'payment' => 'credit' ]; $order->checkout(items, informations)
获取一个已存在的订单
$order = OrderManager::make($order)->getOrderInstance();
定价用法
CartManager和OrderManager都已经有了特质的用法
class CartManager { use CanPricing; ... }
自定义定价模块
use UniSharp\Pricing\Pricing; use UniSharp\Pricing\ModuleContract; class CustomPricingModule implements ModuleContract { public function handle(Pricing $pricing, Closure $next) { ... return $next($pricing); } public function finish(Pricing $pricing) { ... } }
在config/pricing.php
中设置自定义定价模块
return [ 'modules' => [ CustomPricingModule::class ], ];
获取定价
// get original price $cart->getOriginalPrice(); // get total price $cart->getPrice(); // get fee $cart->getFee();
更多详情请查看unisharp/pricing
支付用法
设置支付网关配置
return [ 'payment' => [ 'driver' => 'EcPay', 'merchantId' => '2000132', 'hashKey' => '5294y06JbISpM5x9', 'hashIV' => 'v77hoKGq4kWxNNIS', 'actionUrl' => 'https://payment-stage.ecpay.com.tw/Cashier/AioCheckOut/', 'returnUrl' => 'https://localhost/payment/confirm', 'notifyUrl' => 'https://localhost/payment/notify', 'clientBackUrl' => 'https://localhost/payment/return', 'paymentInfoUrl' => 'https://localhost/payment/information' ], ]
将API设置到api.php
// Include payment api Route::group(['prefix' => 'v1'], function () { OrderManager::route(); }); // Implement payment response url Route::group(['prefix' => 'v1/payment'], function () { Route::get('confirm', function () {...}); Route::get('notify', function () {...}); Route::get('return', function () {...}); Route::get('information', function () {...}); });