Skip to content

EcomPHP/shopee-php

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Unofficial Shopee API Client in PHP

Total Downloads Latest Stable Version Latest Unstable Version Build Status License

Shopee Client is a simple SDK implementation of Shopee API.

Installation

Install with Composer

composer require ecomphp/shopee-php

Configure Shopee PHP Client

use EcomPHP\Shopee\Client;

$partner_id = 'your partner id';
$partner_key = 'your partner key';

$client = new Client($partner_id, $partner_key);

Grant token

There is a Auth class to help you getting the token from the shop using oAuth.

$auth = $client->auth();
  1. Create the authentication request
$redirect_uri = 'http://your-redirect-url.com';
$auth->createAuthRequest($redirect_uri);

If you want the function to return the authentication url instead of auto-redirecting, you can set the argument $return (2nd argument) to true.

$authUrl = $auth->createAuthRequest($redirect_uri, true);

// redirect user to auth url
header('Location: '.$authUrl);
  1. Get authentication code when redirected back to Redirect callback URL after app authorization and exchange it for access token
$authorization_code = $_GET['code'];
$shop_id = $_GET['shop_id'];
$token = $auth->getToken($authorization_code, $shop_id);

$access_token = $token['access_token'];
$refresh_token = $token['refresh_token'];

// save your access_token & refresh_token & shop_id for later use
  1. Get authorized Shop cipher
$access_token = 'your access token';
$shop_id = 'your shop id';
$client->setAccessToken($shop_id, $access_token);

Refresh your access token

Access token will be expired soon, so you need refresh new token by using refresh_token

$new_token = $auth->refreshNewToken($refresh_token, $shop_id);

$new_access_token = $new_token['access_token'];
$new_refresh_token = $new_token['refresh_token'];

Usage API Example

You need access_token and shop_id to start using Shopee API

$client = new Client($partner_id, $partner_key);
$client->setAccessToken($shop_id, $access_token);
$products = $client->Product->getItemList([
    'offset' => 0,
    'page_size' => 50,
    'item_status' => 'NORMAL',
]);
$orders = $client->Order->getOrderList([
    'order_status' => 'READY_TO_SHIP',
    'page_size' => 50,
]);