ecomphp / shopee-php
Unofficial Shopee API Client in PHP
v1.3.2
2024-12-01 16:40 UTC
Requires
- php: ^7.2|^8.0
- ext-json: *
- guzzlehttp/guzzle: ^7.3
Requires (Dev)
- phpunit/phpunit: ^8|^9
README
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();
- 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);
- 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
- 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
andshop_id
to start using Shopee API
$client = new Client($partner_id, $partner_key); $client->setAccessToken($shop_id, $access_token);
- Get item list: api document
$products = $client->Product->getItemList([ 'offset' => 0, 'page_size' => 50, 'item_status' => 'NORMAL', ]);
- Get order list: api document
$orders = $client->Order->getOrderList([ 'order_status' => 'READY_TO_SHIP', 'page_size' => 50, ]);