Skip to main content

Shop Delivery

If you want to provide your own delivery charge quotes to customers, Shop checkout can receive a live delivery charge through a dedicated quote API endpoint.

Configuration​

These fields are set in your Configuration settings, under Control → Supplier → Configuration.

FieldDefaultDescription
delivery_charge_methodDelivery costs on request- My calculation (via API)
- OpenSolar calculation
- Delivery costs on request
delivery_endpoint_urlnullYour delivery quote URL. Must be HTTPS. Cleared when any other method is selected.

In order to provide live delivery quotes to customers, select "My Calculation (via API)" and enter your endpoint URL in the delivery_endpoint_url field.

When a customer creates a basket and navigates to checkout, OpenSolar sends a POST to your delivery_endpoint_url in order to present them with a charge.

Fields Sent

FieldTypeDescription
total_pricestringTotal price including tax.
itemsarrayList of items in the order.
items: total_pricestringLine item total price.
shipping_infoobjectShipping and delivery details.
delivery_datestringChosen date of delivery in DD/MM/YYYY format.
delivery_timestringChosen time of delivery in ISO time format.
selected_supplier_locationstringThe key for the selected stock location for delivery.

Request

{
"total_price": "3877.50",
"items": [
{
"product_code": "AIKO-A455-MAH54Mb/2S",
"quantity": 12,
"total_price": "2226.00"
}
],
"shipping_info": {
"delivery_method": "delivery",
"delivery_date": "31/07/2025",
"delivery_time": "09:30:00+10:00",
"address": {
"address": "123 Solar Drive",
"locality": "Sydney",
"state": "NSW",
"zip": "2000",
"country_name": "Australia",
"selected_supplier_location": "sydney"
}
}
}

Your endpoint should then respond with one or more shipping options to be surfaced to the customer. In cases where no shipping options are available, you can return an empty array and OpenSolar will inform the customer that shipping will be arranged separately once the order is placed.

Response

{
"currency": "GBP",
"shipping_options": [
{
"carrier_name": "DHL Express",
"carrier_service": "Standard shipping",
"shipping_cost": 88.50,
"eta_utc": "2026-09-17T02:30:00Z",
"notes": "Signature required."
}
]
}
FieldRequiredDescription
currencyYesCurrency of the shipping costs.
shipping_optionsYesAt least one shipping option.
carrier_nameYesCarrier name.
carrier_serviceYesService name.
shipping_costYesDelivery cost, 0 or more.
eta_utcNoEstimated arrival time in UTC.
notesNoText note.