eBay API VariationSpecifics возвращает только одну вариацию вместо всех - PullRequest
0 голосов
/ 27 января 2019

Итак, я успешно создал PHP Script для извлечения всех данных, которые мне нужны, из моей учетной записи eBay, теперь проблема в том, что мои элементы имеют несколько вариантов, таких как размер, цвет и т. Д., Но вместо размера и цвета отображается только размер

Это то, что я вижу на вкладке «Заказы»

Color:Cranberry / WhiteSize:M 12
Custom label (SKU): AA021_M _Cr

, но когда я звоню, я получаю только ответ

SizeM 12

Вот мой код

<?php
/*  © 2013 eBay Inc., All Rights Reserved */ 
/* Licensed under CDDL 1.0 -  http://opensource.org/licenses/cddl1.php */
header("Content-Type: text/plain; charset=UTF-8");
//$response = simplexml_import_dom($responseDoc);
if ($entries == 0) {
    echo "Sorry No entries found in the Time period requested. Change CreateTimeFrom/CreateTimeTo and Try again";
} else {
    $orders = $response->OrderArray->Order;
    if($orders != null){
    foreach($orders as $order){
        if (date("d/m/Y", strtotime($order->ShippedTime)) == '01/01/1970' 
                and $order->OrderStatus != 'Active' and $order->OrderStatus != 'Cancelled' ) {

            echo "Record -> ".$order->ShippingDetails->SellingManagerSalesRecordNumber."\n";
            $transactions = $order->TransactionArray;
            if($transactions){
                foreach($transactions->Transaction as $transaction){
                    echo $VariationSpecyficsName = $transaction->Variation->VariationSpecifics->NameValueList->Name;
                    echo $VariationSpecyficsValue = $transaction->Variation->VariationSpecifics->NameValueList->Value;
                }//foreach transactions as transaction
            }//if transactions
            echo "------\n";

        }//if date and status matches
    }//foreach orders as order
    }//if orders null
    else{
        echo "No Orders";
    }//else no orders
}//end
?>

Ответ ниже

Хорошо, я разобрался с ним, но если кто-нибудь знает какое-либо лучшее решение, пожалуйста, напишите мне.

<?php
/*  © 2013 eBay Inc., All Rights Reserved */ 
/* Licensed under CDDL 1.0 -  http://opensource.org/licenses/cddl1.php */
header("Content-Type: text/plain; charset=UTF-8");
//$response = simplexml_import_dom($responseDoc);
if ($entries == 0) {
    echo "Sorry No entries found in the Time period requested. Change CreateTimeFrom/CreateTimeTo and Try again";
} else {
    $orders = $response->OrderArray->Order;
    if($orders != null){
    foreach($orders as $order){
        if (date("d/m/Y", strtotime($order->ShippedTime)) == '01/01/1970' 
                and $order->OrderStatus != 'Active' and $order->OrderStatus != 'Cancelled' ) {

            echo "Record -> ".$order->ShippingDetails->SellingManagerSalesRecordNumber."\n";
            $transactions = $order->TransactionArray;
            if($transactions){
                foreach($transactions->Transaction as $transaction){
                    $variations = $transaction->Variation;
                    foreach($variations as $variation){
                        foreach($variation as $vspecs ){
                            foreach($vspecs as $nvl){
                                echo $nvl->Name;
                                echo $nvl->Value;
                            }
                        }
                    }
                }//foreach transactions as transaction
            }//if transactions
            echo "------\n";

        }//if date and status matches
    }//foreach orders as order
    }//if orders null
    else{
        echo "No Orders";
    }//else no orders
}//end
?>
...