- vừa được xem lúc

Đơn giản hóa chức năng shopping cart bằng bumbummen99/shoppingcart trong laravel

0 0 1.3k

Người đăng: Nguyễn Quốc Việt

Theo Viblo Asia

Giới thiệu

Chắc hẳn từ những bạn mới sử dụng laravel cho tới những lão làng laravel hầu hết đều đã đụng tới chức năng giỏ hàng trong một đồ án, hay một project nào đó. Và cách thông dụng mình thấy hay sử dụng là code bằng session để lưu sản phẩm vào giỏ hàng. Hôm nay, mình sẽ giới thiệu một package đã từng làm mưa làm gió trong suốt quãng đời sinh viên của các bạn code laravel, giúp tiết kiệm phần lớn thời gian xây dựng chức năng shopping cart, đó chính là bumbummen99/shoppingcart

Lợi ích

  • Tiết kiệm thời gian
  • Sử dụng dễ dàng, linh hoạt
  • Dễ chỉnh sửa

Chống chỉ định: Những newbie chưa hiểu về session, chưa từng tự code giỏ hàng bằng session, php thuần.

Cài đặt

Chạy lệnh Composer request từ Terminal:

composer require bumbummen99/shoppingcart

Tiếp theo: php artisan vendor:publish --provider="Gloudemans\Shoppingcart\ShoppingcartServiceProvider" --tag="config"

Lệnh này sẽ tạo một file trong config/cart.php để bạn có thể tùy ý setting những cái cần thiết cho package này.

Vậy là phần cài đặt đã xong!

Sử dụng

Package này hỗ trợ chúng ta những method như sau:

  1. Những method hay sử dụng

Cart::add() : Thêm sản phẩm vào giỏ hàng Theo mặc định của bumbummen, chúng ta sẽ truyền lần lượt các tham số tương ứng như sau:

Cart::add(<id>, <tên sản phẩm>, <số lượng>, <giá tiền>, <tùy chọn khác (có thể có hoặc không)>)

Ví dụ:

Cart::add('293ad', 'Product 1', 1, 9.99, 550, ['size' => 'large']);

Hoặc:

Cart::add(['id' => '293ad', 'name' => 'Product 1', 'qty' => 1, 'price' => 9.99, 'weight' => 550, 'options' => ['size' => 'large']]);

Đơn giản hơn, chúng ta có thể add sản phẩm vào mà không cần id của giỏ hàng, nó sẽ tự sinh ra cho chúng ta:

Cart::add($product, 1, ['size' => 'large']);

Nếu muốn thêm nhiều sản phẩm, chúng ta có thể :

Cart::add([ ['id' => '293ad', 'name' => 'Product 1', 'qty' => 1, 'price' => 10.00, 'weight' => 550], ['id' => '4832k', 'name' => 'Product 2', 'qty' => 1, 'price' => 10.00, 'weight' => 550, 'options' => ['size' => 'large']] ]);

Cart::add([$product1, $product2]);

Cart::update() : Cập nhật giỏ hàng

Quá đơn giản, bạn chỉ cần:

$rowId = 'da39a3ee5e6b4b0d3255bfef95601890afd80709';

Cart::update($rowId, 2); // Will update the quantity

Cart::remove() Xóa một item trong giỏ hàng

$rowId = 'da39a3ee5e6b4b0d3255bfef95601890afd80709';

Cart::remove($rowId);

Cart::get() : lấy một item trong giỏ hàng

$rowId = 'da39a3ee5e6b4b0d3255bfef95601890afd80709'; Cart::get($rowId);

Cart::content() : Lấy toàn bộ trong giỏ hàng

Cart::destroy() : Xóa luôn giỏ hàng ?

  1. Các method tính toán:

Cart::total() : Đây là method giúp tổng số tiền trong giỏ hàng, và bao gồm thuế , số thuế được tính trong package của nó, bạn có thể sửa nó trong package nhé

Vậy làm sao để tránh không sử dụng đến thuế? => chúng ta sẽ có method: Cart::subtotal()

  1. Khác

Giả sử bạn muốn người dùng thấy được trong giỏ hàng của họ có bao nhiêu mặt hàng, hãy sử dụng Cart::count(); , method này sẽ lấy tổng các item có trong giỏ hàng.

Lời kết

Trên đây mình đã giới thiệu những method rất tiện lợi của bumbummen99, ngoài ra còn có các method khác rất hay các bạn có thể tham khảo trong link dưới nhé!

Happy coding!

Tham khảo: https://packagist.org/packages/bumbummen99/shoppingcart https://github.com/vietnq-2410/SkyMart

Bình luận

Bài viết tương tự

- vừa được xem lúc

Giới thiệu Typescript - Sự khác nhau giữa Typescript và Javascript

Typescript là gì. TypeScript là một ngôn ngữ giúp cung cấp quy mô lớn hơn so với JavaScript.

0 0 500

- vừa được xem lúc

Cài đặt WSL / WSL2 trên Windows 10 để code như trên Ubuntu

Sau vài ba năm mình chuyển qua code trên Ubuntu thì thật không thể phủ nhận rằng mình đã yêu em nó. Cá nhân mình sử dụng Ubuntu để code web thì thật là tuyệt vời.

0 0 374

- vừa được xem lúc

Đặt tên commit message sao cho "tình nghĩa anh em chắc chắn bền lâu"????

. Lời mở đầu. .

1 1 701

- vừa được xem lúc

Tìm hiểu về Resource Controller trong Laravel

Giới thiệu. Trong laravel, việc sử dụng các route post, get, group để gọi đến 1 action của Controller đã là quá quen đối với các bạn sử dụng framework này.

0 0 335

- vừa được xem lúc

Phân quyền đơn giản với package Laravel permission

Như các bạn đã biết, phân quyền trong một ứng dụng là một phần không thể thiếu trong việc phát triển phần mềm, dù đó là ứng dụng web hay là mobile. Vậy nên, hôm nay mình sẽ giới thiệu một package có thể giúp các bạn phân quyền nhanh và đơn giản trong một website được viết bằng PHP với framework là L

0 0 421

- vừa được xem lúc

Bạn đã biết các tips này khi làm việc với chuỗi trong JavaScript chưa ?

Hi xin chào các bạn, tiếp tục chuỗi chủ đề về cái thằng JavaScript này, hôm nay mình sẽ giới thiệu cho các bạn một số thủ thuật hay ho khi làm việc với chuỗi trong JavaScript có thể bạn đã hoặc chưa từng dùng. Cụ thể như nào thì hãy cùng mình tìm hiểu trong bài viết này nhé (go).

0 0 414