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

Đơn giản hóa chức năng shopping cart trong laravel

0 0 134

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);

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

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

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

Sử dụng Swagger để xây dựng API documentation

Giới thiệu về Swagger. RESTful API là một tiêu chuẩn dùng trong việc thiết kế API cho các ứng dụng web (thiết kế Web services) để tiện cho việc quản lý các resource.

0 0 1k

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

So sánh Interface và Abstract trong lập trình hướng đối tượng.

Tổng quan. Interface và Abstract class là 2 khái niệm cơ bản trong lập trình OOP.

0 0 48

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

CURL và cách sử dụng trong PHP

Giới Thiệu. CURL là bộ thư viện được sử dụng để giúp thực hiện việc chuyển dữ liệu thông qua nhiều giao thức khác nhau (như HTTP, FPT...). Với giao thức HTTP, cURL hỗ trợ việc gửi dữ liệu sử dụng tất cả các phương thức hiện có như GET, POST, PUT, DELETE... cURL cũng hỗ trợ việc chuyền dữ liệu sử dụn

0 0 77

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

Thêm dòng dữ liệu mới (MySQL) trong Laravel

Chào các bạn, Laravel hiện đang là hot trend trong "thế giới PHP". 1. Cấu hình cơ bản ban đầu. .

0 0 38