Last active
February 21, 2019 16:13
-
-
Save adrianmi8/fd37955f23cd882f2d28148216187450 to your computer and use it in GitHub Desktop.
Multi Carrier - APEX - Get Rates - DHL Express
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Id prefId = 'a025800000Zr2jJ'; // your DHL preference | |
Id contactId = '00358000006wy1I'; // you contact record | |
zkmulti__MCShipmate_Preference__c shipmatePref = [ | |
SELECT Id, Name, zkmulti__AccountNumber__c, | |
zkmulti__Carrier__c, zkmulti__Label_Image_Type_Default__c, | |
zkmulti__Billing_City__c, zkmulti__Billing_Country__c, zkmulti__Billing_State__c, | |
zkmulti__Billing_Street__c, zkmulti__Billing_Zip_Postal_Code__c, zkmulti__Company_Name__c, zkmulti__Sender_Email_Default__c, zkmulti__Sender_Name_Default__c, | |
zkmulti__Sender_Phone_Default__c, zkmulti__Shipping_City__c, zkmulti__Shipping_Country__c, zkmulti__Shipping_Is_Residential__c, | |
zkmulti__Shipping_State__c, zkmulti__Shipping_Street__c, zkmulti__Shipping_Zip_Postal_Code__c, zkmulti__Currency_Default__c | |
FROM zkmulti__MCShipmate_Preference__c | |
WHERE Id = :prefId]; | |
// get contact information (for recipient information) | |
Contact con = [ | |
SELECT MailingCity, Account.Name, MailingCountry, | |
Email, FirstName, LastName, | |
Phone, MailingState, MailingStreet, | |
MailingPostalCode | |
FROM Contact | |
WHERE Id = :contactId]; | |
// 1. Shipment and Shipment Info (required object) | |
zkmulti__MCShipment__c ship = new zkmulti__MCShipment__c( | |
zkmulti__Carrier__c = shipmatePref.zkmulti__Carrier__c, | |
zkmulti__Label_Image_Type__c = shipmatePref.zkmulti__Label_Image_Type_Default__c, | |
// sender info | |
zkmulti__Sender_Name__c = shipmatePref.zkmulti__Sender_Name_Default__c, | |
zkmulti__Sender_City__c = shipmatePref.zkmulti__Shipping_City__c, | |
zkmulti__Sender_Company__c = shipmatePref.zkmulti__Company_Name__c, | |
zkmulti__Sender_Country__c = shipmatePref.zkmulti__Shipping_Country__c, | |
zkmulti__Sender_Email__c = shipmatePref.zkmulti__Sender_Email_Default__c, | |
zkmulti__Sender_Phone__c = shipmatePref.zkmulti__Sender_Phone_Default__c, | |
zkmulti__Sender_State_Province__c = shipmatePref.zkmulti__Shipping_State__c, | |
zkmulti__Sender_Street__c = shipmatePref.zkmulti__Shipping_Street__c, | |
zkmulti__Sender_Zip_Postal_Code__c = shipmatePref.zkmulti__Shipping_Zip_Postal_Code__c, | |
zkmulti__Sender_Address_is_Residential__c = false, | |
// recipient info | |
zkmulti__Recipient_City__c = con.MailingCity, | |
zkmulti__Recipient_Company__c = con.Account.Name, | |
zkmulti__Recipient_Country__c = con.MailingCountry, | |
zkmulti__Recipient_Email__c = con.Email, | |
zkmulti__Recipient_Name__c = con.FirstName + ' ' + con.LastName, | |
zkmulti__Recipient_Phone__c = con.Phone, | |
zkmulti__Recipient_State_Province__c = con.MailingState, | |
zkmulti__Recipient_Street__c = con.MailingStreet, | |
zkmulti__Recipient_Zip_Postal_Code__c = con.MailingPostalCode, | |
zkmulti__Ship_Date__c = Date.today(), | |
zkmulti__Currency__c = 'USD', | |
zkmulti__Dimension_Units__c = 'IN', | |
zkmulti__Weight_Units__c = 'LB', | |
//zkmulti__Service_Type__c = 'Express1030NonDoc', // this line is commented to get all services available | |
zkmulti__Package_Type__c = 'your_packaging', | |
zkmulti__Return_Shipment__c = true, | |
zkmulti__Payment_Type__c = 'Sender' | |
); | |
// 2. Packages | |
List<zkmulti__MCPackage__c> packages = new List<zkmulti__MCPackage__c>(); | |
zkmulti__MCPackage__c pkg = new zkmulti__MCPackage__c ( | |
zkmulti__Weight__c = 1, | |
zkmulti__Length__c = 3, | |
zkmulti__Width__c = 2, | |
zkmulti__Height__c = 1, | |
zkmulti__DeclaredValue__c = 0 | |
); | |
packages.add(pkg); | |
// for international shipments don't forget to add customs items | |
List<zkmulti__MCCustoms_Item__c> customsItems = new List<zkmulti__MCCustoms_Item__c>(); | |
zkmulti__MCCustoms_Item__c customItem = new zkmulti__MCCustoms_Item__c( | |
zkmulti__Carrier__c = shipmatePref.zkmulti__Carrier__c, | |
zkmulti__Country_of_Manufacture__c = 'US', | |
zkmulti__Description__c = 'test description', | |
zkmulti__Quantity__c = 1, | |
zkmulti__QuantityUnits__c = 'F', | |
zkmulti__UnitPrice__c = 10, | |
zkmulti__Weight__c = 1 | |
); | |
customsItems.add(customItem); | |
List<zkmulti.ShipmentRate> rates = zkmulti.BulkShipmentInterface.calculateRates(shipmatePref.Id, ship, packages, null, customsItems, null); | |
System.debug('RATES: ' + rates); | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment