OC 2.0 Fedex shipping method not working - opencart2.x

We tried to Fedex shipping method in our opencart website.
It Display the "Error" text.
ERRORERRORcrs691The PurposeOfShipmentType is null, empty or invalid.
The PurposeOfShipmentType is null, empty or invalid.crs1000

Use this xml
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://fedex.com/ws/rate/v13">
<SOAP-ENV:Body>
<RateRequest>
<WebAuthenticationDetail>
<UserCredential>
<Key>XXXXX</Key>
<Password>XXXXX</Password>
</UserCredential>
</WebAuthenticationDetail>
<ClientDetail>
<AccountNumber>XXXXX</AccountNumber>
<MeterNumber>XXXXX</MeterNumber>
</ClientDetail>
<TransactionDetail>
<CustomerTransactionId>MY-RATE-REQUEST</CustomerTransactionId>
</TransactionDetail>
<Version>
<ServiceId>crs</ServiceId>
<Major>13</Major>
<Intermediate>0</Intermediate>
<Minor>0</Minor>
</Version>
<ReturnTransitAndCommit>true</ReturnTransitAndCommit>
<RequestedShipment>
<ShipTimestamp>2012-10-09T14:28:07.9489435+05:30</ShipTimestamp>
<DropoffType>REGULAR_PICKUP</DropoffType>
<PackagingType>YOUR_PACKAGING</PackagingType>
<Shipper>
<Address>
<StreetLines>Sardarnagar Main Road, Rajkot</StreetLines>
<City>Rajkot</City>
<StateOrProvinceCode>GJ</StateOrProvinceCode>
<PostalCode>360001</PostalCode>
<CountryCode>IN</CountryCode>
</Address>
</Shipper>
<Recipient>
<Address>
<StreetLines>Radhekrishna App. Main Road , Rajkot</StreetLines>
<City>Bhuj</City>
<StateOrProvinceCode>GJ</StateOrProvinceCode>
<PostalCode>370001</PostalCode>
<CountryCode>IN</CountryCode>
</Address>
</Recipient>
<ShippingChargesPayment>
<PaymentType>SENDER</PaymentType>
<Payor>
<ResponsibleParty>
<AccountNumber>XXXXX</AccountNumber>
</ResponsibleParty>
</Payor>
</ShippingChargesPayment>
<CustomsClearanceDetail>
<DutiesPayment>
<PaymentType>RECIPIENT</PaymentType>
</DutiesPayment>
<DocumentContent>NON_DOCUMENTS</DocumentContent>
<CustomsValue>
<Currency>INR</Currency>
<Amount>299.000000</Amount>
</CustomsValue>
<CommercialInvoice>
<Purpose>NOT_SOLD</Purpose>
</CommercialInvoice>
</CustomsClearanceDetail>
<RateRequestTypes>ACCOUNT</RateRequestTypes>
<RateRequestTypes>LIST</RateRequestTypes>
<PackageCount>1</PackageCount>
<RequestedPackageLineItems>
<SequenceNumber>1</SequenceNumber>
<GroupPackageCount>1</GroupPackageCount>
<Weight>
<Units>KG</Units>
<Value>1</Value>
</Weight>
</RequestedPackageLineItems>
</RequestedShipment>
</RateRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Related

Routing Order / Signing Group information in the connect response?

I´m trying to understand the response the connect API (using the webhook status updates) sends. The documentation says, the answer only provides XML elements of EvenvelopeStatus type (plus document PDFs, if requested). This does not include current routing order information or signing group information, right?
Does anyone know, if this is true and if there is a workaround, how to get the current routing order within the connect message without parsing the recipients status?
If one of the recipients is a signing group, will the name and email field remain empty until one of the group members has viewed / signed the document? Then I would expect the name / email field to be filled with the actual signer.
Thank you for your help!
I found the answers to my questions by debugging the interface. It is like expected: names of signing groups are reported in the name tag and replaced by the actual signers name after signing has been completed. Routing status has to be "calculated" by interpreting the recipients status - no overall routing info like in the envelope:get service call.
Current routing situation can be determined from the notification message. See the status attributes for the envelope's recipients.
You need to infer the current routing status by looking at the status values for the recipients. Here is an example notification. You can see that one of the recipients is in completed status and the other is in sent status.
Remember that multiple recipients can be in sent status at the same time if the envelope is using parallel routing.
<?xml version="1.0" encoding="utf-8"?>
<DocuSignEnvelopeInformation
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.docusign.net/API/3.0">
<EnvelopeStatus>
<RecipientStatuses>
<RecipientStatus>
<Type>Signer</Type>
<Email>Sam.Spade#example.com</Email>
<UserName>Sam Spade</UserName>
<RoutingOrder>1</RoutingOrder>
<Sent>2019-05-07T10:43:40.073</Sent>
<Delivered>2019-05-07T10:44:06.023</Delivered>
<Signed>2019-05-07T10:44:12.323</Signed>
<DeclineReason xsi:nil="true"/>
<Status>Completed</Status>
<RecipientIPAddress>141.226.10.195</RecipientIPAddress>
<CustomFields/>
<TabStatuses>
<TabStatus>
<TabType>SignHere</TabType>
<Status>Signed</Status>
<XPosition>341</XPosition>
<YPosition>697</YPosition>
<TabLabel>Sign Here</TabLabel>
<TabName>SignHere</TabName>
<DocumentID>1</DocumentID>
<PageNumber>1</PageNumber>
</TabStatus>
<TabStatus>
<TabType>SignHere</TabType>
<Status>Signed</Status>
<XPosition>416</XPosition>
<YPosition>412</YPosition>
<TabLabel>Sign Here</TabLabel>
<TabName>SignHere</TabName>
<DocumentID>2</DocumentID>
<PageNumber>1</PageNumber>
</TabStatus>
<TabStatus>
<TabType>SignHere</TabType>
<Status>Signed</Status>
<XPosition>416</XPosition>
<YPosition>316</YPosition>
<TabLabel>Sign Here</TabLabel>
<TabName>SignHere</TabName>
<DocumentID>3</DocumentID>
<PageNumber>1</PageNumber>
</TabStatus>
</TabStatuses>
<AccountStatus>Active</AccountStatus>
<RecipientId>64d1f093-d51e-4d38-914e-3255f46c0e18</RecipientId>
</RecipientStatus>
<RecipientStatus>
<Type>Signer</Type>
<Email>Susan.smith#example.com</Email>
<UserName>Susan Smith</UserName>
<RoutingOrder>2</RoutingOrder>
<Sent>2019-05-07T10:44:13.76</Sent>
<DeclineReason xsi:nil="true"/>
<Status>Sent</Status>
<RecipientIPAddress/>
<CustomFields/>
<AccountStatus>Active</AccountStatus>
<RecipientId>ad82fdb5-dfe9-479e-a4ca-0032a51b076a</RecipientId>
</RecipientStatus>
</RecipientStatuses>
<TimeGenerated>2019-05-07T10:47:56.4026603</TimeGenerated>
<EnvelopeID>a65c99da-39aa-488f-909a-1b3964634758</EnvelopeID>
<Subject>Please sign this document set</Subject>
<UserName>Sam Spade</UserName>
<Email>Sam.Spade#example.com</Email>
<Status>Sent</Status>
<Created>2019-05-07T10:43:27.943</Created>
<Sent>2019-05-07T10:44:13.79</Sent>
<ACStatus>Original</ACStatus>
<ACStatusDate>2019-05-07T10:43:27.943</ACStatusDate>
<ACHolder>Sam Spade</ACHolder>
<ACHolderEmail>Sam.Spade#example.com</ACHolderEmail>
<ACHolderLocation>DocuSign</ACHolderLocation>
<SigningLocation>Online</SigningLocation>
<SenderIPAddress>141.226.10.195 </SenderIPAddress>
<EnvelopePDFHash/>
<CustomFields>
<CustomField>
<Name>Order ID</Name>
<Show>True</Show>
<Required>False</Required>
<Value/>
</CustomField>
<CustomField>
<Name>Sales order</Name>
<Show>True</Show>
<Required>False</Required>
<Value>16</Value>
</CustomField>
<CustomField>
<Name>AccountId</Name>
<Show>false</Show>
<Required>false</Required>
<Value>3964103</Value>
<CustomFieldType>Text</CustomFieldType>
</CustomField>
<CustomField>
<Name>AccountName</Name>
<Show>false</Show>
<Required>false</Required>
<Value>World Wide Corp</Value>
<CustomFieldType>Text</CustomFieldType>
</CustomField>
<CustomField>
<Name>AccountSite</Name>
<Show>false</Show>
<Required>false</Required>
<Value>demo</Value>
<CustomFieldType>Text</CustomFieldType>
</CustomField>
</CustomFields>
<AutoNavigation>true</AutoNavigation>
<EnvelopeIdStamping>true</EnvelopeIdStamping>
<AuthoritativeCopy>false</AuthoritativeCopy>
<DocumentStatuses>
<DocumentStatus>
<ID>1</ID>
<Name>Order acknowledgement</Name>
<TemplateName/>
<Sequence>1</Sequence>
</DocumentStatus>
<DocumentStatus>
<ID>2</ID>
<Name>Battle Plan</Name>
<TemplateName/>
<Sequence>2</Sequence>
</DocumentStatus>
<DocumentStatus>
<ID>3</ID>
<Name>Lorem Ipsum</Name>
<TemplateName/>
<Sequence>3</Sequence>
</DocumentStatus>
</DocumentStatuses>
</EnvelopeStatus>
</DocuSignEnvelopeInformation>

Hazelcast + Spring(xml config) + hz map store error

Using hazelcast 3.8.2 (hazelcast-all jar) + IMap+ mapstore + Spring 4.3.8 (xml config). In Spring xml config, 'hz:map-store' throws an error saying:
17:49:40.519 ERROR [main] org.springframework.test.context.TestContextManager – Caught exception while allowing TestExecutionListener [org.springframework.test.context.support.DependencyInjectionTestExecutionListener#1868ed54] to prepare test instance [com.twc.ctg.ecp.service.dataaccess.maps.EntitlementMapTest#1b9ea3e3] org.xml.sax.SAXParseException: cvc-complex-type.2.1: Element 'hz:map' must have no character or element information item [children], because the type's content type is empty.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203) ~[?:1.8.0_101]
What am I doing wrong?
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:hz="http://www.hazelcast.com/schema/spring"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.hazelcast.com/schema/spring
http://www.hazelcast.com/schema/spring/hazelcast-spring.xsd">
<hz:hazelcast id="hzInstance1">
<hz:config>
...
</hz:config>
</hz:hazelcast>
<hz:client id="hzInstance1Client">
...
</hz:client>
<hz:map id="entitlementCache" instance-ref="hzInstance1" name="entitlement">
<hz:map-store enabled="true" implementation="linearEntitlementMapStore"
write-delay-seconds="30000"/>
</hz:map>
<bean id="linearEntitlementMapStore" class="com.twc.ctg.ecp.service.dataaccess.maps.LinearEntitlementMapStore" />
</beans>
You need to configure MapStore in <hz:config> section.
Correct config should look like this
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:hz="http://www.hazelcast.com/schema/spring"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.hazelcast.com/schema/spring
http://www.hazelcast.com/schema/spring/hazelcast-spring.xsd">
<hz:hazelcast id="hzInstance1">
<hz:config>
<hz:map name="entitlement">
<hz:map-store enabled="true" implementation="linearEntitlementMapStore"
write-delay-seconds="30000"/>
<!-- ... -->
</hz:map>
</hz:config>
</hz:hazelcast>
<hz:client id="hzInstance1Client">
<!--... -->
</hz:client>
<bean id="linearEntitlementMapStore" class="com.twc.ctg.ecp.service.dataaccess.maps.LinearEntitlementMapStore"/>

NetSuite API Insert Phone Call

I've successfully created a phone call record in netsuite and related it to a company record. However, I haven't been able to relate a phone call to a contact record. Where am I going wrong?
Error
{
"message": "Invalid contact reference key 43780 for company <NULL>.",
"code": "INVALID_KEY_OR_REF"
}
Note: Internal ID 4370 is a contact in netsuite
Envelope with variables
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Header>
<applicationInfo xmlns="urn:messages_2015_2.platform.webservices.netsuite.com">
<applicationId>_appId_</applicationId>
</applicationInfo>
<preferences xmlns="urn:messages_2015_2.platform.webservices.netsuite.com">
<warningAsError>false</warningAsError>
</preferences>
</soap:Header>
<soap:Body>
<update xmlns="urn:messages_2015_2.platform.webservices.netsuite.com">
<record internalId="_callId_" xmlns:q1="urn:scheduling_2015_2.activities.webservices.netsuite.com" xsi:type="q1:PhoneCall">
<q1:message>_description_</q1:message>
<q1:title>_name_</q1:title>
<q1:assigned internalId="_user_" type="contact"/>
<q1:contact internalId="_customer_" type="contact"/>
<q1:phone>_number_</q1:phone>
<q1:startDate>_startDate_</q1:startDate>
<q1:endDate>_endDate_</q1:endDate>
<q1:timedEvent>true</q1:timedEvent>
</record>
</update>
</soap:Body>
</soap:Envelope>

DocuSign Connect Local Testing

I am doing some local testing for DocuSign Connect.
I have a dynamic IP address so I am unable to set the URL under DocuSign Connect to publish messages to my local server.
I am thinking of simulating a POST request from DocuSign Connect and I'm wondering if anyone has a sample POST request that I can tap on?
I've edited the GUIDs, IPs and signer/sender information, but here's an example of a Envelope - Delivered message with the following configuration:
<?xml version="1.0" encoding="utf-8"?>
<DocuSignEnvelopeInformation xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.docusign.net/API/3.0">
<EnvelopeStatus>
<RecipientStatuses>
<RecipientStatus>
<Type>Signer</Type>
<Email>testemail+12354#test.com</Email>
<UserName>Signer Name</UserName>
<RoutingOrder>1</RoutingOrder>
<Sent>2016-06-20T15:41:01.78</Sent>
<Delivered>2016-06-20T15:41:26.133</Delivered><DeclineReason xsi:nil="true"/>
<Status>Delivered</Status>
<RecipientIPAddress>123.123.12.22</RecipientIPAddress><CustomFields/>
<TabStatuses>
<TabStatus>
<TabType>SignHere</TabType>
<Status>Active</Status>
<XPosition>412</XPosition>
<YPosition>207</YPosition>
<TabLabel>Signature 1</TabLabel>
<TabName>Sign Here</TabName><TabValue/>
<DocumentID>1</DocumentID>
<PageNumber>1</PageNumber><OriginalValue/></TabStatus>
<TabStatus>
<TabType>DateSigned</TabType>
<Status>NA</Status>
<XPosition>859</XPosition>
<YPosition>364</YPosition>
<TabLabel>Date Signed</TabLabel>
<TabName>Date Signed</TabName><TabValue/>
<DocumentID>1</DocumentID>
<PageNumber>1</PageNumber><OriginalValue/></TabStatus>
</TabStatuses>
<AccountStatus>Active</AccountStatus>
<EsignAgreementInformation>
<AccountEsignId>xxxxxxxx-b74b-4c31-b8f7-fe33af69a315</AccountEsignId>
<UserEsignId>xxxxxxxx-7672-436b-bcf9-a45c9b53247c</UserEsignId>
<AgreementDate>2016-06-20T15:41:26.133</AgreementDate>
</EsignAgreementInformation>
<RecipientId>xxxxxxxx-36be-49b5-8c63-c256b1f261ab</RecipientId>
</RecipientStatus>
</RecipientStatuses>
<TimeGenerated>2016-06-20T15:41:46.2761003</TimeGenerated>
<EnvelopeID>xxxxxxxx-f2ac-489d-babd-d7554ca1b2de</EnvelopeID>
<Subject>Please DocuSign this document: SamplePDF.pdf</Subject>
<UserName>Test Sender</UserName>
<Email>senderemail#test.com</Email>
<Status>Delivered</Status>
<Created>2016-06-20T15:40:33.64</Created>
<Sent>2016-06-20T15:41:01.827</Sent>
<Delivered>2016-06-20T15:41:26.18</Delivered>
<ACStatus>Original</ACStatus>
<ACStatusDate>2016-06-20T15:40:33.64</ACStatusDate>
<ACHolder>Test Sender</ACHolder>
<ACHolderEmail>senderemail#test.com</ACHolderEmail>
<ACHolderLocation>DocuSign</ACHolderLocation>
<SigningLocation>Online</SigningLocation>
<SenderIPAddress>12.163.90.22
</SenderIPAddress><EnvelopePDFHash/>
<CustomFields>
<CustomField>
<Name>Storage?</Name>
<Show>True</Show>
<Required>False</Required><Value/></CustomField>
<CustomField>
<Name>AccountId</Name>
<Show>false</Show>
<Required>false</Required>
<Value>123456</Value>
<CustomFieldType>Text</CustomFieldType>
</CustomField>
<CustomField>
<Name>AccountName</Name>
<Show>false</Show>
<Required>false</Required>
<Value>DocuSign Demo</Value>
<CustomFieldType>Text</CustomFieldType>
</CustomField>
<CustomField>
<Name>AccountSite</Name>
<Show>false</Show>
<Required>false</Required>
<Value>demo</Value>
<CustomFieldType>Text</CustomFieldType>
</CustomField>
</CustomFields>
<AutoNavigation>true</AutoNavigation>
<EnvelopeIdStamping>true</EnvelopeIdStamping>
<AuthoritativeCopy>false</AuthoritativeCopy>
<DocumentStatuses>
<DocumentStatus>
<ID>1</ID>
<Name>SamplePDF.pdf</Name><TemplateName/>
<Sequence>1</Sequence>
</DocumentStatus>
</DocumentStatuses>
</EnvelopeStatus>
<TimeZone>AUS Eastern Standard Time</TimeZone>
<TimeZoneOffset>10</TimeZoneOffset>
</DocuSignEnvelopeInformation>
If Include Documents and Include CoC are ticked each document in the envelope (including CoC) will come through in a separate byte stream:
<DocumentPDFs>
<DocumentPDF>
<Name>SamplePDF.pdf</Name>
<PDFBytes>
{bytestream}
</PDFBytes>
<DocumentID>1</DocumentID>
<DocumentType>CONTENT</DocumentType>
</DocumentPDF>
<DocumentPDF>
<Name>CertificateOfCompletion_{envelopeI}.pdf</Name>
<PDFBytes>
{bytestream}
</PDFBytes>
<DocumentType>SUMMARY</DocumentType>
</DocumentPDF>
</DocumentPDFs>

Setting Flag for an Email in ActiveSync

Trying to set status Flag for an email using ActiveSync. Below is my request. I receive status 6. What's wrong with my request?
Request
<Sync xmlns="AirSync:" xmlns:email="Email:" xmlns:tasks="Tasks:" >
<Collections>
<Collection>
<SyncKey>648263900</SyncKey>
<CollectionId>11</CollectionId>
<GetChanges>0</GetChanges>
<Commands>
<Change>
<ServerId>11:2</ServerId>
<ApplicationData>
<email:Flag>
<email:Status>1</email:Status>
<email:FlagType>Follow Up</email:FlagType>
<tasks:StartDate>113-04-23T05:30:00.000Z</tasks:StartDate>
<tasks:UTCStartDate>113-04-23T05:30:00.000Z</tasks:UTCStartDate>
<tasks:DueDate>113-04-26T05:30:00.000Z</tasks:DueDate>
<tasks:UTCDueDate>113-04-26T05:30:00.000Z</tasks:UTCDueDate>
</email:Flag>
</ApplicationData>
</Change>
</Commands>
</Collection>
</Collections>
Response I receive
<?xml version="1.0"?>
<!DOCTYPE ActiveSync PUBLIC "-//MICROSOFT//DTD ActiveSync//EN" "http://www.microsoft.com/">
<Sync xmlns="AirSync:">
<Collections>
<Collection>
<SyncKey>648263900</SyncKey>
<CollectionId>11</CollectionId>
<Status>1</Status>
<Responses>
<Change>
<ServerId>11:2</ServerId>
<Status>6</Status>
</Change>
</Responses>
</Collection>
</Collections>
</Sync>
Change email:FlagType from Follow Up to for Follow Up.
And add </Sync> in the end.
Try:
<?xml version="1.0" encoding="utf-8"?>
<Sync xmlns="AirSync:" xmlns:email="Email:" xmlns:tasks="Tasks:" >
<Collections>
<Collection>
<SyncKey>648263900</SyncKey>
<CollectionId>11</CollectionId>
<GetChanges>0</GetChanges>
<Commands>
<Change>
<ServerId>11:2</ServerId>
<ApplicationData>
<email:Flag>
<email:Status>1</email:Status>
<email:FlagType>for Follow Up</email:FlagType>
<tasks:StartDate>113-04-23T05:30:00.000Z</tasks:StartDate>
<tasks:UTCStartDate>113-04-23T05:30:00.000Z</tasks:UTCStartDate>
<tasks:DueDate>113-04-26T05:30:00.000Z</tasks:DueDate>
<tasks:UTCDueDate>113-04-26T05:30:00.000Z</tasks:UTCDueDate>
</email:Flag>
</ApplicationData>
</Change>
</Commands>
</Collection>
</Collections>
</Sync>
See more: MS-ASEMAIL

Resources