Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

If a refund has occurred, the elements "total_refunded" and "refund_dts" will always exist.  The other elements mentioned above will exist if that component of the order was refunded.

...

Log

Click the question to view the answer.

Expand
titleWhen the postback occurs does it always pass the full set of customer data including custom fields?

There is quite a bit of order information in the XML postback, including customer data and the custom fields 1-7.

Expand
titleIs there a way it identifies it self as an auto-order vs an initial order?

On an order XML postback there is an element for the auto_order information. Inside that element there is a field for auto_order_original_order_id. If that is the same as the order_id in the XML document then this is the original order in the auto order sequence. If it's different then it's a rebill.

Expand
titleJust to clarify for each successful auto-order charge it will go through the main postback URL right? (not the auto-order status change URL)

Orders go through one URL and auto order status information through another. They can be the same URL if you want to configure it that way and just teach the one script to parse the XML document and then look at the content differently.

Expand
titleFor the auto-order status change postback, do you have an XML schema for that? or is it the same as the normal postback? is their a particular field that we shouid check for?

There is not a schema file for this yet, but the easiest thing to do is configure a dummy URL, let the auto order XML postback fire, and then check the log under the XML postback configuration to see a copy of the document it tried to send.

Log

Since the information sent to your server is critical to your business operation, UltraCart records logs of each transmission. To access the logs
click on the Log button as shown below.

Image Removed

When you click on the log it will show you the order id, timestamp, and result for each transmission. Notice that we can quickly see that UltraCart
is having trouble connecting to this server.

Image Removed

For each transmission you can see what is sent to your server and what is returned as shown below.

Image Removed

Notice that UltraCart is logging the response back from your server. It only cares about the 200 result code to determine success, but logging
the response from your server allows you to output information that you can review in the logs for debugging purposes.

Warning

If UltraCart encounters 50 consecutive errors from your server, it will disable the XML postback and email you. The transmissions will queue up until you edit your XML Postback configuration.

After reviewing the logs to determine the cause of the errors. To restart the processing of the queued orders, re-save the XML PostBack settings (Click the save button on the XML Postback configuration page.)

The table below covers common HTTP result codes that UltraCart may encounter from your server.

...

The complete list can be found at http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

How do I resend historical data to my server via XML postback?

Identify the first and last order id for the range of data that you want to resend to your new XML postback URL.  Use the batch order operation utility to populate the XML postback queue.

Frequently Asked Questions (FAQ)

 

Expand
titleQ: "I notice that there's an <order> xml element, and that there could be more than one. Is it often that post backs come in with multiple orders in them?"

 A: The XML Postback transmissions are always a single order only.

...

titleQ: Are the merchant notes, special instructions, gift message, and comments transmitted in the XML document?

 A: Yes, if they are present on the order then they are populated in the XML.  We don't populate empty elements for these fields though.  The element names are:

...

titleQ: My server is returning a 500 error code. What does that mean?

...

Since the information sent to your server is critical to your business operation, UltraCart records logs of each transmission. To access the logs
click on the Log button as shown below.

Image Added

When you click on the log it will show you the order id, timestamp, and result for each transmission. Notice that we can quickly see that UltraCart
is having trouble connecting to this server.

Image Added

For each transmission you can see what is sent to your server and what is returned as shown below.

Image Added

Notice that UltraCart is logging the response back from your server. It only cares about the 200 result code to determine success, but logging
the response from your server allows you to output information that you can review in the logs for debugging purposes.

Warning

If UltraCart encounters 50 consecutive errors from your server, it will disable the XML postback and email you. The transmissions will queue up until you edit your XML Postback configuration.

After reviewing the logs to determine the cause of the errors. To restart the processing of the queued orders, re-save the XML PostBack settings (Click the save button on the XML Postback configuration page.)

The table below covers common HTTP result codes that UltraCart may encounter from your server.

CodeMeaning
200OK
301Moved Permanently
302Moved Temporarily (Redirect)
400Bad Request
401Unauthorized
403Forbidden
404Not found (the script doesn't exist on your server)
405Method Not Allowed (Your script doesn't support POST)
500Internal Error (your script blew chunks)

The complete list can be found at http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

How do I resend historical data to my server via XML postback?

Identify the first and last order id for the range of data that you want to resend to your new XML postback URL.  Use the batch order operation utility to populate the XML postback queue.

Refunds

Orders with partial refunds will report the item Id's of the refunded items, whereas complete refunds will not include the item Id's by default.


Info
titlePlease Note

If you need the complete refunds to report the item ID's in the order, contact UltraCart by emailing support@ultracart.com stating your UltraCart MerchantID requesting that we enable the merchant property "XML Postback - Skip Adjustment for Refund". 

With this property is enabled, it will prevent refunded items from being removed from the XML postback, so you will see these items in your refund transaction XML packet.

Pay close attention to these optional elements that will indicate the refunding of the item:

  • quantity_refunded
  • total_refunded 



Frequently Asked Questions (FAQ)

 

Expand
titleQ: "I notice that there's an <order> xml element, and that there could be more than one. Is it often that post backs come in with multiple orders in them?"

 A: The XML Postback transmissions are always a single order only.


Expand
titleQ: Are the merchant notes, special instructions, gift message, and comments transmitted in the XML document?

 A: Yes, if they are present on the order then they are populated in the XML.  We don't populate empty elements for these fields though.  The element names are:

  • special_instructions
  • comments
  • gift_message
  • merchant_notes

    Please consult the XML Schema for a full description of the XML document structure.


Expand
titleQ: My server is returning a 500 error code. What does that mean?

 A: When your server returns a 500 error it means that the code on the other side (your side) has experience an unhandled error condition.  Typically that is a null pointer exception, database error, etc.  Please check your server logs for further details.


Expand
titleQ: When an order is successfully charged to the customer's credit card and goes to my Fulfillment Queue, what is its XML stage state while in the queue?

 A: XML postback does not recognize that it's held in the fulfillment transmission queue. The state of the order will be the shipping department so the current_stage element in the XML will read "SD".
    (NOTE: The XML will not register a new stage change until the order is either marked as shipped (which would trigger the XML stage "CO" or if the order were to be marked as "Rejected" then the XML would read "REJ")


Expand
titleQ: When an order is successfully charged to the customer's credit card and goes to my Fulfillment Queue, what is its XML stage state while in the queue?

 A: XML postback does not recognize that it's held in the fulfillment transmission queue. The state of the order will be the shipping department so the current_stage element in the XML will read "SD".
    (NOTE: The XML will not register a new stage change until the order is either marked as shipped (which would trigger the XML stage "CO" or if the order were to be marked as "Rejected" then the XML would read "REJ")

Expand
titleQ: When an order goes to the A/R queue either because of a fraud issue or a shopping cart timed out, besides an "AR" state, did it ever have an "IN" status?

A: IN = Inserting, so it's just an initial stage while the order record is being processed. If you actually seeing these in XML postbacks to your system, email Support with the orderID for review (it's something that really should not appear in most cases.

Expand
titleQ: When that A/R order is successfully processed (credit card) and goes to the Fulfillment Held Queue?

A: In this situation, the stage changes from "AR" to "SD" and an XML postback will occur if you have it configured to send one when stages change.

Expand
titleQ: I'm trying to find if there's: (1) a flag indicating it's an auto-order AND (2) a way to tie it back to the original order?

 A: If the order is an auto order there will be these elements in the XML:

  • auto_order_code
  • auto_order_original_order_id
Expand
titleQ: Is there a postback when an Auto order is cancelled? (updated 9/1/2014)

 A: Yes. The auto order configuration now has a separate configuration field "Transmit Auto Order Status to URL when auto order changes" for auto orders. 
     If configured, auto order cancellations will trigger a XML Postback transmission when status changes.

Expand
titleQ: Our XML transmission appear to have stopped yesterday, why is that?

 A: UltraCart will disable the XML postback after 50 consecutive non HTTP 200 responses. UltraCart will continue to queue up the requests and will send them only once the merchant goes back into the XMP Postback configuration page and saves the configuration, which reset the hold and releases the queued orders from immediate transmission. (So for example if you were doing some database maintenance for an hour that interrupted the transmissions, you would need to resave the settings to get things processing again.)

Expand
titleQ: Why does the postback not happen instantaneously after the order is processed?

 A: XML postback requests are added to a queue when the order is placed.  The queue is processed asynchronously by a background job once a minute.  The number of postbacks that can be handled each cycle depends upon the throughput speed of the remote servers.  Performing the postbacks in the background makes sure a merchant's slow or unresponsive server does not destabilize the front end of the platform.  If there is a large spike in orders to the platform, the number of cycles to clear out the postback queue will vary.

Expand
titleQ: What information is in the order XML postback?

 A: The complete XSD schema file for the order XML postback is located here: http://secure.ultracart.com/xml/ultracart.xsd

 A: Yes. To configure more than one URL into one of the URL configuration fields, simply separate each URL with a SPACE. 

PLEASE NOTE: Both endpoints must be able to deal with duplicates. If any endpoint fails, the postback is marked as a failure and when retried, each endpoint gets the postback again.    
Expand
titleQ: Can I configure more than one URL within one of the three configuration fields?
goes to the A/R queue either because of a fraud issue or a shopping cart timed out, besides an "AR" state, did it ever have an "IN" status?

A: IN = Inserting, so it's just an initial stage while the order record is being processed. If you actually seeing these in XML postbacks to your system, email Support with the orderID for review (it's something that really should not appear in most cases.


Expand
titleQ: When that A/R order is successfully processed (credit card) and goes to the Fulfillment Held Queue?

A: In this situation, the stage changes from "AR" to "SD" and an XML postback will occur if you have it configured to send one when stages change.


Expand
titleQ: I'm trying to find if there's: (1) a flag indicating it's an auto-order AND (2) a way to tie it back to the original order?

 A: If the order is an auto order there will be these elements in the XML:

  • auto_order_code
  • auto_order_original_order_id


Expand
titleQ: Is there a postback when an Auto order is cancelled? (updated 9/1/2014)

 A: Yes. The auto order configuration now has a separate configuration field "Transmit Auto Order Status to URL when auto order changes" for auto orders. 
     If configured, auto order cancellations will trigger a XML Postback transmission when status changes.


Expand
titleQ: Our XML transmission appear to have stopped yesterday, why is that?

 A: UltraCart will disable the XML postback after 50 consecutive non HTTP 200 responses. UltraCart will continue to queue up the requests and will send them only once the merchant goes back into the XMP Postback configuration page and saves the configuration, which reset the hold and releases the queued orders from immediate transmission. (So for example if you were doing some database maintenance for an hour that interrupted the transmissions, you would need to resave the settings to get things processing again.)


Expand
titleQ: Why does the postback not happen instantaneously after the order is processed?

 A: XML postback requests are added to a queue when the order is placed.  The queue is processed asynchronously by a background job once a minute.  The number of postbacks that can be handled each cycle depends upon the throughput speed of the remote servers.  Performing the postbacks in the background makes sure a merchant's slow or unresponsive server does not destabilize the front end of the platform.  If there is a large spike in orders to the platform, the number of cycles to clear out the postback queue will vary.


Expand
titleQ: What information is in the order XML postback?

 A: The complete XSD schema file for the order XML postback is located here: http://secure.ultracart.com/xml/ultracart.xsd


Expand
titleQ: Can I configure more than one URL within one of the three configuration fields?

 A: Yes. To configure more than one URL into one of the URL configuration fields, simply separate each URL with a SPACE. 

PLEASE NOTE: Both endpoints must be able to deal with duplicates. If any endpoint fails, the postback is marked as a failure and when retried, each endpoint gets the postback again.    


Expand
titleWhen the postback occurs does it always pass the full set of customer data including custom fields?

There is quite a bit of order information in the XML postback, including customer data and the custom fields 1-7.


Expand
titleIs there a way it identifies it self as an auto-order vs an initial order?

On an order XML postback there is an element for the auto_order information. Inside that element there is a field for auto_order_original_order_id. If that is the same as the order_id in the XML document then this is the original order in the auto order sequence. If it's different then it's a rebill.


Expand
titleJust to clarify for each successful auto-order charge it will go through the main postback URL right? (not the auto-order status change URL)

Orders go through one URL and auto order status information through another. They can be the same URL if you want to configure it that way and just teach the one script to parse the XML document and then look at the content differently.


Expand
titleFor the auto-order status change postback, do you have an XML schema for that? or is it the same as the normal postback? is their a particular field that we shouid check for?

There is not a schema file for this yet, but the easiest thing to do is configure a dummy URL, let the auto order XML postback fire, and then check the log under the XML postback configuration to see a copy of the document it tried to send.