eBay API GetOrdersRequest 未显示等待付款的项目
eBay API GetOrdersRequest not showing Items awaiting Payment
这是 XML 我打电话给 ebay 的。我得到了所有完成的项目,除了那些没有付款的完成的项目(我已经读过我应该回来)。
我更希望有一个只调用 "Awaiting Payment"、"Awaiting Shipping"、"Shipped" 的方法。如果可能的话,我从我的研究中没有意识到这一点。我目前正在收集 n 天的所有已完成内容并自己过滤掉它们
端点:
https://api.ebay.com/ws/api.dll
XML:
<?xml version='1.0' encoding='utf-8'?>
<GetOrdersRequest xmlns='urn:ebay:apis:eBLBaseComponents'>
<RequesterCredentials>
<eBayAuthToken>$requestToken</eBayAuthToken>
</RequesterCredentials>
<OrderRole>Seller</OrderRole>
<OrderStatus>Completed</OrderStatus>
<Pagination>
<EntriesPerPage>100</EntriesPerPage>
<PageNumber>$page</PageNumber>
</Pagination>
<NumberOfDays>7</NumberOfDays>
<ErrorLanguage>en_US</ErrorLanguage>
<Version>823</Version>
<WarningLevel>High</WarningLevel>
</GetOrdersRequest>
整理逻辑:
foreach($orderArray as $order)
{
$paidTime = (isset($order['PaidTime']) ? $order['PaidTime'] : '');
$shippedTime = (isset($order['ShippedTime']) ? $order['ShippedTime'] : '');
if($paidTime != "" ){
if($shippedTime == "")
array_push($itemPaidNotShipped,$order);
else
array_push($itemPaidShipped,$order);
}else{
array_push($itemNotPaidNotShipped,$order);
}
}
接受答案后编辑,这是我的排序逻辑:
foreach($orderArray as $order){
$paidTime = (isset($order['PaidTime']) ? $order['PaidTime'] : '');
$shippedTime = (isset($order['ShippedTime']) ? $order['ShippedTime'] : '');
$orderStatus = (isset($order['OrderStatus']) ? $order['OrderStatus'] : '');
if($orderStatus != "" && $orderStatus != 'Cancelled'){
if($paidTime != "" ){
if($shippedTime == "")
array_push($itemPaidNotShipped,$order);
else
array_push($itemPaidShipped,$order);
}else{
array_push($itemNotPaidNotShipped,$order);
}
}
}
无法创建仅 return 特定状态(如等待付款、等待装运或我已找到的已装运)的调用。收集过去 7 天的数据,然后尝试从那里确定付费状态,听起来您的方向是正确的。
为了确定付费状态,您需要检查 PaidTime,它可以是两个位置之一的元素。第一个是订单 (OrderArray.Order.PaidTime),第二个是交易 (OrderArray.Order.TransactionArray.Transaction.PaidTime)。 PaidTime 是有条件的 returned,这意味着如果不支付它就不会 returned。如果您解析 PaidTime 并且它不存在/未 returned 或 returned 并且没有值存在,则该项目被视为未付款/等待付款。如果存在时间,则付款已收到并被视为已付款。
我相信已完成 returns 已付款订单的 OrderStatus。您可以忽略 OrderStatus 以接收所有订单,无论状态如何或请求 Active 以获取未付款的订单。
如果您是 Selling Manager Pro 订阅者,则可以使用 GetSellingManagerSoldListings 调用
http://developer.ebay.com/Devzone/xml/docs/Reference/ebay/GetSellingManagerSoldListings.html
它有一个过滤字段
<Filter> SellingManagerSoldListingsPropertyTypeCodeType </Filter>
您可以在此处找到这些值
http://developer.ebay.com/Devzone/xml/docs/Reference/ebay/extra/GtSllngMngrSldLstngsRqst.Fltr.html
我使用 GetOrders 调用; GetSellingManagerSoldListings 调用包括以下内容:
注意:此调用如有更改,恕不另行通知;弃用过程不适用于此调用。
这是 XML 我打电话给 ebay 的。我得到了所有完成的项目,除了那些没有付款的完成的项目(我已经读过我应该回来)。
我更希望有一个只调用 "Awaiting Payment"、"Awaiting Shipping"、"Shipped" 的方法。如果可能的话,我从我的研究中没有意识到这一点。我目前正在收集 n 天的所有已完成内容并自己过滤掉它们
端点:
https://api.ebay.com/ws/api.dll
XML:
<?xml version='1.0' encoding='utf-8'?>
<GetOrdersRequest xmlns='urn:ebay:apis:eBLBaseComponents'>
<RequesterCredentials>
<eBayAuthToken>$requestToken</eBayAuthToken>
</RequesterCredentials>
<OrderRole>Seller</OrderRole>
<OrderStatus>Completed</OrderStatus>
<Pagination>
<EntriesPerPage>100</EntriesPerPage>
<PageNumber>$page</PageNumber>
</Pagination>
<NumberOfDays>7</NumberOfDays>
<ErrorLanguage>en_US</ErrorLanguage>
<Version>823</Version>
<WarningLevel>High</WarningLevel>
</GetOrdersRequest>
整理逻辑:
foreach($orderArray as $order)
{
$paidTime = (isset($order['PaidTime']) ? $order['PaidTime'] : '');
$shippedTime = (isset($order['ShippedTime']) ? $order['ShippedTime'] : '');
if($paidTime != "" ){
if($shippedTime == "")
array_push($itemPaidNotShipped,$order);
else
array_push($itemPaidShipped,$order);
}else{
array_push($itemNotPaidNotShipped,$order);
}
}
接受答案后编辑,这是我的排序逻辑:
foreach($orderArray as $order){
$paidTime = (isset($order['PaidTime']) ? $order['PaidTime'] : '');
$shippedTime = (isset($order['ShippedTime']) ? $order['ShippedTime'] : '');
$orderStatus = (isset($order['OrderStatus']) ? $order['OrderStatus'] : '');
if($orderStatus != "" && $orderStatus != 'Cancelled'){
if($paidTime != "" ){
if($shippedTime == "")
array_push($itemPaidNotShipped,$order);
else
array_push($itemPaidShipped,$order);
}else{
array_push($itemNotPaidNotShipped,$order);
}
}
}
无法创建仅 return 特定状态(如等待付款、等待装运或我已找到的已装运)的调用。收集过去 7 天的数据,然后尝试从那里确定付费状态,听起来您的方向是正确的。
为了确定付费状态,您需要检查 PaidTime,它可以是两个位置之一的元素。第一个是订单 (OrderArray.Order.PaidTime),第二个是交易 (OrderArray.Order.TransactionArray.Transaction.PaidTime)。 PaidTime 是有条件的 returned,这意味着如果不支付它就不会 returned。如果您解析 PaidTime 并且它不存在/未 returned 或 returned 并且没有值存在,则该项目被视为未付款/等待付款。如果存在时间,则付款已收到并被视为已付款。
我相信已完成 returns 已付款订单的 OrderStatus。您可以忽略 OrderStatus 以接收所有订单,无论状态如何或请求 Active 以获取未付款的订单。
如果您是 Selling Manager Pro 订阅者,则可以使用 GetSellingManagerSoldListings 调用
http://developer.ebay.com/Devzone/xml/docs/Reference/ebay/GetSellingManagerSoldListings.html
它有一个过滤字段
<Filter> SellingManagerSoldListingsPropertyTypeCodeType </Filter>
您可以在此处找到这些值
http://developer.ebay.com/Devzone/xml/docs/Reference/ebay/extra/GtSllngMngrSldLstngsRqst.Fltr.html
我使用 GetOrders 调用; GetSellingManagerSoldListings 调用包括以下内容:
注意:此调用如有更改,恕不另行通知;弃用过程不适用于此调用。