Synchronize design pricing
This tutorial shows how to programmatically synchronize pricing information for a design in Aurora.
How It Works
Modify basic pricing parameters via API to keep them in sync with your own pricing engine. The process can include any of these steps:
- Update the pricing method and amount.
- Create new adders and discounts.
- Delete unwanted adders and discounts.
- Retrieve design pricing.
Getting Started
To complete this tutorial, you will need:
- your Aurora tenant to be on the Custom or Business plan,
- your Aurora tenant to use the current API version,
- your Aurora bearer token,
- your Aurora
tenant_id
, design_id
for the design to manage,
You or any Administrator for your Aurora tenant can retrieve the token and tenant id from the API Settings page.
Step 1. Update the pricing method and amount
Update the Flat Price or Price Per Watt.
💡 Only one of Flat Price or Price Per Watt can apply for a given design. Updating either one will replace any existing pricing method on the design. After the pricing mode has been changed, the response will include values for both `flat_system_cost` and `price_per_watt`. The `pricing_mode` indicates which of these values is in effect.Update Flat Price
Set the pricing mode to Flat Price and specify a flat price for the design.
//PUT https://api-sandbox.aurorasolar.com/tenants/{tenant_id}/designs/{design_id}/pricing
{
"pricing": {
"flat_system_cost": 40000
}
}
//HTTP 200 Response
{
"pricing": {
"pricing_mode": "flat system cost",
"flat_system_cost": 40000,
...
}
Update Price Per Watt
Set the pricing mode to Price Per Watt and specify a price per watt for the design.
//PUT https://api-sandbox.aurorasolar.com/tenants/{tenant_id}/designs/{design_id}/pricing
{
"pricing": {
"price_per_watt": 2.75
}
}
//HTTP 200 Response
{
"pricing": {
"pricing_mode": "price per watt",
"price_per_watt": 2.75,
...
}
Step 2. Create adders and discounts
Create adders and discounts for the design. Only adder_name
and adder_value
are required parameters.
Create an Adder
This example creates an adder using both required and optional parameters.
//POST https://api-sandbox.aurorasolar.com/tenants/{tenant_id}/designs/{design_id}/pricing/adders
{
"adder": {
"adder_name": "No reason fee",
"adder_value": 199.99,
"quantity": 1,
"is_discount": false,
"is_editable": true,
"is_hidden": false,
"is_quantity_editable": false,
"eligible_for_cbi": true,
"prevent_manual_deletion": true
}
}
//HTTP 200 Response
{
"adder": {
"id": "5b38a39d-fecf-4854-8df9-664bcd1b1082",
"adder_name": "No reason fee",
"adder_value": 199.99,
"adder_type": "flat",
"quantity": 1,
"is_discount": false,
"is_editable": true,
"is_hidden": false,
"is_quantity_editable": false,
"eligible_for_cbi": true,
"prevent_manual_deletion": true
}
}
Create a Discount
This example creates a discount using only the required parameters.
//POST https://api-sandbox.aurorasolar.com/tenants/{tenant_id}/designs/{design_id}/pricing/adders
{
"adder": {
"adder_name": "Friendly homeowner",
"adder_value": -50
}
}
//HTTP 200 Response
{
"adder": {
"id": "2146d678-af87-49b0-853b-0f77a36161a6",
"adder_name": "Friendly homeowner",
"adder_value": -50,
"adder_type": "flat",
"quantity": 1,
"is_discount": true,
"is_editable": false,
"is_hidden": false,
"is_quantity_editable": false,
"eligible_for_cbi": true,
"prevent_manual_deletion": false
}
}
Step 3. Delete adders and discounts
Remove any existing adders that no longer apply to the design. You can find the adder ID by examining the adders returned by the Retrieve Design Pricing endpoint (Step 4) or you can track the IDs for adders you created previously (Step 2).
//DELETE https://api-sandbox.aurorasolar.com/tenants/{tenant_id}/adders/{adder_id}
//HTTP 204 Response
Step 4. Retrieve design pricing
Retrieve the design’s existing pricing. Only the parameters related to pricing synchronization are shown here. Refer to the Aurora API documentation for a description of all pricing fields.
💡 The response includes values for both `flat_system_cost` and `price_per_watt`. The `pricing_mode` indicates which of these values is in effect.//GET https://api-sandbox.aurorasolar.com/tenants/{tenant_id}/designs/{design_id}/pricing
//HTTP 200 Response
{
"pricing": {
"pricing_mode": "flat system cost",
"flat_system_cost": 40000,
"price_per_watt": 0.0,
"adders": [{
"id": "4e8d388a-ac8f-4064-9060-fc51bc73223e",
"adder_name": "No reason fee",
"adder_value": 199.99,
"adder_type": "flat",
"quantity": 1,
"is_discount": false,
"is_editable": true,
"is_hidden": false,
"is_quantity_editable": false,
"eligible_for_cbi": true,
"prevent_manual_deletion": false
}, {
"id": "2146d678-af87-49b0-853b-0f77a36161a6",
"adder_name": "Friendly homeowner",
"adder_value": -50,
"adder_type": "flat",
"quantity": 1
"is_discount": true,
"is_editable": false,
"is_hidden": false,
"is_quantity_editable": false,
"eligible_for_cbi": true,
"prevent_manual_deletion": false
}],
...
}
}
Considerations
- After creating adders via the API, it may be helpful to track their IDs in your system so you can easily delete just those adders when synchronizing changes.
Updated 7 months ago