成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

Laravel shopping cart : 電商購(gòu)物車(chē)包,線(xiàn)上完美運(yùn)行中

孫淑建 / 2091人閱讀

摘要:購(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-cart
Installation
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::class
Usage 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 cart

Add 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

相關(guān)文章

  • Laravel 獲取當(dāng)前 Guard 分析 —源自電商購(gòu)物車(chē)的實(shí)際需求

    摘要:因?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...

    daydream 評(píng)論0 收藏0
  • Redux入門(mén)教程(快速上手)

    摘要:接下來(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ì)是一...

    amuqiao 評(píng)論0 收藏0
  • 基于Composer的Laravel擴(kuò)展開(kāi)發(fā)工作流

    使用場(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)目中使...

    Faremax 評(píng)論0 收藏0
  • 電商系統(tǒng)設(shè)計(jì)之用戶(hù)系統(tǒ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框...

    lindroid 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<