Last active
February 21, 2019 16:10
-
-
Save adrianmi8/449cd3d4a8d0a8103053fb24da8c5a79 to your computer and use it in GitHub Desktop.
Multi Carrier - APEX - Get Rates - FedEx
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 = 'a025800000bs9Qx'; //Your FedEx Preference | |
Id contactId = '00358000006wy1I'; // Jack Rodgers | |
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 = 'FedEx', | |
zkmulti__DropoffType__c = 'DROP_BOX', | |
zkmulti__Label_Image_Type__c = 'PNG', | |
// 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 = 'FEDEX_2_DAY_AM', | |
zkmulti__Package_Type__c = 'YOUR_PACKAGING', | |
zkmulti__Payment_Type__c = 'SENDER', | |
zkmulti__Billing_Account_Number__c = shipmatePref.zkmulti__AccountNumber__c, | |
zkmulti__Billing_Country__c = shipmatePref.zkmulti__Billing_Country__c | |
); | |
// 2. Packages - list the number of packages you will be shipping | |
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 = 1, | |
zkmulti__Width__c = 1, | |
zkmulti__Height__c = 1, | |
zkmulti__DeclaredValue__c = 0 | |
); | |
packages.add(pkg); | |
List<zkmulti.ShipmentRate> rates = zkmulti.BulkShipmentInterface.calculateRates(shipmatePref.Id, ship, packages, null, null, null); | |
System.debug('RATES: ' + rates); | |
/* | |
Example Response: | |
[ | |
carrier=FedEx, | |
cost=null, | |
currencyIsoCode=null, | |
delivery_date=2018-07-02 23:00:00, | |
delivery_days=null, | |
estimate_delivery_days=null, | |
mailService=null, | |
params={base_charge=100.96, delivery_day_of_week=TUE, discounts=0.0, net_charge=107.77, rate_type=PAYOR_ACCOUNT_PACKAGE, rebates=0.0, surcharges=6.81, taxes=0.0, transit_time=null}, | |
rate=107.77, | |
service_type=FIRST_OVERNIGHT, | |
shipmentProvider=null | |
] | |
*/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment