无法 return 使用 GetSellingManagerSaleRecord 的正确订单
Cannot return the correct order with GetSellingManagerSaleRecord
我在 devbay.net 使用 PHP 的 eBay SDK。
首先我正在加载 GetSellingManagerSoldListings,搜索 SaleRecordID=129317:
$service = new TradingService();
$request = new Types\GetSellingManagerSoldListingsRequestType();
$request->Search = new Types\SellingManagerSearchType();
$request->Search->SearchType = 'SaleRecordID';
$request->Search->SearchValue = '129317';
$result = $service->GetSellingManagerSoldListings($request);
print_r($result->SaleRecord[0]);
给出以下响应:
DTS\eBaySDK\Trading\Types\SellingManagerSoldOrderType Object
(
[values:DTS\eBaySDK\Types\BaseType:private] => Array
(
[SellingManagerSoldTransaction] => DTS\eBaySDK\Types\UnboundType Object
(
[data:DTS\eBaySDK\Types\UnboundType:private] => Array
(
[0] => DTS\eBaySDK\Trading\Types\SellingManagerSoldTransactionType Object
(
[values:DTS\eBaySDK\Types\BaseType:private] => Array
(
[TransactionID] => *removed*
[SaleRecordID] => 129242
[ItemID] => *removed*
[QuantitySold] => 1
[ItemTitle] => *removed*
[ListingType] => FixedPriceItem
[Relisted] =>
[SecondChanceOfferSent] =>
[CustomLabel] => *removed*
[SoldOn] => eBay
[ListedOn] => DTS\eBaySDK\Types\UnboundType Object
(
[data:DTS\eBaySDK\Types\UnboundType:private] => Array
(
[0] => eBay
)
[position:DTS\eBaySDK\Types\UnboundType:private] => 0
[class:DTS\eBaySDK\Types\UnboundType:private] => DTS\eBaySDK\Trading\Types\SellingManagerSoldTransactionType
[property:DTS\eBaySDK\Types\UnboundType:private] => ListedOn
[expectedType:DTS\eBaySDK\Types\UnboundType:private] => string
)
[CharityListing] =>
[OrderLineItemID] => *removed*
)
[attachment:DTS\eBaySDK\Types\BaseType:private] => Array
(
[data] =>
[mimeType] =>
)
)
[1] => DTS\eBaySDK\Trading\Types\SellingManagerSoldTransactionType Object
(
[values:DTS\eBaySDK\Types\BaseType:private] => Array
(
[TransactionID] => *removed*
[SaleRecordID] => 129243
[ItemID] => *removed*
[QuantitySold] => 1
[ItemTitle] => *removed*
[ListingType] => FixedPriceItem
[Relisted] =>
[SecondChanceOfferSent] =>
[CustomLabel] => *removed*
[SoldOn] => eBay
[ListedOn] => DTS\eBaySDK\Types\UnboundType Object
(
[data:DTS\eBaySDK\Types\UnboundType:private] => Array
(
[0] => eBay
)
[position:DTS\eBaySDK\Types\UnboundType:private] => 0
[class:DTS\eBaySDK\Types\UnboundType:private] => DTS\eBaySDK\Trading\Types\SellingManagerSoldTransactionType
[property:DTS\eBaySDK\Types\UnboundType:private] => ListedOn
[expectedType:DTS\eBaySDK\Types\UnboundType:private] => string
)
[CharityListing] =>
[OrderLineItemID] => *removed*
)
[attachment:DTS\eBaySDK\Types\BaseType:private] => Array
(
[data] =>
[mimeType] =>
)
)
)
[position:DTS\eBaySDK\Types\UnboundType:private] => 0
[class:DTS\eBaySDK\Types\UnboundType:private] => DTS\eBaySDK\Trading\Types\SellingManagerSoldOrderType
[property:DTS\eBaySDK\Types\UnboundType:private] => SellingManagerSoldTransaction
[expectedType:DTS\eBaySDK\Types\UnboundType:private] => DTS\eBaySDK\Trading\Types\SellingManagerSoldTransactionType
)
[ShippingAddress] => DTS\eBaySDK\Trading\Types\AddressType Object
(
[values:DTS\eBaySDK\Types\BaseType:private] => Array
(
[Name] => *removed*
[PostalCode] => 2761
)
[attachment:DTS\eBaySDK\Types\BaseType:private] => Array
(
[data] =>
[mimeType] =>
)
)
[ShippingDetails] => DTS\eBaySDK\Trading\Types\ShippingDetailsType Object
(
[values:DTS\eBaySDK\Types\BaseType:private] => Array
(
[ShippingType] => NotSpecified
)
[attachment:DTS\eBaySDK\Types\BaseType:private] => Array
(
[data] =>
[mimeType] =>
)
)
[TotalAmount] => DTS\eBaySDK\Trading\Types\AmountType Object
(
[values:DTS\eBaySDK\Types\BaseType:private] => Array
(
[currencyID] => AUD
[value] => 294.95
)
[attachment:DTS\eBaySDK\Types\BaseType:private] => Array
(
[data] =>
[mimeType] =>
)
)
[TotalQuantity] => 2
[ActualShippingCost] => DTS\eBaySDK\Trading\Types\AmountType Object
(
[values:DTS\eBaySDK\Types\BaseType:private] => Array
(
[currencyID] => AUD
[value] => 0
)
[attachment:DTS\eBaySDK\Types\BaseType:private] => Array
(
[data] =>
[mimeType] =>
)
)
[OrderStatus] => DTS\eBaySDK\Trading\Types\SellingManagerOrderStatusType Object
(
[values:DTS\eBaySDK\Types\BaseType:private] => Array
(
[CheckoutStatus] => CheckoutComplete
[PaidStatus] => PartiallyPaid
[ShippedStatus] => Shipped
[PaymentMethodUsed] => PayPal
[FeedbackSent] => 1
[TotalEmailsSent] => 3
[ShippedTime] => DateTime Object
(
[date] => 2015-04-06 21:10:09
[timezone_type] => 2
[timezone] => Z
)
)
[attachment:DTS\eBaySDK\Types\BaseType:private] => Array
(
[data] =>
[mimeType] =>
)
)
[SalePrice] => DTS\eBaySDK\Trading\Types\AmountType Object
(
[values:DTS\eBaySDK\Types\BaseType:private] => Array
(
[currencyID] => AUD
[value] => 589.9
)
[attachment:DTS\eBaySDK\Types\BaseType:private] => Array
(
[data] =>
[mimeType] =>
)
)
[DaysSinceSale] => 5
[BuyerID] => *removed*
[BuyerEmail] => *removed*
[SaleRecordID] => 129317
[CreationTime] => DateTime Object
(
[date] => 2015-04-03 10:19:48
[timezone_type] => 2
[timezone] => Z
)
)
[attachment:DTS\eBaySDK\Types\BaseType:private] => Array
(
[data] =>
[mimeType] =>
)
)
接下来我要加载相关的GetSellingManagerSaleRecord。问题是我找不到可以加载正确记录的 ID 组合。这是我的尝试:
加载错误结果,SalesRecordID=129242 ..我需要 129317:
$service = new TradingService();
$request = new Types\GetSellingManagerSaleRecordRequestType();
$request->OrderLineItemID = $result->SaleRecord[0]->SellingManagerSoldTransaction[0]->OrderLineItemID;
$result2 = $service->GetSellingManagerSaleRecord($request);
加载错误结果,SalesRecordID=129243 ..我需要 129317:
$service = new TradingService();
$request = new Types\GetSellingManagerSaleRecordRequestType();
$request->OrderLineItemID = $result->SaleRecord[0]->SellingManagerSoldTransaction[1]->OrderLineItemID;
$result2 = $service->GetSellingManagerSaleRecord($request);
错误代码21916340,销售记录不存在:
$service = new TradingService();
$request = new Types\GetSellingManagerSaleRecordRequestType();
$transaction = $result->SaleRecord[0]->SellingManagerSoldTransaction[0];
$request->OrderLineItemID = $transaction->ItemID . '-' . $transaction->TransactionID;
$result2 = $service->GetSellingManagerSaleRecord($request);
错误代码21916340,销售记录不存在:
$service = new TradingService();
$request = new Types\GetSellingManagerSaleRecordRequestType();
$request->OrderID = $result->SaleRecord[0]->SaleRecordID;
$result2 = $service->GetSellingManagerSaleRecord($request);
错误代码21916340,销售记录不存在:
$service = new TradingService();
$request = new Types\GetSellingManagerSaleRecordRequestType();
$transaction = $result->SaleRecord[0]->SellingManagerSoldTransaction[0];
$request->ItemID = $transaction->ItemID;
$request->TransactionID = $transaction->TransactionID;
$result2 = $service->GetSellingManagerSaleRecord($request);
我不太熟悉 eBay 的售后方面 API 但根据您想要实现的目标,以下可能会奏效。
由于 GetSellingManagerSaleRecord 不允许您传递已知的 SaleRecordID,您可以向其发送 OrderID instead. As each SaleRecord has an associated Order you can get it's ID by using GetOrders.
$service = new TradingService();
$request = new Types\GetSellingManagerSoldListingsRequestType();
$request->Search = new Types\SellingManagerSearchType();
$request->Search->SearchType = 'SaleRecordID';
$request->Search->SearchValue = '129317';
$response = $service->GetSellingManagerSoldListings($request);
/**
* Get the OrderLineItemID of the first transaction in the Sale Record.
* This would work as well as all the transactions will come from the same order.
* $orderLineItemID = $response->SaleRecord[0]->SellingManagerSoldTransaction[1]->OrderLineItemID;
*/
$orderLineItemID = $response->SaleRecord[0]->SellingManagerSoldTransaction[0]->OrderLineItemID;
/**
* Now look up the order.
*/
$request = new Types\GetOrdersRequestType();
$request->OrderIDArray = new Types\OrderIDArrayType();
$request->OrderIDArray->OrderID[] = $orderLineItemID;
$response = $service->getOrders($request);
$orderID = $response->OrderArray->Order[0]->OrderID;
/**
* Now use the OrderID to call GetSellingManagerSaleRecord.
*/
$request = new Types\GetSellingManagerSaleRecordRequestType();
$request->OrderID = $orderID;
$response = $service->getSellingManagerSaleRecord($request);
/**
* Check we got the correct SaleRecord.
*/
$saleRecordID = $response->SellingManagerSoldOrder->SaleRecordID;
assert('$saleRecordID === 129317');
除了调用 GetSellingManagerSoldListings 之外,您还可以调用 GetOrders 来获取 SaleRecordID 列表。例如:
$request = new Types\GetOrdersRequestType();
$request->NumberOfDays = 30;
$response = $service->getOrders($request);
foreach ($response->OrderArray->Order as $order) {
printf("SaleRecordID %s\n", $order->ShippingDetails->SellingManagerSalesRecordNumber);
}
我在 devbay.net 使用 PHP 的 eBay SDK。
首先我正在加载 GetSellingManagerSoldListings,搜索 SaleRecordID=129317:
$service = new TradingService();
$request = new Types\GetSellingManagerSoldListingsRequestType();
$request->Search = new Types\SellingManagerSearchType();
$request->Search->SearchType = 'SaleRecordID';
$request->Search->SearchValue = '129317';
$result = $service->GetSellingManagerSoldListings($request);
print_r($result->SaleRecord[0]);
给出以下响应:
DTS\eBaySDK\Trading\Types\SellingManagerSoldOrderType Object
(
[values:DTS\eBaySDK\Types\BaseType:private] => Array
(
[SellingManagerSoldTransaction] => DTS\eBaySDK\Types\UnboundType Object
(
[data:DTS\eBaySDK\Types\UnboundType:private] => Array
(
[0] => DTS\eBaySDK\Trading\Types\SellingManagerSoldTransactionType Object
(
[values:DTS\eBaySDK\Types\BaseType:private] => Array
(
[TransactionID] => *removed*
[SaleRecordID] => 129242
[ItemID] => *removed*
[QuantitySold] => 1
[ItemTitle] => *removed*
[ListingType] => FixedPriceItem
[Relisted] =>
[SecondChanceOfferSent] =>
[CustomLabel] => *removed*
[SoldOn] => eBay
[ListedOn] => DTS\eBaySDK\Types\UnboundType Object
(
[data:DTS\eBaySDK\Types\UnboundType:private] => Array
(
[0] => eBay
)
[position:DTS\eBaySDK\Types\UnboundType:private] => 0
[class:DTS\eBaySDK\Types\UnboundType:private] => DTS\eBaySDK\Trading\Types\SellingManagerSoldTransactionType
[property:DTS\eBaySDK\Types\UnboundType:private] => ListedOn
[expectedType:DTS\eBaySDK\Types\UnboundType:private] => string
)
[CharityListing] =>
[OrderLineItemID] => *removed*
)
[attachment:DTS\eBaySDK\Types\BaseType:private] => Array
(
[data] =>
[mimeType] =>
)
)
[1] => DTS\eBaySDK\Trading\Types\SellingManagerSoldTransactionType Object
(
[values:DTS\eBaySDK\Types\BaseType:private] => Array
(
[TransactionID] => *removed*
[SaleRecordID] => 129243
[ItemID] => *removed*
[QuantitySold] => 1
[ItemTitle] => *removed*
[ListingType] => FixedPriceItem
[Relisted] =>
[SecondChanceOfferSent] =>
[CustomLabel] => *removed*
[SoldOn] => eBay
[ListedOn] => DTS\eBaySDK\Types\UnboundType Object
(
[data:DTS\eBaySDK\Types\UnboundType:private] => Array
(
[0] => eBay
)
[position:DTS\eBaySDK\Types\UnboundType:private] => 0
[class:DTS\eBaySDK\Types\UnboundType:private] => DTS\eBaySDK\Trading\Types\SellingManagerSoldTransactionType
[property:DTS\eBaySDK\Types\UnboundType:private] => ListedOn
[expectedType:DTS\eBaySDK\Types\UnboundType:private] => string
)
[CharityListing] =>
[OrderLineItemID] => *removed*
)
[attachment:DTS\eBaySDK\Types\BaseType:private] => Array
(
[data] =>
[mimeType] =>
)
)
)
[position:DTS\eBaySDK\Types\UnboundType:private] => 0
[class:DTS\eBaySDK\Types\UnboundType:private] => DTS\eBaySDK\Trading\Types\SellingManagerSoldOrderType
[property:DTS\eBaySDK\Types\UnboundType:private] => SellingManagerSoldTransaction
[expectedType:DTS\eBaySDK\Types\UnboundType:private] => DTS\eBaySDK\Trading\Types\SellingManagerSoldTransactionType
)
[ShippingAddress] => DTS\eBaySDK\Trading\Types\AddressType Object
(
[values:DTS\eBaySDK\Types\BaseType:private] => Array
(
[Name] => *removed*
[PostalCode] => 2761
)
[attachment:DTS\eBaySDK\Types\BaseType:private] => Array
(
[data] =>
[mimeType] =>
)
)
[ShippingDetails] => DTS\eBaySDK\Trading\Types\ShippingDetailsType Object
(
[values:DTS\eBaySDK\Types\BaseType:private] => Array
(
[ShippingType] => NotSpecified
)
[attachment:DTS\eBaySDK\Types\BaseType:private] => Array
(
[data] =>
[mimeType] =>
)
)
[TotalAmount] => DTS\eBaySDK\Trading\Types\AmountType Object
(
[values:DTS\eBaySDK\Types\BaseType:private] => Array
(
[currencyID] => AUD
[value] => 294.95
)
[attachment:DTS\eBaySDK\Types\BaseType:private] => Array
(
[data] =>
[mimeType] =>
)
)
[TotalQuantity] => 2
[ActualShippingCost] => DTS\eBaySDK\Trading\Types\AmountType Object
(
[values:DTS\eBaySDK\Types\BaseType:private] => Array
(
[currencyID] => AUD
[value] => 0
)
[attachment:DTS\eBaySDK\Types\BaseType:private] => Array
(
[data] =>
[mimeType] =>
)
)
[OrderStatus] => DTS\eBaySDK\Trading\Types\SellingManagerOrderStatusType Object
(
[values:DTS\eBaySDK\Types\BaseType:private] => Array
(
[CheckoutStatus] => CheckoutComplete
[PaidStatus] => PartiallyPaid
[ShippedStatus] => Shipped
[PaymentMethodUsed] => PayPal
[FeedbackSent] => 1
[TotalEmailsSent] => 3
[ShippedTime] => DateTime Object
(
[date] => 2015-04-06 21:10:09
[timezone_type] => 2
[timezone] => Z
)
)
[attachment:DTS\eBaySDK\Types\BaseType:private] => Array
(
[data] =>
[mimeType] =>
)
)
[SalePrice] => DTS\eBaySDK\Trading\Types\AmountType Object
(
[values:DTS\eBaySDK\Types\BaseType:private] => Array
(
[currencyID] => AUD
[value] => 589.9
)
[attachment:DTS\eBaySDK\Types\BaseType:private] => Array
(
[data] =>
[mimeType] =>
)
)
[DaysSinceSale] => 5
[BuyerID] => *removed*
[BuyerEmail] => *removed*
[SaleRecordID] => 129317
[CreationTime] => DateTime Object
(
[date] => 2015-04-03 10:19:48
[timezone_type] => 2
[timezone] => Z
)
)
[attachment:DTS\eBaySDK\Types\BaseType:private] => Array
(
[data] =>
[mimeType] =>
)
)
接下来我要加载相关的GetSellingManagerSaleRecord。问题是我找不到可以加载正确记录的 ID 组合。这是我的尝试:
加载错误结果,SalesRecordID=129242 ..我需要 129317:
$service = new TradingService();
$request = new Types\GetSellingManagerSaleRecordRequestType();
$request->OrderLineItemID = $result->SaleRecord[0]->SellingManagerSoldTransaction[0]->OrderLineItemID;
$result2 = $service->GetSellingManagerSaleRecord($request);
加载错误结果,SalesRecordID=129243 ..我需要 129317:
$service = new TradingService();
$request = new Types\GetSellingManagerSaleRecordRequestType();
$request->OrderLineItemID = $result->SaleRecord[0]->SellingManagerSoldTransaction[1]->OrderLineItemID;
$result2 = $service->GetSellingManagerSaleRecord($request);
错误代码21916340,销售记录不存在:
$service = new TradingService();
$request = new Types\GetSellingManagerSaleRecordRequestType();
$transaction = $result->SaleRecord[0]->SellingManagerSoldTransaction[0];
$request->OrderLineItemID = $transaction->ItemID . '-' . $transaction->TransactionID;
$result2 = $service->GetSellingManagerSaleRecord($request);
错误代码21916340,销售记录不存在:
$service = new TradingService();
$request = new Types\GetSellingManagerSaleRecordRequestType();
$request->OrderID = $result->SaleRecord[0]->SaleRecordID;
$result2 = $service->GetSellingManagerSaleRecord($request);
错误代码21916340,销售记录不存在:
$service = new TradingService();
$request = new Types\GetSellingManagerSaleRecordRequestType();
$transaction = $result->SaleRecord[0]->SellingManagerSoldTransaction[0];
$request->ItemID = $transaction->ItemID;
$request->TransactionID = $transaction->TransactionID;
$result2 = $service->GetSellingManagerSaleRecord($request);
我不太熟悉 eBay 的售后方面 API 但根据您想要实现的目标,以下可能会奏效。
由于 GetSellingManagerSaleRecord 不允许您传递已知的 SaleRecordID,您可以向其发送 OrderID instead. As each SaleRecord has an associated Order you can get it's ID by using GetOrders.
$service = new TradingService();
$request = new Types\GetSellingManagerSoldListingsRequestType();
$request->Search = new Types\SellingManagerSearchType();
$request->Search->SearchType = 'SaleRecordID';
$request->Search->SearchValue = '129317';
$response = $service->GetSellingManagerSoldListings($request);
/**
* Get the OrderLineItemID of the first transaction in the Sale Record.
* This would work as well as all the transactions will come from the same order.
* $orderLineItemID = $response->SaleRecord[0]->SellingManagerSoldTransaction[1]->OrderLineItemID;
*/
$orderLineItemID = $response->SaleRecord[0]->SellingManagerSoldTransaction[0]->OrderLineItemID;
/**
* Now look up the order.
*/
$request = new Types\GetOrdersRequestType();
$request->OrderIDArray = new Types\OrderIDArrayType();
$request->OrderIDArray->OrderID[] = $orderLineItemID;
$response = $service->getOrders($request);
$orderID = $response->OrderArray->Order[0]->OrderID;
/**
* Now use the OrderID to call GetSellingManagerSaleRecord.
*/
$request = new Types\GetSellingManagerSaleRecordRequestType();
$request->OrderID = $orderID;
$response = $service->getSellingManagerSaleRecord($request);
/**
* Check we got the correct SaleRecord.
*/
$saleRecordID = $response->SellingManagerSoldOrder->SaleRecordID;
assert('$saleRecordID === 129317');
除了调用 GetSellingManagerSoldListings 之外,您还可以调用 GetOrders 来获取 SaleRecordID 列表。例如:
$request = new Types\GetOrdersRequestType();
$request->NumberOfDays = 30;
$response = $service->getOrders($request);
foreach ($response->OrderArray->Order as $order) {
printf("SaleRecordID %s\n", $order->ShippingDetails->SellingManagerSalesRecordNumber);
}