Skip to content

Commit 985c089

Browse files
committed
Add Winter 2025 sale
1 parent 5d67f57 commit 985c089

File tree

22 files changed

+147
-52
lines changed

22 files changed

+147
-52
lines changed

assets/css/custom.css

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ textarea:read-only {
200200
[id]::before {
201201
content: '';
202202
display: block;
203-
height: 96px;
204-
margin-top: -96px;
203+
height: 138px;
204+
margin-top: -138px;
205205
visibility: hidden;
206206
}

assets/js/androidkey.js

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -41,20 +41,20 @@ class AndroidLicense {
4141
}).catch(() => {
4242
this._checkoutData.errorMessage = 'Retrieving price failed. Please try again later.';
4343
});
44-
// let discountedRequest = {
45-
// items: [{ priceId: PADDLE_ANDROID_PRICE_ID, quantity: 1}],
46-
// discountId: 'dsc_',
47-
// };
48-
// paddle.PricePreview(discountedRequest).then(discountedResult => {
49-
// if (Number(discountedResult.data.details.lineItems[0].totals.discount) > 0) {
50-
// this._checkoutData.discountedPrice = {
51-
// amount: discountedResult.data.details.lineItems[0].totals.total,
52-
// formattedAmount: discountedResult.data.details.lineItems[0].formattedTotals.total
53-
// };
54-
// }
55-
// }).catch(error => {
56-
// this._checkoutData.errorMessage = 'Retrieving discounted price failed. Please try again later.';
57-
// });
44+
let discountedRequest = {
45+
items: [{ priceId: PADDLE_ANDROID_PRICE_ID, quantity: 1}],
46+
discountId: PADDLE_DISCOUNT_ID
47+
};
48+
paddle.PricePreview(discountedRequest).then(discountedResult => {
49+
if (Number(discountedResult.data.details.lineItems[0].totals.discount) > 0) {
50+
this._checkoutData.discountedPrice = {
51+
amount: discountedResult.data.details.lineItems[0].totals.total,
52+
formattedAmount: discountedResult.data.details.lineItems[0].formattedTotals.total
53+
};
54+
}
55+
}).catch(error => {
56+
this._checkoutData.errorMessage = 'Retrieving discounted price failed. Please try again later.';
57+
});
5858
});
5959
}
6060

@@ -72,7 +72,8 @@ class AndroidLicense {
7272
paddle.Checkout.open({
7373
settings: { locale: locale },
7474
items: [{ priceId: PADDLE_ANDROID_PRICE_ID, quantity: 1 }],
75-
customer: { email: this._checkoutData.email }
75+
customer: { email: this._checkoutData.email },
76+
discountId: PADDLE_DISCOUNT_ID
7677
});
7778
});
7879
}

assets/js/const.template.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ const PADDLE_ANDROID_PRICE_ID = '{{ .Site.Params.paddleAndroidPriceId }}';
99
const PADDLE_HUB_SELF_HOSTED_SUBSCRIPTION_PLAN_ID = {{ .Site.Params.paddleHubSelfHostedSubscriptionPlanId }};
1010
const PADDLE_HUB_MANAGED_SUBSCRIPTION_PLAN_ID = {{ .Site.Params.paddleHubManagedSubscriptionPlanId }};
1111
const PADDLE_PRICES_URL = '{{ .Site.Params.paddlePricesUrl }}';
12+
const PADDLE_DISCOUNT_ID = '{{ .Site.Params.paddleDiscountId }}';
1213
const LEGACY_STORE_URL = '{{ .Site.Params.legacyStoreUrl }}';
1314
const STRIPE_PK = '{{ .Site.Params.stripePk }}';
1415
const STRIPE_PLANS = {{ .Site.Params.stripePlans | jsonify }};

assets/js/desktopkey.js

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -44,20 +44,20 @@ class DesktopLicense {
4444
}).catch(() => {
4545
this._checkoutData.errorMessage = 'Retrieving prices failed. Please try again later.';
4646
});
47-
// let discountedRequest = {
48-
// items: [{ priceId: PADDLE_DESKTOP_PRICE_IDS[0], quantity: 1 }],
49-
// discountId: 'dsc_',
50-
// };
51-
// paddle.PricePreview(discountedRequest).then(discountedResult => {
52-
// if (Number(discountedResult.data.details.lineItems[0].totals.discount) > 0) {
53-
// this._checkoutData.discountedPrice = {
54-
// amount: discountedResult.data.details.lineItems[0].totals.total,
55-
// formattedAmount: discountedResult.data.details.lineItems[0].formattedTotals.total
56-
// };
57-
// }
58-
// }).catch(() => {
59-
// this._checkoutData.errorMessage = 'Retrieving discounted price failed. Please try again later.';
60-
// });
47+
let discountedRequest = {
48+
items: [{ priceId: PADDLE_DESKTOP_PRICE_IDS[0], quantity: 1 }],
49+
discountId: PADDLE_DISCOUNT_ID
50+
};
51+
paddle.PricePreview(discountedRequest).then(discountedResult => {
52+
if (Number(discountedResult.data.details.lineItems[0].totals.discount) > 0) {
53+
this._checkoutData.discountedPrice = {
54+
amount: discountedResult.data.details.lineItems[0].totals.total,
55+
formattedAmount: discountedResult.data.details.lineItems[0].formattedTotals.total
56+
};
57+
}
58+
}).catch(() => {
59+
this._checkoutData.errorMessage = 'Retrieving discounted price failed. Please try again later.';
60+
});
6161
});
6262
}
6363

@@ -75,7 +75,8 @@ class DesktopLicense {
7575
paddle.Checkout.open({
7676
settings: { locale: locale },
7777
items: [{ priceId: priceId, quantity: Number.parseInt(this._checkoutData.quantity) }],
78-
customer: { email: this._checkoutData.email }
78+
customer: { email: this._checkoutData.email },
79+
discountId: PADDLE_DISCOUNT_ID
7980
});
8081
});
8182
}

config/development/params.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ paddleVendorId: 1385
1717
paddleHubSelfHostedSubscriptionPlanId: 23141
1818
paddleHubManagedSubscriptionPlanId: 42235
1919
paddlePricesUrl: https://sandbox-checkout.paddle.com/api/2.0/prices
20+
paddleDiscountId: dsc_01kba2drz2yg4v6h3d5f2687tw
2021

2122
# STRIPE
2223
stripePk: pk_test_51RCM24IBZmkR4F9UiLBiSmsAnJvWqmHcDLxXR8ABKK1MNsZk3zCk2VJW7ZfaBlD81zpQxCX243sS3LEp9dABwiG800kJnGykDF

config/production/params.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ paddleVendorId: 39223
1717
paddleHubSelfHostedSubscriptionPlanId: 770132
1818
paddleHubManagedSubscriptionPlanId: 807339
1919
paddlePricesUrl: https://checkout.paddle.com/api/2.0/prices
20+
paddleDiscountId: dsc_01kba2vjmspm92sx2jhq4s2082
2021

2122
# STRIPE
2223
stripePk: pk_live_eSasX216vGvC26GdbVwA011V

config/staging/params.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ paddleVendorId: 1385
1717
paddleHubSelfHostedSubscriptionPlanId: 23141
1818
paddleHubManagedSubscriptionPlanId: 42235
1919
paddlePricesUrl: https://sandbox-checkout.paddle.com/api/2.0/prices
20+
paddleDiscountId: dsc_01kba2drz2yg4v6h3d5f2687tw
2021

2122
# STRIPE
2223
stripePk: pk_test_51RCM24IBZmkR4F9UiLBiSmsAnJvWqmHcDLxXR8ABKK1MNsZk3zCk2VJW7ZfaBlD81zpQxCX243sS3LEp9dABwiG800kJnGykDF

content/blog/2025-12-01-winter-sale.de.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: "Cryptomator Winter-Sale"
2+
title: "Der Winter naht: 50 % Rabatt auf Cryptomator"
33
slug: winter-sale
44
date: 2025-12-01
55
notice: "*Hinweis: Der Rabatt und der Preis können je nach Region variieren."

content/blog/2025-12-01-winter-sale.en.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: "Cryptomator Winter Sale"
2+
title: "Winter Is Coming: 50% off Cryptomator"
33
slug: winter-sale
44
date: 2025-12-01
55
notice: "*Note: Discount and pricing may vary by region."

content/downloads/android.de.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,10 @@ <h3 class="font-h3 text-lg">Google Play</h3>
2222
<a href="https://play.google.com/store/apps/details?id=org.cryptomator&hl=de" role="button" data-umami-event="downloads-android-googleplay">
2323
<img class="h-10 mx-auto lazyload" data-src="/de/img/downloads/googleplay-badge.png">
2424
</a>
25+
<p class="text-sm md:text-base leading-relaxed text-gray-700 rounded bg-primary-l2 p-2 mt-4">❄️ Der Einmalpreis ist um 50 %* reduziert!</p>
2526
</div>
2627
</div>
28+
<p class="prose prose-sm max-w-none">*Hinweis: Die Höhe des Rabatts kann je nach Region variieren.</p>
2729

2830
<div class="white-box my-4">
2931
<div class="px-4 py-2 border-b border-primary">

0 commit comments

Comments
 (0)