For discussing the development and usage of Checkout UI extensions, post-purchase extensions, web pixels, Customer Accounts UI extensions, and POS UI extensions
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.
// @TS-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
/**
* @Anonymous {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/shopify_function package applies JSON.stringify() to your function result
// and writes it to STDOUT
return {
operations: operationsData
};
};
Solved! Go to the solution
This is an accepted solution.
Now fixed, the function was not applied just by changing the country, you had to fill in the zip and the city for it to be applied.
Can you paste the screenshot of the output?
This is an accepted solution.
Now fixed, the function was not applied just by changing the country, you had to fill in the zip and the city for it to be applied.