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