load btc invoice details in checkout session and storefront order queries

Ensure bitcoin invoice metadata is available when rendering checkout sessions and customer order pages.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-06 00:42:02 +02:00
co-authored by Cursor
parent cf92212226
commit 917e86b3de
3 changed files with 13 additions and 3 deletions
@@ -6,7 +6,7 @@ import type { CookieCartSummary } from '../../storefrontCart/types/CookieCartSum
import { deriveCheckoutSessionState } from '../../../utils/checkout/deriveCheckoutSessionState';
import { InvoiceReason } from '../../payment/types/InvoiceReason';
import { InvoiceService } from '../../payment/services/InvoiceService';
import { PaymentMethod } from '../../payment/types/PaymentMethod';
import type { PaymentMethod } from '../../payment/types/PaymentMethod';
import { CheckoutSessionDiscount } from '../entities/CheckoutSessionDiscount';
import { CheckoutSessionLine } from '../entities/CheckoutSessionLine';
import { CheckoutSession } from '../entities/CheckoutSession';
@@ -26,7 +26,14 @@ export class CheckoutSessionService {
async findById(id: string): Promise<CheckoutSession | null> {
return this.sessionRepo.findOne({
where: { id },
relations: ['lines', 'discounts', 'invoice', 'invoice.moneroDetails', 'invoice.payments']
relations: [
'lines',
'discounts',
'invoice',
'invoice.moneroDetails',
'invoice.btcDetails',
'invoice.payments'
]
});
}
@@ -87,7 +94,7 @@ export class CheckoutSessionService {
async cancelSession(sessionId: string): Promise<void> {
const session = await this.sessionRepo.findOne({
where: { id: sessionId },
relations: ['invoice', 'invoice.moneroDetails', 'invoice.payments']
relations: ['invoice', 'invoice.moneroDetails', 'invoice.btcDetails', 'invoice.payments']
});
if (!session) {
@@ -68,6 +68,7 @@ export class StorefrontOrderService {
.createQueryBuilder('order')
.leftJoinAndSelect('order.checkoutInvoice', 'checkoutInvoice')
.leftJoinAndSelect('checkoutInvoice.moneroDetails', 'moneroDetails')
.leftJoinAndSelect('checkoutInvoice.btcDetails', 'btcDetails')
.leftJoinAndSelect('checkoutInvoice.payments', 'payment')
.where('order.id = :orderId', { orderId })
.getOne();
@@ -11,9 +11,11 @@ export const createOrderDetailQuery = (orderRepo: Repository<Order>, orderId: st
.leftJoinAndSelect('order.discounts', 'orderDiscount')
.leftJoinAndSelect('order.checkoutInvoice', 'checkoutInvoice')
.leftJoinAndSelect('checkoutInvoice.moneroDetails', 'checkoutMoneroDetails')
.leftJoinAndSelect('checkoutInvoice.btcDetails', 'checkoutBtcDetails')
.leftJoinAndSelect('checkoutInvoice.payments', 'checkoutPayment')
.leftJoinAndSelect('order.shippingInvoice', 'shippingInvoice')
.leftJoinAndSelect('shippingInvoice.moneroDetails', 'shippingMoneroDetails')
.leftJoinAndSelect('shippingInvoice.btcDetails', 'shippingBtcDetails')
.leftJoinAndSelect('shippingInvoice.payments', 'shippingPayment')
.leftJoinAndSelect('order.messages', 'message')
.addSelect('order.accessToken')