All Posts Tagged With: "ebay"

eBay Category of the Week: Cemetery Plots

We really do sell everything: Everything Else -> Funeral & Cemetery -> Cemetery Plots

Services_Ebay

My man Stephan Schmidt just released the first version of a kick ass eBay API PEAR package for PHP. Our XML Web services API is pretty easy to use technically, but we don’t go a great job integrating all 70+ API calls into a coherant structure.

When Stephan designed Services_Ebay, he took a step back and looked at how all the different calls should play together. This allowed him to implement a very slick object-oriented package that makes it simple to use eBay from PHP.

There are still a few tricky bits to figure out, but I’m quite impressed with what he’s done so far. Check it out. It uses lots of new PHP 5 features, such as __call() and iterators, to simplify the code, so it’s a great way for you to look at why you should be Upgrading to PHP 5. (Okay, I couldn’t resist the plug.)

World Tour: Utah PHP

Do you love PHP? Do you love eBay? Do you live in Utah? If you answered “yes” to all three questions, then you don’t want to miss the next stop on my world tour.

Next Tuesday, October 19, I will be visiting the Utah PHP Users Group to give a talk on Developing Applications on the eBay Platform with PHP. Start time is 7 PM and we’ll go until 8:30.

O’Reilly has arranged to send a carton-load of books, and I will be bringing a bag full of eBay schwag, so they’ll be giveaways gallore!

Web 2.0

In case you’re interested in Web 2.0, Jeremy Zawodny is blogging up a storm.

Success! eBaySOAP class almost ready

After a Titanic struggle, I have managed to make a successful SOAP call to eBay using PEAR::SOAP. I’m in the process of cleaning up my code, but once it’s all nice, I’ll release version 0.1 of eBaySOAP.

Right now PHP 5 is a requirement, since I ended up aggregating the SOAP client inside a PHP class to make things easier for developers. For some reason, PEAR::SOAP isn’t setting a namespace for our parameters, so I need to intercept any parameters and create SOAP_Value objects for them with the proper namespace. If I use __call(), I can step in and do this transparently and you’re none the wiser.

I bet I can backport this to PHP 4, if I use the overload extension. It shouldn’t be too hard, especially as I’m using the PHP 4 version of PEAR::SOAP.

I also had to make a small patch to PEAR::SOAP. Right now, if PEAR::SOAP sees a namespace with a colon (:) in it, it presumes it’s a qualified name (qname for short) of the format prefix:localpart. In eBay’s case, we have a namespace of urn:ebay:API:eBayAPI. This isn’t a qname, but PEAR::SOAP thinks it is and incorrectly breaks it apart. My patch checks to see if the namespace beings with urn: and tells PEAR::SOAP to ignore it.

I need to do some digging to see exactly why PEAR::SOAP does this and why it doesn’t break namespaces that look like URLs also.

So, next steps:

  1. Clean up code and release eBaySOAP.
  2. Submit patch to PEAR::SOAP.
  3. Backport eBaySOAP to work with PHP 4.
  4. Investigate PHP 5 version of PEAR::SOAP.
  5. Investigate ext/SOAP extension in greater detail. I’ve done some preliminary work here, but I’m finding bugs and they’re hard to fix at work since I’m using Windows.
  6. Look to patch PEAR::SOAP to automatically add the correct namespace to parameters, so I don’t need to do it myself.
  7. Write up an article, so everyone can learn how cool eBaySOAP is.
  8. Profit!

If you’re interested in this topic, please add your feedback below, so I can use it to guide my to do list.

eBay WSDL Hacking

As part of my job, I’ve been playing around with eBay’s SOAP interface. My mission is to get PHP to play nicely with our SOAP server because right now we only have working examples in .NET and Java and that’s not a very good situation at all.

So far, it’s been tough going. We do quite a few, shall I say, odd things. For instance, we require you to override the location attribute within the service defined in our WSDL file. Right now, you can’t do that using the soap extension. I think the extension (or its author) expects you’d set the SOAPAction, but that’s not how we’re set up.

We also require you to define a SOAP Header that contains your authentication credentials. Apparently, there are licensing issues around the WS-Security standard.

As a result, I’ve been using the non-WSDL feature of SOAPClient, which requires me to use the ugly __call() method. Things are going slowly, but surely. I’ve managed to contruct the SOAP Header, but for some reason the SOAP Body isn’t being correctly generated.

Oh well. Looks like I know what I’ll be working on in the back of any slow going OSCON sessions.

Cross Platform Web Services for eCommerce

In my capacity of a Technical Evangelist for eBay, I will be speaking at LinuxWorldExpo on August 4th at 3:45 on Cross Platform Web Services for eCommerce. In other words, I’ll show you how to use the eBay API to build applications using PHP. If you’re lucky, there may even be a little bit of information on using PayPal.

New Job

I’m happy to say that today is my first day as a Technical Evangelist at eBay. I’m going to be working for Jeffrey McManus to help spread the gospel of eBay and hopefully bring a little PHP and open source knowledge to the team.