Projects: Get project data
Heatpunk generates a full bill of materials for a project, and for our UK and Ireland sites you can very quickly place an order for the components from Midsummer. So you may like to import the shopping cart into your application and display an ordering link. Users love the ease of ordering all the kit for an installation.
The cart is based on the bill of materials generated by the software for a given project. The bill of materials for the project is refreshed every time the overview page of the project is opened by a user in Heatpunk.
GET /projects/data
The main endpoint for getting information about a project. A successful call returns an object with the following properties:
- A
projectDataobject. This includes core project data, thecart, and an order link to purchase the items in the cart from Midsummer. - A
projectComponentsobject. This is a dictionary containing information about the components used in the project. - A
billOfMaterialsobject. This object contains the full BOM in the project, categorised by component type.
Core project data
The projectData object is a large object containing a variety of core project and customer information. Some of the fields are exposed for legacy reasons - we'll do our best to support everything found there, but in new code we recommend only using:
lat- Latitude and longitude of the property, set from the satellite map when the project is created.lngaltitudeaddresspostcodedateCreated- A timestamp for when the project was first created.dateModified- A timestamp for when the project was last saved.- "Modified" is a little misleading - projects are frequently auto-saved, so this timestamp usually represents when the project was last opened.
customerNamecustomerPhonecustomerEmailprojectNameprojectType- All Heatpunk projects have the type"heat".status- The current "status" of the project, set by the user. Can be one of:"Lead"- The initial status of a project created in Heatpunk."Quote""Sale""Install""Completed""Rejected"""- Project statuses are only available to pro users, so if a project was created before a user upgraded to pro this field may be empty.
projectID- The ID of the project. Should be identical to the one provided in order to use the endpoint.cart- A complete bill of materials for the project. Described in more detail below.midsummerOrderLink- A URL that can be used to order everything needed for a project from Midsummer.
The cart
The cart is a complete list of components used in the project. Here is an example cart containing only one item:
"cart": [
{
"name": "Samsung 5kw Monobloc Heat Pump",
"qty": 1,
"item": 1970.64,
"line": 1970.64,
"dbID": "3675#4427",
"UUID": "a6406c7a-2bee-11ef-9a17-525400a4b42c",
"availableFrom": {
"midsummer": {
"ID": "3675#4427",
"price": 1970.64
}
}
}
]
Each item has the following properties :
name- Name of the item.qty- Number of the item in the cart.item- Price of a single copy of the item. If multiple sellers exist, this will be for the seller the user selected.line- Price for all copies of this item.dbID- Deprecated field - redundantly stores Midsummer's ID for the item.- We'll do our best to support this forever, but it shouldn't be used in new code.
UUID- The UUID of the item in theprojectComponentsdictionary.- Some smaller items aren't included in
projectComponentsand won't have a UUID. - This will not be present on projects last modified before the 10th February.
- Some smaller items aren't included in
availableFrom- A dictionary of suppliers who the item can be purchased from.- Currently this will only ever contain a single entry for
"midsummer", with an ID for the item and the line price.
- Currently this will only ever contain a single entry for
Project components
projectComponents is a dictionary keyed by UUID, containing information about the major components used in the project. Some components from the cart may not be included here. Note this will not be present for projects last modified before 12th May.
While we'll try to avoid changing the UUID for any given item, it's not currently not guaranteed. We recommend against assuming that the UUID for a particular item will remain the same between requests.
"projectComponents": {
"a6406c7a-2bee-11ef-9a17-525400a4b42c": {
"componentType": "heatPumps",
"uuid": "a6406c7a-2bee-11ef-9a17-525400a4b42c",
"name": "Samsung 5kw Monobloc Heat Pump",
"description": "Samsung heat pumps have a great track record of solid performance in the UK, the Samsung 5kW EHS Monobloc Heat Pump is an affordable, reliable, and efficient monobloc heat pump using R32 as the refrigerant, which helps lower the impact on global warming.",
"identifiers": {
"enaRef": "SAMSG/09641/V1",
"manufacturerPartNumber": "AE050RXYDEG/EU"
},
}
}
Each item has the following properties :
componentType- The category of this component. On Heatpunk, this can be:"heatPumps""hotWaterStorages""heatAccessories""heatPumpGroups"- The "brand" of heat pump used in this project (eg: Samsung, Grant)."hotWaterStorageGroups"- As above but for hot water storage brands.
uuidnamedescriptionidentifiers- A dictionary of various identifiers that this component might have.enaRef- The ENA reference number for the item, as found in the ENA Device Database.manufacturerPartNumber- The manufacturer's model number for the item.
Bill of materials
billOfMaterials is complete list of components used in the project, similarly to the cart in the core project data, except the billOfMaterials structure is categorised by component type, and contains no pricing information.
- The component types on Heatpunk are
heatPumps,hotWaterStorages, andheatAccessories.
Each item in each category has the following information:
name- Name of the item.qty- Number of this item that exist in the project.itemType- The component type (heatPumps, hotWaterStorages or heatAccessories)uuid- If available, the UUID of the item, which can be cross-referenced in the project components dictionary.
Authentication
Endpoint:
GET https://[DOMAIN]/api/v1/projects/data
Headers:
X-API-KEY: YOUR_API_KEY(ReplaceYOUR_API_KEYwith your actual API key.)
Request structure
Every request to create a new project must include the following:
ID: The id of the project as a number.
User email: The userEmail should be a valid email address of a Heatpunk Pro team member who has access to the project.
Example API request and response
Example API Request
Below is an example using curl that demonstrates how to create a project with the required fields:
curl -X GET 'https://heatpunk.co.uk/api/v1/projects/data?projectId=96206&userEmail=matt.agnes%2Bpro%40midsummerenergy.co.uk' \
-H 'accept: application/json' \
-H 'X-API-KEY: YOUR_API_KEY'
Response
{
"status": "success",
"projectData": {
"lat": 52.23838103482185,
"lng": 0.15741585962292692,
"zoom": 20,
"address": "87 Cambridge Road Cambridge Cambridgeshire",
"postcode": "CB24 6AT",
"dateCreated": "2026-05-07 15:53:23",
"dateModified": "2026-07-06 11:58:03",
"projectName": "Sample Project",
"customerName": "Testing Testington",
"buildDate": "pre2000",
"customerPhone": "",
"customerEmail": "",
"projectType": "heat",
"userID": 11828,
"status": "Lead",
"ventilationParameters": {
"assessmentMethod": "measured",
"measuredAirPermeability": 10,
"buildingShelterLevel": "normal"
},
"projectID": "64267",
"altitude": 122.9400024414062,
"geography": {
"altitude": null,
"distance": null,
"hillSlope": null,
"hillZone": null,
"terrain": null,
"topography": null,
"windZone": null
},
"cart": [
{
"name": "Samsung 5kw Monobloc Heat Pump",
"qty": 1,
"item": 1970.64,
"line": 1970.64,
"dbID": "3675#4427",
"UUID": "a6406c7a-2bee-11ef-9a17-525400a4b42c",
"availableFrom": {
"midsummer": {
"ID": "3675#4427",
"price": 1970.64
}
}
},
{
"name": "UK Cylinders Flowcyl Slimline 150L Heat Pump Cylinder",
"qty": 1,
"item": 1193.58,
"line": 1193.58,
"dbID": "5681",
"UUID": "4b60d2e0-4d93-11ef-9a17-525400a4b42c",
"availableFrom": {
"midsummer": {
"ID": "5681",
"price": 1193.58
}
}
},
{
"name": "Altecnic flush and fill valve - 28mm compression",
"qty": 1,
"item": 68.6,
"line": 68.6,
"dbID": "3819",
"availableFrom": {
"midsummer": {
"ID": "3819",
"price": 68.6
}
}
},
{
"name": "CY Cable 2-core 1mm² (10m reel)",
"qty": 1,
"item": 21,
"line": 21,
"dbID": "3821#4653",
"availableFrom": {
"midsummer": {
"ID": "3821#4653",
"price": 21
}
}
},
{
"name": "ESBE MBA132 3-Way Motorised Ball Valve DN25",
"qty": 1,
"item": 119,
"line": 119,
"dbID": "7902",
"availableFrom": {
"midsummer": {
"ID": "7902",
"price": 119
}
}
},
{
"name": "FastenTherm Heat Pump Foot and Strut Single",
"qty": 2,
"item": 16.38,
"line": 32.76,
"dbID": "6551",
"availableFrom": {
"midsummer": {
"ID": "6551",
"price": 32.76
}
}
},
{
"name": "Full bore pump valve pair - 28mm x 1 1/2",
"qty": 2,
"item": 30.8,
"line": 61.6,
"dbID": "4327",
"availableFrom": {
"midsummer": {
"ID": "4327",
"price": 61.6
}
}
},
{
"name": "Grundfos UPM4",
"qty": 1,
"item": 142.8,
"line": 142.8,
"dbID": "5565",
"availableFrom": {
"midsummer": {
"ID": "5565",
"price": 142.8
}
}
},
{
"name": "Heat Pump Isolator - Scame - Grey - 32A 3-pole",
"qty": 1,
"item": 34.3,
"line": 34.3,
"dbID": "4562",
"availableFrom": {
"midsummer": {
"ID": "4562",
"price": 34.3
}
}
},
{
"name": "Inta 28mm Full Bore Compression Ball Valve with Butterfly Handle",
"qty": 2,
"item": 15.33,
"line": 30.66,
"dbID": "5484",
"availableFrom": {
"midsummer": {
"ID": "5484",
"price": 30.66
}
}
},
{
"name": "Intafil Slimline - compact 18L sealed system kit",
"qty": 1,
"item": 105,
"line": 105,
"dbID": "4393",
"availableFrom": {
"midsummer": {
"ID": "4393",
"price": 105
}
}
},
{
"name": "Intaflex Hose Kit 1\" F x 28mm straight pair",
"qty": 1,
"item": 102.9,
"line": 102.9,
"dbID": "4784",
"availableFrom": {
"midsummer": {
"ID": "4784",
"price": 102.9
}
}
},
{
"name": "Kamco SystemSafe KS8 Central Heating Hyperflush 500ml",
"qty": 1,
"item": 19.53,
"line": 19.53,
"dbID": "7568",
"availableFrom": {
"midsummer": {
"ID": "7568",
"price": 19.53
}
}
},
{
"name": "Kamco SystemSafe KS7 Central Heating Biocide 500ml",
"qty": 1,
"item": 20.3,
"line": 20.3,
"dbID": "7365",
"availableFrom": {
"midsummer": {
"ID": "7365",
"price": 20.3
}
}
},
{
"name": "Primary Pro 28mm x 19mm Insulation - 1 metre length (1 Metre Length)",
"qty": 10,
"item": 11.13,
"line": 111.30000000000001,
"dbID": "4741#5029",
"availableFrom": {
"midsummer": {
"ID": "4741#5029",
"price": 111.30000000000001
}
}
},
{
"name": "Primary Pro Bond and Seal (1 unit)",
"qty": 2,
"item": 14.35,
"line": 28.7,
"dbID": "4739#5035",
"availableFrom": {
"midsummer": {
"ID": "4739#5035",
"price": 28.7
}
}
},
{
"name": "Primary Pro Male M10 BZP Back Plate (1 unit)",
"qty": 5,
"item": 1.54,
"line": 7.7,
"dbID": "4746#5037",
"availableFrom": {
"midsummer": {
"ID": "4746#5037",
"price": 7.7
}
}
},
{
"name": "Primary Pro Rubberlined clip for 22mm/28mm insulation (1 unit)",
"qty": 5,
"item": 1.7399999999999998,
"line": 8.7,
"dbID": "4744#5039",
"availableFrom": {
"midsummer": {
"ID": "4744#5039",
"price": 8.7
}
}
},
{
"name": "Samsung AI Home Mono Control Kit (MIM-E03FN)",
"qty": 1,
"item": 642.39,
"line": 642.39,
"dbID": "6766",
"availableFrom": {
"midsummer": {
"ID": "6766",
"price": 642.39
}
}
},
{
"name": "Thermox DTX heat transfer liquid (Glycol) 25L",
"qty": 1,
"item": 98,
"line": 98,
"dbID": "3731",
"availableFrom": {
"midsummer": {
"ID": "3731",
"price": 98
}
}
},
{
"name": "Wilo Yonos PICO 25/1-8 - 180 long",
"qty": 1,
"item": 165.13,
"line": 165.13,
"dbID": "3871",
"availableFrom": {
"midsummer": {
"ID": "3871",
"price": 165.13
}
}
},
{
"name": "World Heat Stainless Steel 25 litre wall mounted buffer (Box including brackets)",
"qty": 1,
"item": 455.35,
"line": 455.35,
"dbID": "4149",
"availableFrom": {
"midsummer": {
"ID": "4149",
"price": 455.35
}
}
},
{
"name": "intaKlean-heatpump combined magnetic filter and strainer",
"qty": 1,
"item": 128.8,
"line": 128.8,
"dbID": "4392",
"availableFrom": {
"midsummer": {
"ID": "4392",
"price": 128.8
}
}
}
],
"midsummerOrderLink": "https://midsummerwholesale.co.uk/upload/?order=eyJpdGVtcyI6eyIzNzMxIjp7InRpdGxlIjoiVGhlcm1veCBEVFggaGVhdCB0cmFuc2ZlciBsaXF1aWQgKEdseWNvbCkgMjVMIiwicXR5IjoxLCJjYXJ0T3JkZXIiOjE5fSwiMzgxOSI6eyJ0aXRsZSI6IkFsdGVjbmljIGZsdXNoIGFuZCBmaWxsIHZhbHZlIC0gMjhtbSBjb21wcmVzc2lvbiIsInF0eSI6MSwiY2FydE9yZGVyIjoyfSwiMzg3MSI6eyJ0aXRsZSI6IldpbG8gWW9ub3MgUElDTyAyNS8xLTggLSAxODAgbG9uZyIsInF0eSI6MSwiY2FydE9yZGVyIjoyMH0sIjQxNDkiOnsidGl0bGUiOiJXb3JsZCBIZWF0IFN0YWlubGVzcyBTdGVlbCAyNSBsaXRyZSB3YWxsIG1vdW50ZWQgYnVmZmVyKEJveCBpbmNsdWRpbmcgYnJhY2tldHMpIiwicXR5IjoxLCJjYXJ0T3JkZXIiOjIxfSwiNDMyNyI6eyJ0aXRsZSI6IkZ1bGwgYm9yZSBwdW1wIHZhbHZlIHBhaXIgLSAyOG1tIHggMSAxLzIiLCJxdHkiOjIsImNhcnRPcmRlciI6Nn0sIjQzOTIiOnsidGl0bGUiOiJpbnRhS2xlYW4taGVhdHB1bXAgY29tYmluZWQgbWFnbmV0aWMgZmlsdGVyIGFuZCBzdHJhaW5lciIsInF0eSI6MSwiY2FydE9yZGVyIjoyMn0sIjQzOTMiOnsidGl0bGUiOiJJbnRhZmlsIFNsaW1saW5lIC0gY29tcGFjdCAxOEwgc2VhbGVkIHN5c3RlbSBraXQiLCJxdHkiOjEsImNhcnRPcmRlciI6MTB9LCI0NTYyIjp7InRpdGxlIjoiSGVhdCBQdW1wIElzb2xhdG9yIC0gU2NhbWUgLSBHcmV5IC0gMzJBIDMtcG9sZSIsInF0eSI6MSwiY2FydE9yZGVyIjo4fSwiNDc4NCI6eyJ0aXRsZSI6IkludGFmbGV4IEhvc2UgS2l0IDFcIiBGIHggMjhtbSBzdHJhaWdodCBwYWlyIiwicXR5IjoxLCJjYXJ0T3JkZXIiOjExfSwiNTQ4NCI6eyJ0aXRsZSI6IkludGEgMjhtbSBGdWxsIEJvcmUgQ29tcHJlc3Npb24gQmFsbCBWYWx2ZSB3aXRoIEJ1dHRlcmZseSBIYW5kbGUiLCJxdHkiOjIsImNhcnRPcmRlciI6OX0sIjU1NjUiOnsidGl0bGUiOiJHcnVuZGZvcyBVUE00IiwicXR5IjoxLCJjYXJ0T3JkZXIiOjd9LCI1NjgxIjp7InRpdGxlIjoiVUsgQ3lsaW5kZXJzIEZsb3djeWwgU2xpbWxpbmUgMTUwTCBIZWF0IFB1bXAgQ3lsaW5kZXIiLCJxdHkiOjEsImNhcnRPcmRlciI6MX0sIjY1NTEiOnsidGl0bGUiOiJGYXN0ZW5UaGVybSBIZWF0IFB1bXAgRm9vdCBhbmQgU3RydXQgU2luZ2xlIiwicXR5IjoyLCJjYXJ0T3JkZXIiOjV9LCI2NzY2Ijp7InRpdGxlIjoiU2Ftc3VuZyBBSSBIb21lIE1vbm8gQ29udHJvbCBLaXQgKE1JTS1FMDNGTikiLCJxdHkiOjEsImNhcnRPcmRlciI6MTh9LCI3MzY1Ijp7InRpdGxlIjoiS2FtY28mbmJzcDtTeXN0ZW1TYWZlJm5ic3A7S1M3IENlbnRyYWwgSGVhdGluZyBCaW9jaWRlIDUwMG1sIiwicXR5IjoxLCJjYXJ0T3JkZXIiOjEzfSwiNzU2OCI6eyJ0aXRsZSI6IkthbWNvIFN5c3RlbVNhZmUmbmJzcDtLUzggQ2VudHJhbCBIZWF0aW5nIEh5cGVyZmx1c2ggNTAwbWwiLCJxdHkiOjEsImNhcnRPcmRlciI6MTJ9LCI3OTAyIjp7InRpdGxlIjoiRVNCRSBNQkExMzIgMy1XYXkgTW90b3Jpc2VkIEJhbGwgVmFsdmUgRE4yNSIsInF0eSI6MSwiY2FydE9yZGVyIjo0fSwiMzY3NSM0NDI3Ijp7InRpdGxlIjoiU2Ftc3VuZyA1a3cgTW9ub2Jsb2MgSGVhdCBQdW1wIiwicXR5IjoxLCJjYXJ0T3JkZXIiOjB9LCIzODIxIzQ2NTMiOnsidGl0bGUiOiJDWSBDYWJsZSAyLWNvcmUgMW1tICgxMG0gcmVlbCkiLCJxdHkiOjEsImNhcnRPcmRlciI6M30sIjQ3NDEjNTAyOSI6eyJ0aXRsZSI6IlByaW1hcnkgUHJvIDI4bW0geCAxOW1tIEluc3VsYXRpb24gLSAxIG1ldHJlIGxlbmd0aCAoMSBNZXRyZSBMZW5ndGgpIiwicXR5IjoxMCwiY2FydE9yZGVyIjoxNH0sIjQ3MzkjNTAzNSI6eyJ0aXRsZSI6IlByaW1hcnkgUHJvIEJvbmQgYW5kIFNlYWwgKDEgdW5pdCkiLCJxdHkiOjIsImNhcnRPcmRlciI6MTV9LCI0NzQ2IzUwMzciOnsidGl0bGUiOiJQcmltYXJ5IFBybyBNYWxlIE0xMCBCWlAgQmFjayBQbGF0ZSAoMSB1bml0KSIsInF0eSI6NSwiY2FydE9yZGVyIjoxNn0sIjQ3NDQjNTAzOSI6eyJ0aXRsZSI6IlByaW1hcnkgUHJvIFJ1YmJlcmxpbmVkIGNsaXAgZm9yIDIybW0vMjhtbSBpbnN1bGF0aW9uICgxIHVuaXQpIiwicXR5Ijo1LCJjYXJ0T3JkZXIiOjE3fX0sInRyYWNlIjp7InNyYyI6ImVhc3ktcHYiLCJtb2RlIjoiaGVhdHB1bmstdWsiLCJwcm9qZWN0SUQiOiI2NDI2NyJ9LCJkZXNpZ25Tb3VyY2UiOiJoZWF0cHVuayJ9",
"hpConsumption": {
"heatMethod": "gas",
"hwMethod": "boiler",
"modelSolar": true,
"modelBattery": true,
"modelOptimisation": false,
"performanceMethod": "scop",
"heatTotal": 5894,
"heatProfile": "farnborough",
"modelWater": false,
"gasTariff": 35,
"gasEfficiency": 80,
"solarArrays": [
{
"id": "1664cc02-9733-4155-afc5-2fcea018d96f",
"pitch": 29,
"orientation": 0,
"size": 12000,
"sf": 1
}
],
"batteries": [
{
"id": "b16c856b-0955-4682-a3ed-c2df73119e1f",
"batteryCapacity": 10,
"maxChargeRate": 50
}
]
},
"totalConsumption": 4000,
"consumptionProfile": "domesticInAllDay",
"importTariffID": "d57203df-5185-443e-8e94-a367a260452c",
"exportTariffID": "57f33ffc-4816-413b-8c12-3f3426387c0a",
"emails": {
"sign-heatPunkProposal": {
"sent": true,
"lastSent": "30/6/2026 @ 13:43"
}
}
},
"projectComponents": {
"a6406c7a-2bee-11ef-9a17-525400a4b42c": {
"componentType": "heatPumps",
"uuid": "a6406c7a-2bee-11ef-9a17-525400a4b42c",
"name": "Samsung 5kw Monobloc Heat Pump",
"description": "Samsung heat pumps have a great track record of solid performance in the UK, the Samsung 5kW EHS Monobloc Heat Pump is an affordable, reliable, and efficient monobloc heat pump using R32 as the refrigerant, which helps lower the impact on global warming.",
"identifiers": {
"enaRef": "SAMSG/09641/V1",
"manufacturerPartNumber": "AE050RXYDEG/EU"
}
},
"a674d244-2bee-11ef-9a17-525400a4b42c": {
"componentType": "heatPumpGroups",
"uuid": "a674d244-2bee-11ef-9a17-525400a4b42c",
"name": "Samsung (Gen 6)",
"description": "Efficient, cost-effective heat pumps from a world leader in technological solutions.",
"identifiers": {}
},
"4b60d2e0-4d93-11ef-9a17-525400a4b42c": {
"componentType": "hotWaterStorages",
"uuid": "4b60d2e0-4d93-11ef-9a17-525400a4b42c",
"name": "UK Cylinders Flowcyl Slimline 150L Heat Pump Cylinder",
"description": "High quality stainless steel cylinders manufactured in the UK. Designed to work with a heat pump to achieve maximum performance, with slimline capacities ranging from 120L to 200L. Fully insulated with 50mm 100% CFC and HCFC free polyurethane and built with a 100% recyclable silver casing.",
"identifiers": {
"manufacturerPartNumber": "FCHPS3150"
}
},
"9f421a71-4d8f-11ef-9a17-525400a4b42c": {
"componentType": "hotWaterStorageGroups",
"uuid": "9f421a71-4d8f-11ef-9a17-525400a4b42c",
"name": "UK Cylinders Slimline",
"description": "A UK based company building high quality stainless steel cylinders. Supplied with 50mm of 100% CFC and HCFC polyurethane, a 100% recyclable silver casing and associated components. UK Cylinders offers a 25 year warranty on all their cylinders and a 2 year warranty on parts.",
"identifiers": {}
}
},
"billOfMaterials": {
"heatPumps": [
{
"name": "Samsung 5kw Monobloc Heat Pump",
"qty": 1,
"itemType": "heatPumps",
"uuid": "a6406c7a-2bee-11ef-9a17-525400a4b42c"
}
],
"hotWaterStorages": [
{
"name": "UK Cylinders Flowcyl Slimline 150L Heat Pump Cylinder",
"qty": 1,
"itemType": "hotWaterStorages",
"uuid": "4b60d2e0-4d93-11ef-9a17-525400a4b42c"
}
],
"heatAccessories": [],
"heatPumpPacks": []
}
}
Customise cart and order links
If you wish to modify the bill of materials for a project and create your own cart object, you can use this to generate a custom order link. If you do this, you can also add some additional parameters such as a delivery address or order reference to the order (see instructions in the next section).
In its simplest form, an order can be just an object with an 'items' property. For each item, specify the the products by providing the product ID and the quantity required.
const order = {
"items": {
"2586": {
"qty": 99
},
"4258": {
"qty": 99
}
}
}
Here is a more complex order, with a shipping address, despatch date and reference:
const order = {
"items": {
"2586": {
"qty": 99
},
},
"deliveryOption": "standard",
"shippingAddress": {
"postcode": "CB24 6AZ",
"add1": "Midsummer Energy",
"add2": "Cambridge Road Industrial Estate",
"add3": "Milton",
"add4": "",
"email": "sales@midsummerenergy.co.uk",
"phone": "01223 858414",
"firstname": "Andy",
"lastname": "Rankin"
},
"despatchDate": "2023-02-08",
"reference": "trial order"
}
Once you have created the JSON object containing the products required for the project you can create an order string by following these steps:
- Stringify the object
- Base64 encode the result of the stringified object
- URL encode the base64 encoded string
- Append your string to the following URL to create your custom order link
https://midsummerwholesale.co.uk/upload?order=[result string]
In JavaScript the function you need to generate an order is:
function createOrderLink(order) {
return "https://midsummerwholesale.co.uk/upload?order="+encodeURIComponent(btoa(JSON.stringify(order)))
}