摘要:購物車在電商場景中基本是必須的一個模塊,我們基于進行擴展開發。主要實現了以下擴展購物車數據支持存儲增加屬性返回。因為購物車可能是或者,因此直接通過屬性直接返回相關對象。支持多因為在產品有商城購物車和導購購物車。
我們秉承得益開源社區,也奉獻開源社區的原則,我們會陸續將正在線上使用的穩定包提交到 github 上,同時在后續的開源產品中,也會用到,大家可以放心使用。
購物車在電商場景中基本是必須的一個模塊,我們基于 overtrue/laravel-shopping-cart 進行擴展開發。
BTW: github 上已經有非常多和優秀的輪子,但是在實際應用場景中,會遇到不滿足需求的情況,這個時候就需要改造下。另外貌似又見 overtrue 大神的輪子,主要 overtrue 的輪子很優秀,而且符合國人使用習慣。
主要實現了以下擴展:
購物車數據支持 Database 存儲
Item 增加 Model 屬性返回。因為購物車可能是 SPU 或者 SKU,因此直接通過 model 屬性直接返回相關對象。
支持多 Guard. 因為在 iBrand 產品有商城購物車和導購購物車。
包地址: laravel-shopping-cartInstallation
composer require ibrand/laravel-shopping-cart:~1.0 -vvv
php artisan vendor:publish --provider="iBrandShoppingcartServiceProvider"
低于 Laravel5.5 版本
config/app.php 文件中 "providers" 添加
iBrandShoppingcartServiceProvider::class
config/app.php 文件中 "aliases" 添加
"Cart"=> iBrandShoppingcartFacade::classUsage Select Storage
You can change data Storage in config/ibrand/cart.php file.
"storage" => iBrandShoppingcartStorageDatabaseStorage::class, "storage" => iBrandShoppingcartStorageSessionStorage::class,
If you use Database Storage, you need to execute php artisan migrate
Add item to cartAdd a new item.
Item | null Cart::add( string | int $id, string $name, int $quantity, int | float $price [, array $attributes = []] );
example:
$row = Cart::add(37, "Item name", 5, 100.00, ["color" => "red", "size" => "M"]); // Item: // id => 37 // name => "Item name" // qty => 5 // price => 100.00 // color => "red" // size => "M" // total => 500.00 // __raw_id => "8a48aa7c8e5202841ddaf767bb4d10da" $rawId = $row->rawId();// get __raw_id $row->qty; // 5 ...Update item
Update the specified item.
Item Cart::update(string $rawId, int $quantity); Item Cart::update(string $rawId, array $arrtibutes);
example:
Cart::update("8a48aa7c8e5202841ddaf767bb4d10da", ["name" => "New item name"); // or only update quantity Cart::update("8a48aa7c8e5202841ddaf767bb4d10da", 5);Get all items
Get all the items.
Collection Cart::all();
example:
$items = Cart::all();Get item
Get the specified item.
Item Cart::get(string $rawId);
example:
$item = Cart::get("8a48aa7c8e5202841ddaf767bb4d10da");Remove item
Remove the specified item by raw ID.
boolean Cart::remove(string $rawId);
example:
Cart::remove("8a48aa7c8e5202841ddaf767bb4d10da");Destroy cart
Clean Shopping Cart.
boolean Cart::destroy(); boolean Cart::clean(); // alias of destroy();
example:
Cart::destroy();// or Cart::clean();
READ MORE: ibrandcc/laravel-shopping-cart
歡迎大家 star 和提交 issue :)討論交流
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/28122.html
摘要:因為客戶希望能夠直觀的看到目前購物車中商品信息,以便推送優惠信息來促使轉化。用戶在商城中的購物車數據導購使用導購小程序代用戶下單或結賬時加入的購物車數據,不和用戶購物車數據同步。 iBrand 產品中關于購物車的需求比較復雜,我們基于 overture/laravel-shopping-cart 擴展出了更加符合電商需求的購物車包,之前有文章進行過簡單的介紹: Laravel shop...
摘要:接下來演示不變性打開終端并啟動輸入。修改代碼如下我們使用在控制臺中打印出當前的狀態。可以在控制臺中確認新的商品已經添加了。修改和文件最后,我們在中分發這兩個保存完代碼之后,可以在瀏覽器的控制臺中檢查修改和刪除的結果。 典型的Web應用程序通常由共享數據的多個UI組件組成。通常,多個組件的任務是負責展示同一對象的不同屬性。這個對象表示可隨時更改的狀態。在多個組件之間保持狀態的一致性會是一...
使用場景 在引用第三方包的時候,對第三方包有改動需求,需要將代碼放在自己的倉庫;并且自己的其他項目也有需求引用自定義的第三方包;甚至自己會發布修改后的第三方包; 讀完本文你講獲得: Git Submodule的基本使用 從本地加載第三方包 從自定義倉庫地址獲取擴展包 快速創建第三方包 本文是在我自己想要創建一個基礎第三方包的時候記錄下的操作步驟 1、利用git submoudle在已有項目中使...
摘要:致謝感謝你們看到這里,下一篇我會講一下關于電商系統的商品設計的部分。 showImg(https://segmentfault.com/img/bVbclTs?w=500&h=329); 電商大伙每天都在用,類似某貓,某狗等。電商系統設計看似復雜又很簡單,看似簡單又很復雜本章適合初級工程師及中級工程師細看,大佬請隨意 前言 設計以以下為工具講起 PHP為開發語言 基于Laravel框...
閱讀 1974·2021-11-22 19:20
閱讀 2618·2021-11-22 13:54
閱讀 1932·2021-09-04 16:40
閱讀 1814·2021-08-13 11:54
閱讀 2627·2019-08-30 15:55
閱讀 3456·2019-08-29 13:51
閱讀 519·2019-08-29 11:09
閱讀 2997·2019-08-26 14:06