定制 hkonnet/laravel-ebay 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

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

Latest Stable Version Total Downloads Monthly Downloads License

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

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 我们能提供哪些服务?
定制开发 / 二次开发

基于 hkonnet/laravel-ebay 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 52.83k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 39
  • 点击次数: 4
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 39
  • Watchers: 10
  • Forks: 39
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2017-06-01