Difference between revisions of "API/Services/PurchaseProduct"

From Emersion
Jump to: navigation, search
(Created page with "===Purchase Product=== '''Purpose''' This method is used to create a product purchase on behalf of an existing client. '''Inputs''' <soapenv:Envelope xmlns:soapenv="http://...")
 
m (added createimmediateinvoice notes)
 
(14 intermediate revisions by 4 users not shown)
Line 2: Line 2:
  
 
'''Purpose'''
 
'''Purpose'''
This method is used to create a product purchase on behalf of an existing client.
+
This method is used to create a product purchase on behalf of an existing client. This call supports creating pending cardline items for charging to next invoice.
 +
For Products of type Credit, please enter a negative quantity.
  
 
'''Inputs'''
 
'''Inputs'''
 +
<nowiki>
 +
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:emersion:api" xmlns:urn1="urn:emersion:types">
 +
  <soapenv:Header/>
 +
  <soapenv:Body>
 +
      <urn:PurchaseProducts>
 +
        <urn:AccountID>?</urn:AccountID>
 +
        <urn:ShoppingCart>
 +
            <!--1 to 999 repetitions:-->
 +
            <urn1:PurchaseItem>
 +
              <urn1:ProductID>?</urn1:ProductID>
 +
              <urn1:Quantity>?</urn1:Quantity>
 +
              <urn1:ExTaxPrice>?</urn1:ExTaxPrice>
 +
              <urn1:Tax>?</urn1:Tax>
 +
              <urn1:Note_Details>?</urn1:Note_Details>
 +
              <urn1:Note_Customer_Visible>?</urn1:Note_Customer_Visible>
 +
            </urn1:PurchaseItem>
 +
        </urn:ShoppingCart>
 +
        <urn:DeliveryAddress>
 +
            <urn1:PrimaryAddressID>?</urn1:PrimaryAddressID>
 +
            <urn1:Address ID="?">
 +
              <urn1:IsPrimary>?</urn1:IsPrimary>
 +
              <urn1:Details/>
 +
              <urn1:NearestCrossStreet>?</urn1:NearestCrossStreet>
 +
              <urn1:Country>?</urn1:Country>
 +
              <urn1:FormattedAddress>?</urn1:FormattedAddress>
 +
              <urn1:IsValidated>?</urn1:IsValidated>
 +
              <urn1:Type>?</urn1:Type>
 +
              <urn1:DateFrom>?</urn1:DateFrom>
 +
              <urn1:DateTo>?</urn1:DateTo>
 +
              <urn1:GnafPid ID="?">?</urn1:GnafPid>
 +
              <urn1:DPID>?</urn1:DPID>
 +
              <urn1:Barcode>?</urn1:Barcode>
 +
              <urn1:ExternalReferences>
 +
                  <!--Zero or more repetitions:-->
 +
                  <urn1:ExternalReference Type="?">?</urn1:ExternalReference>
 +
              </urn1:ExternalReferences>
 +
              <urn1:UploadSource>?</urn1:UploadSource>
 +
              <urn1:UploadSourceRef>?</urn1:UploadSourceRef>
 +
              <urn1:ImportIdentifier>?</urn1:ImportIdentifier>
 +
              <urn1:LastUpdated>?</urn1:LastUpdated>
 +
            </urn1:Address>
 +
        </urn:DeliveryAddress>
 +
        <urn:CreateImmediateInvoice>?</urn:CreateImmediateInvoice>
 +
      </urn:PurchaseProducts>
 +
  </soapenv:Body>
 +
</soapenv:Envelope>
 +
</nowiki>
 +
 +
'''Important notes'''
 +
* ''ProductID'' needs to be the ID of the Product in the Emersion system
 +
* ''Quantity'' has to be non-zero and an integer
 +
* ''ExTaxPrice'' and Tax are floating point numbers however tax is optional – a sale can be tax free.
 +
* ''CreateImmediateInvoice'' defaults to 1 (and therefore attempts to create an immediate invoice if no Pending invoices exist).
 +
 +
'''Example Validation Error'''
 +
  <SOAP-ENV:Body>
 +
      <SOAP-ENV:Fault>
 +
        <faultcode>SOAP-ENV:Client</faultcode>
 +
        <faultstring>Validation Error</faultstring>
 +
        <faultactor>http://emersion.com.au/Services</faultactor>
 +
        <detail>Invalid or Missing Account ID</detail>
 +
      </SOAP-ENV:Fault>
 +
  </SOAP-ENV:Body>
 +
 +
'''Output'''
 +
 +
  <SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://emersion.com.au/ServiceObjects">
 +
            <SOAP-ENV:Body>
 +
                <ns1:PurchaseProductResponse>
 +
                        <ns1:AccountID>399301</ns1:AccountID>
 +
                        <ns1:InvoiceID/>
 +
                          <ns1:Cardlines/>
 +
            </ns1:PurchaseProductResponse>
 +
          </SOAP-ENV:Body>
 +
  </SOAP-ENV:Envelope>
 +
 +
 +
 +
'''Error Strings'''
 +
 +
* Invalid or Missing Account ID
 +
 +
* Could not find Account ID!
 +
 +
* You do not have permission to modify this Account
 +
 +
* No items have been provided to purchase in transaction.
 +
 +
* Cart item missing mandatory ProductID
 +
 +
* Cart item missing mandatory quantity
 +
 +
* Product purchase failed with an exception: '.$e->getMessage());
 +
 +
The following errors can only occur if a Delivery Address is provided.
 +
 +
* Provided Primary Address ID does not exist in system
 +
 +
* Primary Address ID should be Integer
 +
 +
* Missing Primary Address Post Code from Delivery Address
 +
 +
* Post Code should consist of 4 digits
 +
 +
* Post Code should contain digits only
 +
 +
* Missing Primary Address Suburb from Delivery Address
 +
 +
* Missing Primary Address Street Name from Delivery Address
 +
 +
* Missing Primary Address Street Name from Delivery Address
 +
 +
* Missing Primary Address Street Type ID from Delivery Address
 +
 +
* Invalid Value for Street Type ID (means that Street Type ID does not exist in the system)
 +
 +
* Street Type ID should be Integer
 +
 +
* Missing Primary Address Lot Number from Delivery Address
 +
 +
* Missing Primary Address Unit Number from Delivery Address
 +
 +
* Missing Primary Address State from Delivery Address
 +
 +
* Invalid Value for State (means that State ID does not exist in the system)
 +
 +
* State should be Integer
 +
 +
* Missing Primary Address Level from Delivery Address
 +
 +
* Missing Primary Address Level Type ID from Delivery Address
 +
 +
* Invalid Value for Level Type ID (means that Level Type ID does not exist in the system)
 +
 +
* Level Type ID should be Integer
 +
 +
* Missing Primary Address Unit Type ID from Delivery Address
  
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://emersion.com.au/ServiceObjects">
+
* Invalid Value for Unit Type ID (means that Unit Type ID does not exist in the system)
<soapenv:Header/>
+
 
<soapenv:Body>
+
* Unit Type ID should be Integer
<ser:PurchaseProducts>
+
 
<ser:AccountID>?</ser:AccountID>
+
* Missing Primary Address P.O. Box Number from Delivery Address
<ser:ShoppingCart>
+
 
<!--1 to 999 repetitions:-->
+
* Missing Primary Address Site Name from Delivery Address
<ser:PurchaseItem>
+
 
<ser:ProductID>?</ser:ProductID>
+
* Missing Primary Address Street Type Suffix ID from Delivery Address
<ser:Quantity>?</ser:Quantity>
+
 
<!--Optional:-->
+
* Invalid Value for Street Type Suffix ID (means that Street Type Suffix ID does not exist in the system)
<ser:ExTaxPrice>?</ser:ExTaxPrice>
+
 
<!--Optional:-->
+
* Street Type Suffix ID should be Integer
<ser:Tax>?</ser:Tax>
 
</ser:PurchaseItem>
 
</ser:ShoppingCart>
 
</ser:PurchaseProducts>
 
</soapenv:Body>
 
</soapenv:Envelope>
 

Latest revision as of 17:32, 2 May 2019

Purchase Product

Purpose This method is used to create a product purchase on behalf of an existing client. This call supports creating pending cardline items for charging to next invoice. For Products of type Credit, please enter a negative quantity.

Inputs

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:emersion:api" xmlns:urn1="urn:emersion:types">
   <soapenv:Header/>
   <soapenv:Body>
      <urn:PurchaseProducts>
         <urn:AccountID>?</urn:AccountID>
         <urn:ShoppingCart>
            <!--1 to 999 repetitions:-->
            <urn1:PurchaseItem>
               <urn1:ProductID>?</urn1:ProductID>
               <urn1:Quantity>?</urn1:Quantity>
               <urn1:ExTaxPrice>?</urn1:ExTaxPrice>
               <urn1:Tax>?</urn1:Tax>
               <urn1:Note_Details>?</urn1:Note_Details>
               <urn1:Note_Customer_Visible>?</urn1:Note_Customer_Visible>
            </urn1:PurchaseItem>
         </urn:ShoppingCart>
         <urn:DeliveryAddress>
            <urn1:PrimaryAddressID>?</urn1:PrimaryAddressID>
            <urn1:Address ID="?">
               <urn1:IsPrimary>?</urn1:IsPrimary>
               <urn1:Details/>
               <urn1:NearestCrossStreet>?</urn1:NearestCrossStreet>
               <urn1:Country>?</urn1:Country>
               <urn1:FormattedAddress>?</urn1:FormattedAddress>
               <urn1:IsValidated>?</urn1:IsValidated>
               <urn1:Type>?</urn1:Type>
               <urn1:DateFrom>?</urn1:DateFrom>
               <urn1:DateTo>?</urn1:DateTo>
               <urn1:GnafPid ID="?">?</urn1:GnafPid>
               <urn1:DPID>?</urn1:DPID>
               <urn1:Barcode>?</urn1:Barcode>
               <urn1:ExternalReferences>
                  <!--Zero or more repetitions:-->
                  <urn1:ExternalReference Type="?">?</urn1:ExternalReference>
               </urn1:ExternalReferences>
               <urn1:UploadSource>?</urn1:UploadSource>
               <urn1:UploadSourceRef>?</urn1:UploadSourceRef>
               <urn1:ImportIdentifier>?</urn1:ImportIdentifier>
               <urn1:LastUpdated>?</urn1:LastUpdated>
            </urn1:Address>
         </urn:DeliveryAddress>
         <urn:CreateImmediateInvoice>?</urn:CreateImmediateInvoice>
      </urn:PurchaseProducts>
   </soapenv:Body>
</soapenv:Envelope>

Important notes

  • ProductID needs to be the ID of the Product in the Emersion system
  • Quantity has to be non-zero and an integer
  • ExTaxPrice and Tax are floating point numbers however tax is optional – a sale can be tax free.
  • CreateImmediateInvoice defaults to 1 (and therefore attempts to create an immediate invoice if no Pending invoices exist).

Example Validation Error

  <SOAP-ENV:Body>
     <SOAP-ENV:Fault>
        <faultcode>SOAP-ENV:Client</faultcode>
        <faultstring>Validation Error</faultstring>
        <faultactor>http://emersion.com.au/Services</faultactor>
        <detail>Invalid or Missing Account ID</detail>
     </SOAP-ENV:Fault>
  </SOAP-ENV:Body>

Output

 <SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://emersion.com.au/ServiceObjects">
            <SOAP-ENV:Body>
                <ns1:PurchaseProductResponse>
                       <ns1:AccountID>399301</ns1:AccountID>
                        <ns1:InvoiceID/>
                         <ns1:Cardlines/>
            </ns1:PurchaseProductResponse>
         </SOAP-ENV:Body>
 </SOAP-ENV:Envelope>


Error Strings

  • Invalid or Missing Account ID
  • Could not find Account ID!
  • You do not have permission to modify this Account
  • No items have been provided to purchase in transaction.
  • Cart item missing mandatory ProductID
  • Cart item missing mandatory quantity
  • Product purchase failed with an exception: '.$e->getMessage());

The following errors can only occur if a Delivery Address is provided.

  • Provided Primary Address ID does not exist in system
  • Primary Address ID should be Integer
  • Missing Primary Address Post Code from Delivery Address
  • Post Code should consist of 4 digits
  • Post Code should contain digits only
  • Missing Primary Address Suburb from Delivery Address
  • Missing Primary Address Street Name from Delivery Address
  • Missing Primary Address Street Name from Delivery Address
  • Missing Primary Address Street Type ID from Delivery Address
  • Invalid Value for Street Type ID (means that Street Type ID does not exist in the system)
  • Street Type ID should be Integer
  • Missing Primary Address Lot Number from Delivery Address
  • Missing Primary Address Unit Number from Delivery Address
  • Missing Primary Address State from Delivery Address
  • Invalid Value for State (means that State ID does not exist in the system)
  • State should be Integer
  • Missing Primary Address Level from Delivery Address
  • Missing Primary Address Level Type ID from Delivery Address
  • Invalid Value for Level Type ID (means that Level Type ID does not exist in the system)
  • Level Type ID should be Integer
  • Missing Primary Address Unit Type ID from Delivery Address
  • Invalid Value for Unit Type ID (means that Unit Type ID does not exist in the system)
  • Unit Type ID should be Integer
  • Missing Primary Address P.O. Box Number from Delivery Address
  • Missing Primary Address Site Name from Delivery Address
  • Missing Primary Address Street Type Suffix ID from Delivery Address
  • Invalid Value for Street Type Suffix ID (means that Street Type Suffix ID does not exist in the system)
  • Street Type Suffix ID should be Integer