UpdateOrderList Returning "Unknown Error -30 for OrderStatusMessage

41 views
Skip to first unread message

Jimmy

unread,
Mar 5, 2012, 9:01:29 PM3/5/12
to ca...@googlegroups.com
The response object for a callout to the UpdateOrderList method I am getting this:

object(stdClass)#3 (1) {          
         ["UpdateOrderListResult"]=> object(stdClass)#4 (3) {                   
                  ["Status"]=> string(7) "Success" 
                  ["MessageCode"]=> int(0) 
                  ["ResultData"]=> object(stdClass)#5 (1) {                            
                           ["OrderUpdateResponse"]=> object(stdClass)#6 (8) {                                     
                                    ["FlagAndNotesSuccess"]=> bool(false) 
                                    ["FlagAndNotesMessage"]=> string(46) "No flag or transaction note data was submitted" 
                                    ["OrderStatusSuccess"]=> bool(false) 
                                    ["OrderStatusMessage"]=> string(17) "Unknown Error -30" 
                                    ["ShippingAndCOIDSuccess"]=> bool(false) 
                                    ["ShippingAndCOIDMessage"]=> string(61) "No new client order identifier or shipping data was submitted" 
                                    ["BillingAndPaymentSuccess"]=> bool(false) 
                                    ["BillingAndPaymentMessage"]=> string(69) "Billing and payment data are both required in order to make an update" 
                           }                            
                  }                   
         }          
}

They key is the Unknown Error for the "OrderStatusMessage" field.  What does this mean?

To give you some more information, the callout I am doing has this structure for the updateOrderSubmitList

[0]=> array(2) {                   

                  ["OrderID"]=> string(19) "xxx-xxxxxx-xxxxxx" 
                  ["OrderStatusUpdate"]=> array(2) {                            
                           ["CheckoutPaymentStatus"]=> string(29) "CheckoutCanceledPaymentFailed" 
                           ["ShippingStatus"]=> string(8) "NoChange" 
                  }                   
         }          
}

Also, on another note, this only happens to amazon orders.  It does not happen to eBay orders.  eBay orders work just fine and update the status no problem with this same structure.

Thanks for any help.

Jimmy

[CA] Marshall McClure

unread,
Mar 6, 2012, 10:49:07 AM3/6/12
to ChannelAdvisor Developer Network
OrderID is an integer. I am very surprised that you did not receive a
SOAP error for violating the WSDL. It looks like you are submitting
the ClientOrderIdentifier, but UpdateOrderList requires the
ChannelAdvisor OrderID. For eBay orders, you lucked out. Because
eBay doesn't give us a ClientOrderIdentifier, we default that field to
our OrderID value.

The message you received indicates that an error occurred when then
system tried to retrieve the current status of the order, which makes
sense given that you submitted the incorrect identifier. Since the
message you received is completely unhelpful, I will make sure there
is a better one in the future.

Why are you trying to update Checkout Status to Canceled and Payment
Status to Failed for an Amazon order, anyway? If your intention is to
cancel the order, that is done by submitting a full refund request
prior to shipment. The order status will be updated automatically
when the cancellation is processed, so there is no need for you to do
it yourself.

On Mar 5, 9:01 pm, Jimmy <zyma...@gmail.com> wrote:
> The response object for a callout to the UpdateOrderList method I am
> getting this:
>
> object(stdClass)#3 (1) {
>          ["UpdateOrderListResult"]=> object(stdClass)#4 (3)
> {
>                   ["Status"]=> string(7) "Success"
>                   ["MessageCode"]=> int(0)
>                   ["ResultData"]=> object(stdClass)#5 (1)
> {
>                            ["OrderUpdateResponse"]=> object(stdClass)#6 (8)
> {
>                                     ["FlagAndNotesSuccess"]=> bool(false)
>                                     ["FlagAndNotesMessage"]=> string(46)
> "No flag or transaction note data was submitted"
>                                     ["OrderStatusSuccess"]=> bool(false)
>                                     ["OrderStatusMessage"]=> string(17) *"Unknown
> Error -30"*

Jimmy

unread,
Mar 6, 2012, 12:31:28 PM3/6/12
to ca...@googlegroups.com
I am trying to update the order status to cancelled for amazon,buy.com, and eBay orders to "Cancelled" because they were incorrectly cancelled outside of the channeladvisor system.  So CA will never find out about the refunds, partial refunds, and/or cancellations that happened at the marketplace level.  So these orders just continuously get pulled by our api calls that pull in orders for actual processing.  We need to stop this by marking these orders as cancelled... but without giving the customers additional refunds.   It is my understanding that the only way to do this is to update the order status.  If we do "SubmitOrderRefund" what will happen is some customers will get refunded extra amounts they shouldn't be refunded. 

An example of this would be a customer who already got a partial refund outside of channeladvisor, and then we try to mirror that partial refund in CA, and the customer gets the same refund twice.

So we need a way to properly mark these orders as ones that don't need to get pulled via the api anymore, because right now they will be pulled for eternity if we don't do something about this. 

Going further, we don't plan to do any more refunds "outside of CA", but we do need to make a correction for the ones that did happen in the past.

Are we going about this the correct way?

Thanks,
Jimmy

[CA] Marshall McClure

unread,
Mar 6, 2012, 1:31:58 PM3/6/12
to ca...@googlegroups.com
Yes, that's fine.  If your main concern is filtering out orders you don't want to see anymore, you could just use SetOrdersExportStatus and an Export State filter in your GetOrderList calls.
Reply all
Reply to author
Forward
0 new messages