4

I've been trying, without any success, to acquire a list of products via the API that meet a certain criteria. Our catalog is made up of products which we stock in-house and some that we drop ship. For those that we stock in house, 'manage stock' is set to 'yes' (1), and those are the ones I would like to get in my result set. I've tried setting my complex filter a few different ways with no luck (one example below):

$filter = array (
    'complex_filter' => array (
        array (
            'key' => 'manage_stock',
            'value' => array ('key' => 'in', 'value' => 'Yes')
        )
    )
);

$result = $proxy->catalogProductList($sessionId, $filter);

All variations of the above that I have tried result in a fatal error:

Fatal error:  Uncaught SoapFault exception: [SOAP-ENV:Server] Call to a member function getBackend() on a non-object

And the stack trace doesn't give me any info as to what I might be doing wrong. Does someone have some insight into this, or if it is even possible? Thanks in advance.

2

Add the filter to your call

$result = $proxy->catalogProductList($sessionId, $filter);

Also I assume that you already have a $sessionId and you have your soap client setup $proxy Yeh?

Also the user that you login with the soap client with, ensure that has correct permissions.

| improve this answer | |
  • Sorry, I should have included that in my post. I'll fix that now. I had been including the $filter, but removed it to make sure the filter was causing the problem (without the filter, the code works fine and I get all products returned). – John Nov 25 '14 at 19:08
  • Can you catch the soap fault correctly and give full output and code. – Matt The Ninja Nov 25 '14 at 19:16
  • 1
    Also try a Boolean value of true instead of 'yes'. – Matt The Ninja Nov 25 '14 at 19:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.