I have the following code which in theory should hide a payment method if the shipping country is Spain or not, but it doesn’t work, does anyone know what could be wrong?
Thank you very much in advance.
// -check
// Use JSDoc annotations for type safety
/**
* @typedef {import("../generated/api").RunInput} RunInput
* @typedef {import("../generated/api").FunctionRunResult} FunctionRunResult
*/
/**
* @type {FunctionRunResult}
*/
// The configured entrypoint for the 'purchase.payment-customization.run' extension target
/**
* {RunInput} input
* @returns {FunctionRunResult}
*/
export function run(input) {
// Find the payment method to hide
const moneiPaymentMethod = input.paymentMethods
.find(method => method.name.includes("Pagar con tarjeta u otros métodos de pago"));
const klarnaPaymentMethod = input.paymentMethods
.find(method => method.name.includes('Klarna'));
const sequraPaymentMethod = input.paymentMethods
.find(method => method.name.includes('seQura'));
const isSpain = input.cart.deliveryGroups
.find(code => code.deliveryAddress?.countryCode == 'ES')
const operationsData = []
if (moneiPaymentMethod) {
operationsData.push({
rename: {
name: 'Bizum',
paymentMethodId: moneiPaymentMethod.id
}
})
}
if (klarnaPaymentMethod && isSpain?.deliveryAddress?.countryCode == 'ES') {
operationsData.push({
hide: {
paymentMethodId: klarnaPaymentMethod.id
}
})
}
if(sequraPaymentMethod && isSpain?.deliveryAddress?.countryCode != 'ES'){
operationsData.push({
hide: {
paymentMethodId: sequraPaymentMethod.id
}
})
}
// The /shopify_function package applies JSON.stringify() to your function result
// and writes it to STDOUT
return {
operations: operationsData
};
};