feat(pricing): separate companies and individuals

This commit is contained in:
Oliver Davies 2023-09-14 14:32:05 +01:00
parent e5473613d1
commit e242b54a5d
2 changed files with 147 additions and 108 deletions

View file

@ -13,31 +13,66 @@ export const priceFormatter = new Intl.NumberFormat('en-GB', {
style: 'currency', style: 'currency',
}); });
<div class="space-y-6"> <div class="space-y-4">
{products && products.map(product => ( <div>
<article class="space-y-4"> <h2>For companies</h2>
<h2>
{product.title} - <> </>
{product.price
? (
<>{priceFormatter.format(product.price)}
{product.perMonth && (<> per month</>)}
</>
)
: 'Free!'
}
</h2>
<div> {products && products.company.map(product => (
<p> <article class="space-y-4">
{product.description} <h3>
{product.isLimited && (<> <strong>Limited places available!</strong></>)} {product.title} - <> </>
</p> {product.price
</div> ? (
<>{priceFormatter.format(product.price)}
{product.perMonth && (<> per month</>)}
</>
)
: 'Free!'
}
</h3>
<footer> <div>
<a href={product.link.href}>{product.link.text} &rarr;</a> <p>
</footer> {product.description}
</article> {product.isLimited && (<> <strong>Limited places available!</strong></>)}
))} </p>
</div>
<footer>
<a href={product.link.href}>{product.link.text} &rarr;</a>
</footer>
</article>
))}
</div>
<div>
<h2>For individuals</h2>
{products && products.individuals.map(product => (
<article class="space-y-4">
<h3>
{product.title} - <> </>
{product.price
? (
<>{priceFormatter.format(product.price)}
{product.perMonth && (<> per month</>)}
</>
)
: 'Free!'
}
</h3>
<div>
<p>
{product.description}
{product.isLimited && (<> <strong>Limited places available!</strong></>)}
</p>
</div>
<footer>
<a href={product.link.href}>{product.link.text} &rarr;</a>
</footer>
</article>
))}
</div>
</div> </div>

View file

@ -1,85 +1,89 @@
[ {
{ "company": [
"title": "Diagnosis", {
"description": "An in-depth investigation into a single issue where I'll provide a report with my findings and advice on the next steps. Once you've purchased, you can book a Zoom call with me to discuss what you want me to investigate.", "title": "Diagnosis",
"price": 2500, "description": "An in-depth investigation into a single issue where I'll provide a report with my findings and advice on the next steps. Once you've purchased, you can book a Zoom call with me to discuss what you want me to investigate.",
"link": { "price": 2500,
"text": "Book now", "link": {
"href": "https://buy.stripe.com/00gbJs84G2jg8Vy9AJ" "text": "Book now",
"href": "https://buy.stripe.com/00gbJs84G2jg8Vy9AJ"
}
},
{
"title": "Drupal upgrade roadmap",
"description": "Are you stuck on an already or soon-to-be unsupported version of Drupal? Get a personalised roadmap of your Drupal website, including details and actionable steps to upgrade it.",
"price": 5000,
"link": {
"text": "Book your roadmap now",
"href": "/drupal-upgrade"
}
},
{
"title": "Development team coaching",
"description": "Do you want to upskill your in-house team or have someone provide oversight and guidance as they deliver a project? Get unlimited 1-on-1 private Slack access to me and regular check-in calls to ensure things are on track.",
"perMonth": true,
"isLimited": true,
"price": 5000,
"link": {
"text": "Apply now",
"href": "https://forms.gle/HGEC3uqkUSqPsoK79"
}
},
{
"title": "Private talk or workshop",
"description": "If you found one of my public speaking presentations or workshops useful, I'm available for private speaking engagements on a variety of topics to help your team succeed.",
"price": 2000,
"link": {
"text": "Schedule a talk",
"href": "https://buy.stripe.com/eVa4h0bgSaPM6NqcMU"
}
} }
}, ],
{ "individuals": [
"title": "Drupal upgrade roadmap", {
"description": "Are you stuck on an already or soon-to-be unsupported version of Drupal? Get a personalised roadmap of your Drupal website, including details and actionable steps to upgrade it.", "title": "1-on-1 development coaching",
"price": 5000, "description": "The same as development team coaching, but for individual Developers and soloists.",
"link": { "perMonth": true,
"text": "Book your roadmap now", "isLimited": true,
"href": "/drupal-upgrade" "price": 1000,
"link": {
"text": "Apply now",
"href": "https://forms.gle/SX5fGtXXKVDcftpTA"
}
},
{
"title": "1-on-1 consulting call",
"description": "Book a 1-on-1 video call, and I can help you by answering questions about software development, architecture and automation, helping you write your first automated test, or reviewing some of your code and giving advice and suggestions.",
"price": 350,
"link": {
"text": "Book your call now",
"href": "/call"
}
},
{
"title": "Pair program with me",
"description": "Would you like another pair of eyes on your code, providing real-time suggestions and feedback rather than waiting for a code review? Book a 2-hour pair programming call and we can work on your code together.",
"price": 499,
"link": {
"text": "Book your session now",
"href": "/pair"
}
},
{
"title": "Introduction to automated testing in Drupal - 7-day email course",
"description": "Register for my free upcoming email course on automated testing in Drupal.",
"link": {
"text": "Register now",
"href": "https://forms.gle/9fGwMgaWcWjNDjdAA"
}
},
{
"title": "Drupal module template",
"description": "If you're creating a new Drupal module, try starting with my free module template for Drupal 9 and 10.",
"link": {
"text": "Download",
"href": "https://github.com/opdavies/drupal-module-template"
}
} }
}, ]
{ }
"title": "Development team coaching",
"description": "Do you want to upskill your in-house team or have someone provide oversight and guidance as they deliver a project? Get unlimited 1-on-1 private Slack access to me and regular check-in calls to ensure things are on track.",
"perMonth": true,
"isLimited": true,
"price": 5000,
"link": {
"text": "Apply now",
"href": "https://forms.gle/HGEC3uqkUSqPsoK79"
}
},
{
"title": "Private talk or workshop",
"description": "If you found one of my public speaking presentations or workshops useful, I'm available for private speaking engagements on a variety of topics to help your team succeed.",
"price": 2000,
"link": {
"text": "Schedule a talk",
"href": "https://buy.stripe.com/eVa4h0bgSaPM6NqcMU"
}
},
{
"title": "1-on-1 development coaching",
"description": "The same as development team coaching, but for individual Developers and soloists.",
"perMonth": true,
"isLimited": true,
"price": 1000,
"link": {
"text": "Apply now",
"href": "https://forms.gle/SX5fGtXXKVDcftpTA"
}
},
{
"title": "1-on-1 consulting call",
"description": "Book a 1-on-1 video call, and I can help you by answering questions about software development, architecture and automation, helping you write your first automated test, or reviewing some of your code and giving advice and suggestions.",
"price": 350,
"link": {
"text": "Book your call now",
"href": "/call"
}
},
{
"title": "Pair program with me",
"description": "Would you like another pair of eyes on your code, providing real-time suggestions and feedback rather than waiting for a code review? Book a 2-hour pair programming call and we can work on your code together.",
"price": 499,
"link": {
"text": "Book your session now",
"href": "/pair"
}
},
{
"title": "Introduction to automated testing in Drupal - 7-day email course",
"description": "Register for my free upcoming email course on automated testing in Drupal.",
"link": {
"text": "Register now",
"href": "https://forms.gle/9fGwMgaWcWjNDjdAA"
}
},
{
"title": "Drupal module template",
"description": "If you're creating a new Drupal module, try starting with my free module template for Drupal 9 and 10.",
"link": {
"text": "Download",
"href": "https://github.com/opdavies/drupal-module-template"
}
}
]