pixiDFCreateInvoices
API call for creating Direct Fulfillment invoices.
Since pixi version: LOU Official (6.3.0.4452) Additional notes: API Call logic is depending on two database settings: EnableFulfilmentTypeOne and EnableFulfilmentTypeTwo.
*** @OrderlinesXML parameter ***
When @OrderlinesXML parameter is not specified (NULL), then procedure will not create any Direct Invoice.
When @OrderlinesXML is specified then there are two options how it will work depending on settings bellow:
*** EnableFulfilmentTypeOne is enabled ***
Provide in the @OrderlinesXML orderlines f
Orderlines can be either on FUT or FUS status:
* If orderlines are on FUT they will be first changed to FUS and then
* Direct Invoice will be created for all orderlines on FUS and orderlines will be changed to AUS
Additionally ShipVendor for created invoice can be changed, also tracking id(s) and return tracking id(s) can be
added to invoice and packages if its specified in the XML.
*** EnableFulfilmentTypeTwo is enabled ***
Lists the orderlines on status FUT and they will be changed to FUS when DF Invoice is created.
Additionally ShipVendor for created invoice can be changed, also tracking id(s) and return tracking id(s) can be
added to invoice and packages if its specified in the XML.
*** Ship Vendor details ***
When there are multiple ShipVendors per order the call must be made per ShipVendor orderlines, if
multiple ShipVendors are send with one call, first ShipVendor will be taken for whole invoice.
*** Tracking ids and Return Tracking ids details ***
Multiple (Return) tracking IDs can be entered, separated by semicolon. The length for entry per invoice (from all send orderlines) is 512 with semicolons.
Currently, there is not possible to enter more return tracking ids than entered for tracking ids.
In this case the rest of return tracking ids will be skipped.
In case the ids are duplicated, the records will be saved as unique values.
Also, at invoice creation automatic creation of return tracking id for ship vendor is done, this will be overwritten with records from XML if RetrurnTrackingId tag with entry will exist.
Update of tracking and return tracking id after invoice for orderline is created is not possible (for example calling API with the same orderline and tracking ids again).
Example XML:
<Orderlines>
<Orderline>
<OrderlineKey>11</OrderlineKey>
<ShipVendor>DHL</ShipVendor>
<ShipmentTrackingId>tracking2;tracking1;</ShipmentTrackingId>
<ReturnTrackingId>return1;</ReturnTrackingId>
</Orderline>
<Orderline>
<OrderlineKey>22</OrderlineKey>
<ShipmentTrackingId>tracking3;tracking4;</ShipmentTrackingId>
</Orderline>
<Orderline>
<OrderlineKey>33</OrderlineKey>
</Orderline>
</Orderlines>
*** @ShowDetailedMessages parameter ***
When @ShowDetailedMessages parameter is not specified (NULL), then procedure will work as before, without error handling and response.
When @ShowDetailedMessages is specified then there are two options how it will work depending on validation on length of string for ShipVendor (3), ShipmentTrackingId (512) and ReturnTrackingId (512).
Final message will be shown which invoices were created for specified orderline keys and error will be displayed for the ones that failed.
Request
POST
https://apigateway.descartes.com/tms/pixi/pixiDFCreateInvoices
Request body
Name | Type | Required | Description |
---|---|---|---|
OrderlinesXML | string | false | Orderline XML Type: varchar(-1) Default value: NULL Example: Check additional information Available from: LOU Official - Update 46 (6.9.46.27927) |
ShowDetailedMessages | boolean | false | Option to set the parameter and get detailed messages. Type: bit Default value: 0 Example: Check additional information Available from: 19.07 (9.0.5.40719) |
Request Example
<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
<Body xmlns="">
<pixiDFCreateInvoices>
<OrderlinesXML>string</OrderlinesXML>
<ShowDetailedMessages>true</ShowDetailedMessages>
</pixiDFCreateInvoices>
</Body>
</Envelope>
Response
1. Status response
Name | Type | Description |
---|---|---|
ReturnCode | string | Update status (Error/Success) Type: varchar Available from: 25.06 (25.6.0.58802) |
ErrorMessage | string | Detail status description Type: varchar Available from: 25.06 (25.6.0.58802) |
Response Example
<PixiDFCreateInvoicesPost400TextXmlResponse>
<ReturnCode>string</ReturnCode>
<ErrorMessage>string</ErrorMessage>
</PixiDFCreateInvoicesPost400TextXmlResponse>
HTTP Example
POST https://apigateway.descartes.com/tms/pixi/
Content-Type: text/xml; charset=utf-8
# echo -n '{{username}}:{{password}}' | base64 | pbcopy
Authorization: Basic {{token}}
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="https://apigateway.descartes.com/tms/pixi/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ns1:pixiDFCreateInvoices>
<OrderlinesXML xsi:type="xsd:string">Check additional information</OrderlinesXML>
<ShowDetailedMessages xsi:type="xsd:boolean">Check additional information</ShowDetailedMessages>
</ns1:pixiDFCreateInvoices>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
PHP Example
<?php
getPixiSoapClientResponse('pixiDFCreateInvoices', [
'OrderlinesXML' => 'Check additional information', // string
'ShowDetailedMessages' => 'Check additional information', // boolean
]);
function getPixiSoapClientResponse(string $method, array $arguments = [])
{
$soapArguments = [];
foreach ($arguments as $key => $value) {
$soapArguments[] = new SoapVar($value, null, '', '', $key);
}
$soapClient = new SoapClient(null, [
'login' => '...',
'password' => '...',
'uri' => 'https://apigateway.descartes.com/tms/pixi/',
'location' => 'https://apigateway.descartes.com/tms/pixi/',
]);
return $soapClient->__call($method, $soapArguments);
}