kuodobuzz / laravel-bigcommerce
Laravel Bigcommerce 包为 kuodobuzz 用户提供
Requires
- php: >=7.0.0
- bigcommerce/api: ^3.0
- illuminate/support: ^5.4
This package is not auto-updated.
Last update: 2024-10-03 11:43:21 UTC
README
Laravel Bigcommerce 是一个简单的包,它帮助构建与大商家的强大集成。此包支持 Bigcommerce API 的第 2 版和第 3 版。
安装
将包添加到 composer.json 文件中
composer require kudobuzz/laravel-bigcommerce
将服务提供者添加到 config/app.php 文件中的 providers 数组中。
<?php 'providers' => [ ... Kudobuzz\Bigcommerce\BigcommerceServiceProvider::class, ],
为 Facade 设置别名
<?php 'aliases' => [ ... 'Bigcommerce' => Kudobuzz\Bigcommerce\Facades\Bigcommerce::class, ],
配置
Laravel Bigcommerce 需要连接配置。您需要发布供应商资源
php artisan vendor:publish
这将在配置目录中创建一个 bigcommerce.php 文件。您需要设置您的 认证 密钥
OAUTH
设置 客户端 ID , 客户端密钥 和 重定向 URL
基本认证
设置 API 密钥 , 用户名 和 商店 URL
让我们获取访问令牌
Route::get("process_oauth_result",function(\Illuminate\Http\Request $request) { $response = Bigcommerce::getAccessToken($request->code, $request->scope, $request->context)); dd($response); });
用法
使用此包从大商家访问资源有两种方式。
- 使用 HTTP 动词(即这提供了更多的灵活性,也支持 API v3,并返回 Laravel 集合)
- 使用 Bigcommerce 集合(这不支持 API v3 和 Laravel 集合)。
默认情况下,该包支持 API v3
要将它设置为版本 2 或 3,请使用
Bigcommerce::setApiVersion('v2');
或
Bigcommerce::setApiVersion('v3');
使用 HTTP 动词
Bigcommerce::get("resource uri",["query string params"]); Bigcommerce::post("resource uri",["post body"]); Bigcommerce::put("resource uri",["put body"]); Bigcommerce::delete("resource uri");
让我们使用访问令牌从大商家获取产品。
注意:您可以使用此方法访问大商家上的任何资源(无论是产品、商店、订单等)。并且在使用基本认证时,您不需要商店哈希和访问令牌。
$storeHash = "ecswer"; $accessToken = "xxxxxxxxxxxxxxxxxxxxx"; $products = Bigcommerce::setStoreHash($storeHash)->setAccessToken($accessToken)->get("products");
传递查询参数
// returns Collection $bigcommerce = Bigcommerce::setStoreHash($storeHash)->setAccessToken($accessToken); $products = $bigcommerce->get("admin/products.json", ["limit"=>20, "page" => 1]);
控制器示例
如果您像我一样喜欢使用依赖注入而不是外观,则可以注入类
use Illuminate\Http\Request; use Kudobuzz\Bigcommerce\Bigcommerce; class Foo { protected $bigcommerce; public function __construct(Bigcommerce $bigcommerce) { $this->bigcommerce = $bigcommerce; } /* * returns Collection */ public function getProducts(Request $request) { $products = $this->bigcommerce->setStoreHash($storeHash) ->setAccessToken($accessToken) ->get('products'); $products->each(function($product){ \Log::info($product->title); }); } }
其他
获取响应头
Bigcommerce::getHeaders();
获取特定头
Bigcommerce::getHeader("Content-Type");
获取响应状态码或状态消息
Bigcommerce::getStatus(); // 200
使用 Bigcommerce 集合
测试配置
使用以下代码测试配置是否正确。如果失败则返回 false,否则返回 DateTime 对象。
$time = Bigcommerce::getTime();
访问资源
// oauth $storeHash = "afw2w"; $accessToken = "xxxxxxxxxxxxxxxxxxxxx"; $products = Bigcommerce::setStoreHash($storeHash)->setAccessToken($accessToken)->getProducts(); //Basic Auth $products = Bigcommerce::getProducts();
分页和过滤
所有默认集合方法都支持分页,通过将页面号作为整数传递给方法
$products = Bigcommerce::getProducts(3);
如果您需要更具体的编号和分页,您可以明确指定一个限制参数
$filter = array("page" => 3, "limit" => 30); $products = Bigcommerce::getProducts($filter);
要过滤集合,您也可以传递参数以键值对的形式进行过滤
$filter = array("is_featured" => true); $featured = Bigcommerce::getProducts($filter);
请参阅每个资源的 API 文档以获取支持的过滤参数列表。
更新现有资源(PUT)
更新单个资源
$product = Bigcommerce::getProduct(11); $product->name = "MacBook Air"; $product->price = 99.95; $product->update();
有关 Bigcommerce 集合的更多信息,请参阅此处