hkonnet/laravel-ebay
Composer 安装命令:
composer require hkonnet/laravel-ebay
包简介
This package is wrapper for php Ebay sdk for laravel to automate all the configurations and make the skd ready to use.
README 文档
README
This package is based on Ebay SDK written by David T. Sadler. This package will organize all the configuration according to laravel and make you use the SDK with out doing any exceptional work or configurations.
Getting Started
Follow the instruction to install and use this package.
Prerequisites
This is package use Ebay Php SDK
Installing
Add Laravel-Ebay to your composer file via the composer require command:
$ composer require hkonnet/laravel-ebay
Or add it to composer.json manually:
"require": { "hkonnet/laravel-ebay": "^1.2" }
Register the service provider by adding it to the providers key in config/app.php. Also register the facade by adding it to the aliases key in config/app.php.
Laravel 5.1 or greater
'providers' => [ ... Hkonnet\LaravelEbay\EbayServiceProvider::class, ], 'aliases' => [ ... 'Ebay' => Hkonnet\LaravelEbay\Facade\Ebay::class, ]
Laravel 5
'providers' => [ ... 'Hkonnet\LaravelEbay\EbayServiceProvider', ], 'aliases' => [ ... 'Ebay' => 'Hkonnet\LaravelEbay\Facade\Ebay', ]
Next to get started, you'll need to publish all vendor assets:
$ php artisan vendor:publish --provider="Hkonnet\LaravelEbay\EbayServiceProvider"
This will create a config/ebay.php file in your app that you can modify to set your configuration.
###Configuration After installation, you will need to add your ebay settings. Following is the code you will find in config/ebay.php, which you should update accordingly.
return [ 'mode' => env('EBAY_MODE', 'sandbox'), 'siteId' => env('EBAY_SITE_ID','0'), 'sandbox' => [ 'credentials' => [ 'devId' => env('EBAY_SANDBOX_DEV_ID'), 'appId' => env('EBAY_SANDBOX_APP_ID'), 'certId' => env('EBAY_SANDBOX_CERT_ID'), ], 'authToken' => env('EBAY_SANDBOX_AUTH_TOKEN'), 'oauthUserToken' => env('EBAY_SANDBOX_OAUTH_USER_TOKEN'), ], 'production' => [ 'credentials' => [ 'devId' => env('EBAY_PROD_DEV_ID'), 'appId' => env('EBAY_PROD_APP_ID'), 'certId' => env('EBAY_PROD_CERT_ID'), ], 'authToken' => env('EBAY_PROD_AUTH_TOKEN'), 'oauthUserToken' => env('EBAY_PROD_OAUTH_USER_TOKEN'), ] ];
Usage
Following are few examples for using this package.
Ex 1: Get the official eBay time
Following are the two ways you can do it
Method 1:
use \Hkonnet\LaravelEbay\EbayServices; use \DTS\eBaySDK\Shopping\Types; // Create the service object. $ebay_service = new EbayServices(); $service = $ebay_service->createShopping(); // Create the request object. $request = new Types\GeteBayTimeRequestType(); // Send the request to the service operation. $response = $service->geteBayTime($request); // Output the result of calling the service operation. printf("The official eBay time is: %s\n", $response->Timestamp->format('H:i (\G\M\T) \o\n l jS Y'));
Method 2:
Tip: If you prefer to use DTS library class you need to pass the configuration.
use \DTS\eBaySDK\Shopping\Services; use \DTS\eBaySDK\Shopping\Types; $config = Ebay::getConfig(); // Create the service object. $service = new Services\ShoppingService($config); // Create the request object. $request = new Types\GeteBayTimeRequestType(); // Send the request to the service operation. $response = $service->geteBayTime($request); // Output the result of calling the service operation. printf("The official eBay time is: %s\n", $response->Timestamp->format('H:i (\G\M\T) \o\n l jS Y'));
Ex 2: Find items by keyword
This example will call the findItemsByKeywords operation
Method 1:
use \Hkonnet\LaravelEbay\EbayServices; use \DTS\eBaySDK\Finding\Types; // Create the service object. $ebay_service = new EbayServices(); $service = $ebay_service->createFinding(); // Assign the keywords. $request = new Types\FindItemsByKeywordsRequest(); $request->keywords = 'Harry Potter'; // Ask for the first 25 items. $request->paginationInput = new Types\PaginationInput(); $request->paginationInput->entriesPerPage = 25; $request->paginationInput->pageNumber = 1; // Ask for the results to be sorted from high to low price. $request->sortOrder = 'CurrentPriceHighest'; $response = $service->findItemsByKeywords($request); // Output the response from the API. if ($response->ack !== 'Success') { foreach ($response->errorMessage->error as $error) { printf("Error: %s <br>", $error->message); } } else { foreach ($response->searchResult->item as $item) { printf("(%s) %s:%.2f <br>", $item->itemId, $item->title, $item->sellingStatus->currentPrice->value); } }
Method 2:
use DTS\eBaySDK\Finding\Services\FindingService; use \DTS\eBaySDK\Finding\Types; // Create the service object. $config = Ebay::getConfig(); $service = new FindingService($config); // Assign the keywords. $request = new Types\FindItemsByKeywordsRequest(); $request->keywords = 'Harry Potter'; // Ask for the first 25 items. $request->paginationInput = new Types\PaginationInput(); $request->paginationInput->entriesPerPage = 25; $request->paginationInput->pageNumber = 1; // Ask for the results to be sorted from high to low price. $request->sortOrder = 'CurrentPriceHighest'; $response = $service->findItemsByKeywords($request); // Output the response from the API. if ($response->ack !== 'Success') { foreach ($response->errorMessage->error as $error) { printf("Error: %s <br>", $error->message); } } else { foreach ($response->searchResult->item as $item) { printf("(%s) %s:%.2f <br>", $item->itemId, $item->title, $item->sellingStatus->currentPrice->value); } }
Ex 3. Get my ebay selling
use \DTS\eBaySDK\Constants; use \DTS\eBaySDK\Trading\Types; use \DTS\eBaySDK\Trading\Enums; use \Hkonnet\LaravelEbay\EbayServices; /** * Create the service object. */ $ebay_service = new EbayServices(); $service = $ebay_service->createTrading(); /** * Create the request object. */ $request = new Types\GetMyeBaySellingRequestType(); /** * An user token is required when using the Trading service. */ $request->RequesterCredentials = new Types\CustomSecurityHeaderType(); $authToken = Ebay::getAuthToken(); $request->RequesterCredentials->eBayAuthToken = $authToken; /** * Request that eBay returns the list of actively selling items. * We want 10 items per page and they should be sorted in descending order by the current price. */ $request->ActiveList = new Types\ItemListCustomizationType(); $request->ActiveList->Include = true; $request->ActiveList->Pagination = new Types\PaginationType(); $request->ActiveList->Pagination->EntriesPerPage = 10; $request->ActiveList->Sort = Enums\ItemSortTypeCodeType::C_CURRENT_PRICE_DESCENDING; $pageNum = 1; do { $request->ActiveList->Pagination->PageNumber = $pageNum; /** * Send the request. */ $response = $service->getMyeBaySelling($request); /** * Output the result of calling the service operation. */ echo "==================\nResults for page $pageNum\n==================\n"; if (isset($response->Errors)) { foreach ($response->Errors as $error) { printf( "%s: %s\n%s\n\n", $error->SeverityCode === Enums\SeverityCodeType::C_ERROR ? 'Error' : 'Warning', $error->ShortMessage, $error->LongMessage ); } } if ($response->Ack !== 'Failure' && isset($response->ActiveList)) { foreach ($response->ActiveList->ItemArray->Item as $item) { printf( "(%s) %s: %s %.2f\n", $item->ItemID, $item->Title, $item->SellingStatus->CurrentPrice->currencyID, $item->SellingStatus->CurrentPrice->value ); } } $pageNum += 1; } while (isset($response->ActiveList) && $pageNum <= $response->ActiveList->PaginationResult->TotalNumberOfPages);
Note:
- There are lots for more example available at Ebay SDK Examples.
- Follow above examples but read the Important note below.
Important Note
Using method 1 in both examples we did
use \Hkonnet\LaravelEbay\EbayServices; // Create the service object. $ebay_service = new EbayServices(); $service = $ebay_service->createFinding();
to get service object..
Following methods are available to create services using EbayServices class.
- createAccount(array $args = [])
- createAnalytics(array $args = [])
- createBrowse(array $args = [])
- createBulkDataExchange(array $args = [])
- createBusinessPoliciesManagement(array $args = [])
- createFeedback(array $args = [])
- createFileTransfer(array $args = [])
- createFinding(array $args = [])
- createFulfillment(array $args = [])
- createHalfFinding(array $args = [])
- createInventory(array $args = [])
- createMarketing(array $args = [])
- createMerchandising(array $args = [])
- createMetadata(array $args = [])
- createOrder(array $args = [])
- createPostOrder(array $args = [])
- createProduct(array $args = [])
- createProductMetadata(array $args = [])
- createRelatedItemsManagement(array $args = [])
- createResolutionCaseManagement(array $args = [])
- createReturnManagement(array $args = [])
- createShopping(array $args = [])
- createTrading(array $args = [])
These services methods can be used to get appropriate service object to perform operations on Ebay.
Author
- Haroon Khan - Initial work - hkonnet
License
This project is licensed under the MIT License - see the LICENSE file for details
Acknowledgments
- David T. Sadler for his awesome Ebay SDK.
hkonnet/laravel-ebay 适用场景与选型建议
hkonnet/laravel-ebay 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 52.83k 次下载、GitHub Stars 达 39, 最近一次更新时间为 2017 年 06 月 01 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「php」 「api」 「sdk」 「laravel」 「ebay」 「laravel5」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 hkonnet/laravel-ebay 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 hkonnet/laravel-ebay 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 hkonnet/laravel-ebay 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
A PSR-7 compatible library for making CRUD API endpoints
Alfabank REST API integration
Zero-dependency raw PHP DNS resolver, domain-ownership verification, and intoDNS/MxToolbox-style diagnostics. Queries authoritative nameservers directly over sockets — never trusts the recursive cache for ownership checks.
A lightweight plain-PHP framework for database-backed CRUD APIs.
bughq error tracking - PHP SDK
ABsurge PHP SDK for feature flags and A/B testing
统计信息
- 总下载量: 52.83k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 39
- 点击次数: 4
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2017-06-01