Skip to content

Instantly share code, notes, and snippets.

@adrianmi8
Last active February 21, 2019 16:10
Show Gist options
  • Save adrianmi8/449cd3d4a8d0a8103053fb24da8c5a79 to your computer and use it in GitHub Desktop.
Save adrianmi8/449cd3d4a8d0a8103053fb24da8c5a79 to your computer and use it in GitHub Desktop.
Multi Carrier - APEX - Get Rates - FedEx
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