摘要:購物車在電商場景中基本是必須的一個模塊,我們基于進行擴展開發(fā)。主要實現(xiàn)了以下擴展購物車數(shù)據(jù)支持存儲增加屬性返回。因為購物車可能是或者,因此直接通過屬性直接返回相關(guān)對象。支持多因為在產(chǎn)品有商城購物車和導(dǎo)購購物車。
我們秉承得益開源社區(qū),也奉獻開源社區(qū)的原則,我們會陸續(xù)將正在線上使用的穩(wěn)定包提交到 github 上,同時在后續(xù)的開源產(chǎn)品中,也會用到,大家可以放心使用。
購物車在電商場景中基本是必須的一個模塊,我們基于 overtrue/laravel-shopping-cart 進行擴展開發(fā)。
BTW: github 上已經(jīng)有非常多和優(yōu)秀的輪子,但是在實際應(yīng)用場景中,會遇到不滿足需求的情況,這個時候就需要改造下。另外貌似又見 overtrue 大神的輪子,主要 overtrue 的輪子很優(yōu)秀,而且符合國人使用習(xí)慣。
主要實現(xiàn)了以下擴展:
購物車數(shù)據(jù)支持 Database 存儲
Item 增加 Model 屬性返回。因為購物車可能是 SPU 或者 SKU,因此直接通過 model 屬性直接返回相關(guān)對象。
支持多 Guard. 因為在 iBrand 產(chǎn)品有商城購物車和導(dǎo)購購物車。
包地址: 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 :)討論交流
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/28122.html
摘要:因為客戶希望能夠直觀的看到目前購物車中商品信息,以便推送優(yōu)惠信息來促使轉(zhuǎn)化。用戶在商城中的購物車數(shù)據(jù)導(dǎo)購使用導(dǎo)購小程序代用戶下單或結(jié)賬時加入的購物車數(shù)據(jù),不和用戶購物車數(shù)據(jù)同步。 iBrand 產(chǎn)品中關(guān)于購物車的需求比較復(fù)雜,我們基于 overture/laravel-shopping-cart 擴展出了更加符合電商需求的購物車包,之前有文章進行過簡單的介紹: Laravel shop...
摘要:接下來演示不變性打開終端并啟動輸入。修改代碼如下我們使用在控制臺中打印出當前的狀態(tài)??梢栽诳刂婆_中確認新的商品已經(jīng)添加了。修改和文件最后,我們在中分發(fā)這兩個保存完代碼之后,可以在瀏覽器的控制臺中檢查修改和刪除的結(jié)果。 典型的Web應(yīng)用程序通常由共享數(shù)據(jù)的多個UI組件組成。通常,多個組件的任務(wù)是負責(zé)展示同一對象的不同屬性。這個對象表示可隨時更改的狀態(tài)。在多個組件之間保持狀態(tài)的一致性會是一...
使用場景 在引用第三方包的時候,對第三方包有改動需求,需要將代碼放在自己的倉庫;并且自己的其他項目也有需求引用自定義的第三方包;甚至自己會發(fā)布修改后的第三方包; 讀完本文你講獲得: Git Submodule的基本使用 從本地加載第三方包 從自定義倉庫地址獲取擴展包 快速創(chuàng)建第三方包 本文是在我自己想要創(chuàng)建一個基礎(chǔ)第三方包的時候記錄下的操作步驟 1、利用git submoudle在已有項目中使...
摘要:致謝感謝你們看到這里,下一篇我會講一下關(guān)于電商系統(tǒng)的商品設(shè)計的部分。 showImg(https://segmentfault.com/img/bVbclTs?w=500&h=329); 電商大伙每天都在用,類似某貓,某狗等。電商系統(tǒng)設(shè)計看似復(fù)雜又很簡單,看似簡單又很復(fù)雜本章適合初級工程師及中級工程師細看,大佬請隨意 前言 設(shè)計以以下為工具講起 PHP為開發(fā)語言 基于Laravel框...
閱讀 2081·2021-11-22 19:20
閱讀 2738·2021-11-22 13:54
閱讀 2152·2021-09-04 16:40
閱讀 1897·2021-08-13 11:54
閱讀 2814·2019-08-30 15:55
閱讀 3534·2019-08-29 13:51
閱讀 590·2019-08-29 11:09
閱讀 3083·2019-08-26 14:06