【问题标题】:Get sold items list in Ebay SDK using davidtsadler/ebay-sdk-php使用 davidtsadler/ebay-sdk-php 在 Ebay SDK 中获取已售商品列表
【发布时间】:2015-10-05 15:30:03
【问题描述】:

我正在尝试使用 api davidtsadler/ebay-sdk-php 获取我的订单(已售商品)列表

https://github.com/davidtsadler/ebay-sdk-php

但我无法获得清单。

我找到了一些例子,但这些对我不起作用。

$service = new Services\TradingService(array(
  'apiVersion' => $this->config['tradingApiVersion'],
  'siteId' => Constants\SiteIds::ES,
  'sandbox'=> true,
));
/**
 * Create the request object.
 *
 * For more information about creating a request object, see:
 * http://devbay.net/sdk/guides/getting-started/#request-object
 */
$request = new Types\GetMyeBaySellingRequestType();
/**
 * An user token is required when using the Trading service.
 *
 * For more information about getting your user tokens, see:
 * http://devbay.net/sdk/guides/application-keys/
 */

$args = array(
  "OrderStatus"   => "Completed",
  "OrderStatus"   => "All",
  "SortingOrder"  => "Ascending",
  //"OrderRole"     => "Seller",
  "ModTimeFrom"   => new \DateTime('2015-01-01'),
);

$getOrders = new Types\GetOrdersRequestType($args);
$getOrders->RequesterCredentials = new Types\CustomSecurityHeaderType();
$getOrders->RequesterCredentials->eBayAuthToken = $this->config['sandbox']['userToken'];
$getOrders->IncludeFinalValueFee = true;
$getOrders->Pagination = new Types\PaginationType();
$getOrders->Pagination->EntriesPerPage = 200;
//$getOrders->OrderIDArray = new Types\OrderIDArrayType();
$getOrdersPageNum = 10;

//$getOrders->OrderIDArray->OrderID[] = '110169861526-110169862570'; //'200980916385-1185594371010'
$response = $service->getOrders($getOrders);

echo print_r($response,1);

foreach ($response->OrderArray->Order as $order) {
  printf("SaleRecordID %s\n", $order->ShippingDetails->SellingManagerSalesRecordNumber);
}

尽管我在我的 Ebay 私人帐户中“出售”并支付了物品,但它返回 0 页。

DTS\eBaySDK\Trading\Types\GetOrdersResponseType Object
(
    [values:DTS\eBaySDK\Types\BaseType:private] => Array
        (
            [Timestamp] => DateTime Object
                (
                    [date] => 2015-10-05 15:14:01.578000
                    [timezone_type] => 2
                    [timezone] => Z
                )

            [Ack] => Success
            [Version] => 927
            [Build] => E927_INTL_API_17590342_R1
            [PaginationResult] => DTS\eBaySDK\Trading\Types\PaginationResultType Object
                (
                    [values:DTS\eBaySDK\Types\BaseType:private] => Array
                        (
                            [TotalNumberOfPages] => 0
                            [TotalNumberOfEntries] => 0
                        )

                    [attachment:DTS\eBaySDK\Types\BaseType:private] => Array
                        (
                            [data] => 
                            [mimeType] => 
                        )

                )

            [HasMoreOrders] => 
            [OrderArray] => DTS\eBaySDK\Trading\Types\OrderArrayType Object
                (
                    [values:DTS\eBaySDK\Types\BaseType:private] => Array
                        (
                        )

                    [attachment:DTS\eBaySDK\Types\BaseType:private] => Array
                        (
                            [data] => 
                            [mimeType] => 
                        )

                )

            [OrdersPerPage] => 100
            [PageNumber] => 1
            [ReturnedOrderCountActual] => 0
        )

    [attachment:DTS\eBaySDK\Types\BaseType:private] => Array
        (
            [data] => 
            [mimeType] => 
        )

)

【问题讨论】:

    标签: php ebay-sdk


    【解决方案1】:

    嗯 我找到了自己的解决方案! 在调用GetOrdersRequestType($args) 时必须传递一段时间

    "CreateTimeFrom" => 新的 \DateTime('2015-01-01'), "CreateTimeTo" => 新的 \DateTime('2015-10-06'),

    如果没有,则不会检索任何内容。

    工作示例:

    $service = new Services\TradingService(array(
      'apiVersion' => $this->config['tradingApiVersion'],
      'siteId' => Constants\SiteIds::ES,
      'sandbox'=> true,
    ));
    /**
     * Create the request object.
     *
     * For more information about creating a request object, see:
     * http://devbay.net/sdk/guides/getting-started/#request-object
     */
    $request = new Types\GetMyeBaySellingRequestType();
    /**
     * An user token is required when using the Trading service.
     *
     * For more information about getting your user tokens, see:
     * http://devbay.net/sdk/guides/application-keys/
     */
    
    $args = array(
      "OrderStatus"   => "Completed",
      "OrderStatus"   => "All",
      "SortingOrder"  => "Ascending",
      //"OrderRole"     => "Seller",
      "CreateTimeFrom"   => new \DateTime('2015-01-01'),
      "CreateTimeTo"   => new \DateTime('2015-10-06'),
    );
    
    $getOrders = new Types\GetOrdersRequestType($args);
    $getOrders->RequesterCredentials = new Types\CustomSecurityHeaderType();
    $getOrders->RequesterCredentials->eBayAuthToken = $this->config['sandbox']['userToken'];
    $getOrders->IncludeFinalValueFee = true;
    $getOrders->Pagination = new Types\PaginationType();
    $getOrders->Pagination->EntriesPerPage = 3;
    //$getOrders->OrderIDArray = new Types\OrderIDArrayType();
    $getOrdersPageNum = 1;
    
    
    //$getOrders->OrderIDArray->OrderID[] = '200980916385-1185594371010'; //'200980916385-1185594371010'
    $response = $service->getOrders($getOrders);
    echo print_r($response,1);
    
    foreach ($response->OrderArray->Order as $order) {
      printf("SaleRecordID %s\n", $order->ShippingDetails->SellingManagerSalesRecordNumber);
    }
    exit(0);
    

    【讨论】:

    • 这段代码有问题,如果用户完成了订单但没有付款,这发生在我身上。需要以某种方式检查,如果支付了
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多