Search code examples
phpebay-api

ebay sdk - retrieving orders and sync with external DB


I am struggling, literally, trying to figure out how to use th Ebay API in order to retrieve the orders received on a specific merchant account and then store some datas in an external DB.

I have registered to developer.ebay.it, I have built a key pair, both for production and sandbox, then I have tried the api (Browse/getItem)...and then...LOST.

I cannot use the Fullfillment, because I always get a response of Insufficient authorization, even if I create a token, even if I put a real order number... I don't get how to question the API.

Lastly, I am using PHP and I have downloaded the davidtsadler SDK from github. How do I configure an example of getOrder with that SDK? Do you have any link, suggestions, anything?

What I find on internet is not enough clear for my level of knowledge and almost nobody deals with the getOrder call.

Thank you for your help.


Solution

  • The ebay API documentation is fairly clear on how to perform a query:

    If you wanted to get a specific Fullfillment policy, then you would need to perform a GET request to ebays Fullfillment API using the /order/{orderId} path - where {orderId} is a real order ID.

    In PHP, that might go a little something like this:

    /* Returns a JSON object containing an ebay order */
    function getOrder($order_id, $auth_key){
        $options = array(
                'http' => array(
                        'method' => "GET",
                        'header' => "Authorization: Bearer ".$auth_key."\r\n" .
                                    "Content-Type: application/json"
    
            )
        );
    
        $context = stream_context_create($options);
        $result = file_get_contents("https://api.ebay.com/sell/fulfillment/v1/order/".$order_id, false, $context);
        return json_decode($result);
    }
    

    Then you could call the method above and retrieve an order using:

    $order = getOrder("A REAL ORDER ID", "YOUR AUTH KEY");
    

    The $order variable now holds a JSON object. You can print info from the object using: (This example prints the username associated with the order)

    echo $order->buyer->username;
    

    Finally, please note the direct quote from ebays documentation:

    "eBay creates and displays an Application token. This token is valid for a limited time span. If you get an invalid token error when you make a call using this token, simply create a new token and use the new token in your call."