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都已有trait
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 () {...}); });