2017 © Pedro Peláez
 

library laravel-bigcommerce

Laravel bigcommerce package

image

oseintow/laravel-bigcommerce

Laravel bigcommerce package

  • Monday, August 21, 2017
  • by oseintow
  • Repository
  • 2 Watchers
  • 5 Stars
  • 4,841 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 3 Forks
  • 2 Open issues
  • 3 Versions
  • 18 % Grown

The README.md

Laravel Bigcommerce

Laravel Bigcommerce is a simple package which helps to build robust integration into bigcommerce. This package support the Version 2 and 3 of the Bigcommerce Api., (*1)

Installation

Add package to composer.json, (*2)

composer require oseintow/laravel-bigcommerce

Add the service provider to config/app.php in the providers array., (*3)

<?php

'providers' => [
    ...
    Oseintow\Bigcommerce\BigcommerceServiceProvider::class,
],

Setup alias for the Facade, (*4)

<?php

'aliases' => [
    ...
    'Bigcommerce' => Oseintow\Bigcommerce\Facades\Bigcommerce::class,
],

Configuration

Laravel Bigcommerce requires connection configuration. You will need to publish vendor assets, (*5)

php artisan vendor:publish

This will create a bigcommerce.php file in the config directory. You will need to set your auth keys, (*6)

OAUTH

Set CLIENT ID , CLIENT SECRET AND REDIRECT URL, (*7)

BasicAuth

Set API_KEY , USERNAME AND STORE URL, (*8)

Let's retrieve access token, (*9)

Route::get("process_oauth_result",function(\Illuminate\Http\Request $request)
{
    $response = Bigcommerce::getAccessToken($request->code, $request->scope, $request->context));

    dd($response);
});

Usage

There are 2 ways to access resource from bigcommerce using this package., (*10)

  1. Using the http verbs(ie. this gives you more flexibility and also support api v3 and also returns laravel collection)
  2. Using Bigcommerce Collection (this does not support api v3 and laravel collection).

By default the package support API v3, (*11)

To set it to version 2 or 3 use, (*12)

Bigcommerce::setApiVersion('v2');

or, (*13)

Bigcommerce::setApiVersion('v3');

Using Http verbs

Bigcommerce::get("resource uri",["query string params"]);
Bigcommerce::post("resource uri",["post body"]);
Bigcommerce::put("resource uri",["put body"]);
Bigcommerce::delete("resource uri");

Let use our access token to get products from bigcommerce., (*14)

NB: You can use this to access any resource on bigcommerce (be it Products, Shops, Orders, etc). And also you dont need store hash and access token when using basic auth., (*15)

$storeHash = "ecswer";
$accessToken = "xxxxxxxxxxxxxxxxxxxxx";
$products = Bigcommerce::setStoreHash($storeHash)->setAccessToken($accessToken)->get("products");

To pass query params, (*16)

// returns Collection
$bigcommerce = Bigcommerce::setStoreHash($storeHash)->setAccessToken($accessToken);
$products = $bigcommerce->get("admin/products.json", ["limit"=>20, "page" => 1]);

Controller Example

If you prefer to use dependency injection over facades like me, then you can inject the Class:, (*17)

use Illuminate\Http\Request;
use Oseintow\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);
        });
    }
}

Miscellaneous

To get Response headers, (*18)

Bigcommerce::getHeaders();

To get specific header, (*19)

Bigcommerce::getHeader("Content-Type");

To get response status code or status message, (*20)

Bigcommerce::getStatus(); // 200

Using Bigcommerce Collection

Testing Configuration

Use code below To test if configuration is correct. Returns false if unsuccessful otherwise return DateTime Object., (*21)

$time = Bigcommerce::getTime();

Accessing Resources

//  oauth
$storeHash = "afw2w";
$accessToken = "xxxxxxxxxxxxxxxxxxxxx";
$products = Bigcommerce::setStoreHash($storeHash)->setAccessToken($accessToken)->getProducts();

//Basic Auth
$products = Bigcommerce::getProducts();

Paging and Filtering

All the default collection methods support paging, by passing the page number to the method as an integer:, (*22)

$products = Bigcommerce::getProducts(3);, (*23)

If you require more specific numbering and paging, you can explicitly specify a limit parameter:, (*24)

$filter = array("page" => 3, "limit" => 30);

$products = Bigcommerce::getProducts($filter);

To filter a collection, you can also pass parameters to filter by as key-value pairs:, (*25)

$filter = array("is_featured" => true);

$featured = Bigcommerce::getProducts($filter);

See the API documentation for each resource for a list of supported filter parameters., (*26)

Updating existing resources (PUT), (*27)

To update a single resource:, (*28)

$product = Bigcommerce::getProduct(11);

$product->name = "MacBook Air";
$product->price = 99.95;
$product->update();

For more info on the Bigcommerce Collection check this, (*29)

The Versions

21/08 2017

dev-master

9999999-dev

Laravel bigcommerce package

  Sources   Download

MIT

The Requires

 

by michael osei ntow

21/08 2017

v1.0.1

1.0.1.0

Laravel bigcommerce package

  Sources   Download

MIT

The Requires

 

by michael osei ntow

21/08 2017

v1.0.0

1.0.0.0

Laravel bigcommerce package

  Sources   Download

MIT

The Requires

 

by michael osei ntow