1. Home
  2. Docs
  3. B2Ccommerce
  4. Delivery Dates
Log a Case

B2C Commerce Estimated Delivery Dates

Provide estimated delivery dates in checkout process providing actual dates for delivery, not ranges.
Supports both SFRA and SiteGenesis


Install the Zenkraft Cartridge

The Zenkraft cartridge is available in the Salesforce Commerce Cloud official LINK Marketplace.

Setup Estimated Delivery Dates

Custom Preference Configuration

There are several custom site preferences that can be set as you can see below. Some are essential to connecting to the Zenkraft API and some allow you to enable/disable/customize certain pieces of functionality.

Zenkraft General

Site Preference Description Values to Use
Zenkraft Master API Key You will need to get this from Zenkraft. The API key is required for all API calls.
Zenkraft Production Mode Allows you to toggle between production mode and development mode.
Enable Zenkraft Shipping Methods Allows you to toggle the Real-Time Shipping Rates for Shipping Methods
Enable Zenkraft Shipping Rates Allows you to toggle the Real-Time Shipping Rates for Shipping Methods
Enable Zenkraft Debug Logs If enabled, requests and responses will be logged in the Zenkraft API Admin for debugging reasons
Carrier ID Carrier ID to use for Shipments to the customer.
Packaging Type Packaging type to use for shipments to the customer. Values can be found in Zenkraft API documentation. your_packaging
Shipping Account ID ID Number for the Carrier account for shipments to the customer.
Currency Code 3 letter Currency Code to use with the Zenkraft API. Default value is USD and available values can be found in the Zenkraft API documentation.
Dimension Units Units to be used for dimensions. IN or CM
Weight Units Units to be used for weight. LB or KG
Default Product Weight This is the default weight to be used for products when determining shipping rates. If the weight is not defined on the product, this is what is used.
Sender Street Address This is the address used as the FROM address for shipments to the customer.
Sender Address City This is the city used as the FROM city for shipments to the customer.
Sender Address State Code This is the state code used as the FROM state code for shipments to the customer. This is optional as not all countries have states.
Sender Address Postal Code This is the postal code used as the FROM postal code for shipments to the customer.
Sender Address Country Code This is the country code used as the FROM country code for shipments to the customer.
Sender Company This is the Company Name used as the FROM company name for shipments to the customer.
Sender Name This is the name used as the FROM name for shipments to the customer.
Sender Phone Number This is the phone number used as the FROM phone number for shipments to the customer.
Sender Email Address This is the email address used as the FROM email address for shipments to the customer.
Google Maps API Key API Key to use for the Google Maps API. Currently, a Google Map is used for the Drop Off Locations feature.

Zenkraft Estimated Delivery

Name Description
Enable Zenkraft Estimated Delivery Dates Set to true if you want to show the estimated delivery dates on Checkout and PDP
Delivery Date Cutoff Time After this time of day, estimated delivery dates will have a day added to them. For example, if this time is set as 5pm, then the estimated delivery date will add an extra day.
Company-wide Lead Time Company-wide days required to send out product.

Zenkraft Advanced Configuration

Name Description
Enable Advanced JSON Configuration This will enable/disable the Zenkraft Advanced JSON Configuration. If enabled, a valid JSON object needs to be configured in that JSON configuration site preference
Zenkraft Advanced JSON Object Set your advanced JSON code here
{
    "EDD": {
      "id_132174644": {
        "ACCOUNT_ID": "132174644",
        "CARRIER_ID": "fedex",
        "SERVICE_TYPE": "fedex_ground",
        "PACKAGING": "your_packaging",
        "CURRENCY_CODE": "USD",
        "DIM_UNITS": "IN",
        "WEIGHT_UNITS": "LB",
        "ADDRESS": {
          "STREET": "10062 Treena Street",
          "CITY": "San Diego",
          "STATECODE": "CA",
          "POSTALCODE": "92131",
          "COUNTRYCODE": "US",
          "COMPANY": "Zenkraft Default",
          "NAME": "Zenkraft Default",
          "PHONE": "1231231233",
          "EMAIL": "api@zenkraft.com"
        }
      },
      "id_870435884": {
        "ACCOUNT_ID": "870435884",
        "CARRIER_ID": "ups",
        "SERVICE_TYPE": "ups_ground",
        "PACKAGING": "your_packaging",
        "CURRENCY_CODE": "USD",
        "DIM_UNITS": "IN",
        "WEIGHT_UNITS": "LB",
        "ADDRESS": {
          "STREET": "10062 Treena Street",
          "CITY": "San Diego",
          "STATECODE": "CA",
          "POSTALCODE": "92131",
          "COUNTRYCODE": "US",
          "COMPANY": "Zenkraft Default",
          "NAME": "Zenkraft Default",
          "PHONE": "1231231233",
          "EMAIL": "api@zenkraft.com"
        }
      }
    },
    "SHIP": {
      "US": {
        "ACCOUNT_ID": "870435884",
        "CARRIER_ID": "ups",
        "SERVICE_TYPE": "ups_ground",
        "PACKAGING": "your_packaging",
        "CURRENCY_CODE": "USD",
        "DIM_UNITS": "IN",
        "WEIGHT_UNITS": "LB",
        "FILETYPE": "PDF",
        "ADDRESS": {
          "STREET": "10062 Treena Street",
          "CITY": "San Diego",
          "STATECODE": "CA",
          "POSTALCODE": "92131",
          "COUNTRYCODE": "US",
          "COMPANY": "Zenkraft Default",
          "NAME": "Zenkraft Default",
          "PHONE": "1231231233",
          "EMAIL": "api@zenkraft.com"
        }
      }
    },
    "RETURN": {
      "US": {
        "ACCOUNT_ID": "474557840",
        "CARRIER_ID": "ups",
        "SERVICE_TYPE": "ups_ground",
        "PACKAGING": "your_packaging",
        "CURRENCY_CODE": "US",
        "DIM_UNITS": "IN",
        "WEIGHT_UNITS": "LB",
        "FILETYPE": "PDF",
        "ADDRESS": {
          "STREET": "10062 Treena Street",
          "CITY": "San Diego",
          "STATECODE": "CA",
          "POSTALCODE": "92131",
          "COUNTRYCODE": "US",
          "COMPANY": "Zenkraft Default",
          "NAME": "Zenkraft Default",
          "PHONE": "1231231233",
          "EMAIL": "api@zenkraft.com"
        }
      }
    }
  }
zenkraftDeliveryInstructionsConfig Set your available delivery instructions here
[
    {
        "id": "leave_with_a_neighbour",
        "value": "Leave with a neighbour",
        "shippingMethods": [
            "001", "003", "EUR001", "EUR003" 
        ],
        "fields": [
            {
                "nodeType": "input",
                "attributes": [
                    {
                        "id": "type",
                        "value": "text"
                    },
                    {
                        "id": "placeholder",
                        "value": "Neighbour name:"
                    },
                    {
                        "id": "class",
                        "value": "form-control mt-1"
                    }
                ]
            },
            {
                "nodeType": "input",
                "attributes": [
                    {
                        "id": "type",
                        "value": "text"
                    },
                    {
                        "id": "placeholder",
                        "value": "Neighbour phone:"
                    },
                    {
                        "id": "class",
                        "value": "form-control mt-1"
                    }
                ]
            },
            {
                "nodeType": "input",
                "attributes": [
                    {
                        "id": "type",
                        "value": "textarea"
                    },
                    {
                        "id": "placeholder",
                        "value": "Additional info..."
                    },
                    {
                        "id": "class",
                        "value": "form-control mt-1"
                    }
                ]
            }
        ]
    },
    {
        "id": "leave_at_front_porch",
        "value": "Leave at front porch",
        "shippingMethods": [
            "001", "003", "EUR001", "EUR003" 
        ]
    },
    {
        "id": "Leave_at_reception",
        "value": "Leave at reception",
        "shippingMethods": [
            "001", "003", "EUR001", "EUR003" 
        ]
    }
]

Shipping Method Configuration

Real Time Shipping Rates

In order to use the Zenkraft LINK Cartridge functionality, you’ll need to configure your SFCC Shipping Methods to map the shipping services in Zenkraft. To facilitate this, there is a new custom attribute on the Shipping Method.

To configure the methods, go to the Shipping Method in the Merchant Tools -> Ordering -> Shipping Methods and select your method.

Add your Zenkraft shipping method ID to the Zenkraft section to map it to the method. You can find the method IDs in the Zenkraft API documentation.

Add your Zenkraft shipping account ID to the Zenkraft section to map it to the correct carrier account.

As you can see in the above screenshot, you also have the ability to add your own markup to the shipping method price that is returned from Zenkraft. To add markup, select the type (Amount or Percent), then add the Markup amount as a number (ex: 2.00 for a $2.00 or 2% markup).

Drop Off Shipments

To enable the Drop Off Shipments feature, you’ll need to designate a shipping method or methods to use for the Drop Offs. To set one up, simply create a shipping method as you normally would. Then, check the box in the Zenkraft section that sets the method as Drop-off, as seen in the following screenshot:

Once the order has been created the drop off location name and location code is saved to the shipment record

Named Day

To enable the Named Day feature you’ll need to designate a shipping method or methods to use Future date delivery. To set one up, simply create a shipping method as you normally would. Then, assign how many days you want to allow your users to determine their ship date for, as seen in the following screenshot:

One the order has been completed this date is saved on the shipment record.

Add Shipping account ID

The shipping account IDs are stored in a Site preference on SalesForce Commerce Cloud
Navigate to Merchant tools > Site Preferences > Custom Preferences and find the Zenkraft General group.

Find the Shipping Account ID you have received from Zenkraft and update it with the appropriate value. If you haven't been given the Shipping Account ID yet, please contact support@zenkraft.com or your account manager.

Real Time Shipping Rates

In order to use the Zenkraft LINK Cartridge functionality, you’ll need to configure your SFCC Shipping Methods to map the shipping services in Zenkraft. To facilitate this, there is a new custom attribute on the Shipping Method.

To configure the methods, go to the Shipping Method in the Merchant Tools -> Ordering -> Shipping Methods and select your method.

Add your Zenkraft shipping method ID to the Zenkraft section to map it to the method. You can find the method IDs in the Zenkraft API documentation.

Add your Zenkraft shipping account ID to the Zenkraft section to map it to the correct carrier account.

As you can see in the above screenshot, you also have the ability to add your own markup to the shipping method price that is returned from Zenkraft. To add markup, select the type (Amount or Percent), then add the Markup amount as a number (ex: 2.00 for a $2.00 or 2% markup).

Drop-off pick-up locations

The drop-off / pick-up locations are returned by the external Zenkraft API

To enable the Drop Off Shipments feature, you’ll need to designate a shipping method or methods to use for the Drop Offs. To set one up, simply create a shipping method as you normally would. Then, check the box in the Zenkraft section that sets the method as Drop-off, as seen in the following screenshot:

Once the order has been created the drop off location name and location code is saved to the shipment record

Future Delivery Dates

To enable the Named Day feature you’ll need to designate a shipping method or methods to use Future date delivery. To set one up, simply create a shipping method as you normally would. Then, assign how many days you want to allow your users to determine their ship date for, as seen in the following screenshot:

One the order has been completed this date is saved on the shipment record.

Warehouse processing & cut-off times & product lead time

Warehouse processing times consist of two separate site preferences that can be found under Merchant tools > Site Preferences > Customer Preferences > Zenkraft Estimated Delivery

  • Enable Zenkraft Estimated Delivery Dates - Enables/Disabled the EDD functionality
  • Delivery Date Cutoff Time - Set the Cut off time. After this time of day, estimated delivery dates will have a day added to them. For example, if this time is set as 5pm, then the estimated delivery date will add an extra day.
  • Company-wide Lead Time - Company-wide days required to send out product. This value will be applied to all shipments, if none is configured on the product itself.

You can set up product processing lead times as well. All you need to do is fill in Zenkraft field called "Lead Time of the product" which you can find on the product object.

Site Preferences Reference

You can find the list of all the Site Preferences available for configuration within the B2C Business Manager by following this link.

Run tests

There is no custom code necessary to enable the Estimated Delivery Dates feature. To enable it, you simply need to configure the shipping methods with Zenkraft IDs as mentioned in the above section of this document, then enable the site preference named ‘Enable Zenkraft Estimated Delivery Dates’.

Once this is set up, you can test the shipping rates simply by going to the shipping page and entering an address. The estimated delivery dates should display with the shipping methods. You can enable Communication logging for the zenkraft.http.rate service in the SFCC Service Framework to verify that API responses are successful.

Please contact us for any more information and for next steps.