Hi everyone,
I’m working on adding a character limit for the Address Field 1 in the checkout using a Checkout UI Extension. However, when I try to fetch the values of Address Field 1
and Address Field 2
, both are returning undefined
.
Has anyone else faced this issue or know how to handle it? Any guidance or code examples would be greatly appreciated!
Thanks in advance!
here is my code:
import { extension } from "@shopify/ui-extensions/checkout";
export default extension("purchase.checkout.block.render", (root, { buyerJourney, shippingAddress }) => {
// Listen for updates to the shippingAddress object
shippingAddress.subscribe((updatedAddress) => {
console.log("Shipping Address Updated:", updatedAddress);
// Check if address1 is now populated
if (!updatedAddress.address1 || updatedAddress.address1.trim() === "") {
console.warn("Address Line 1 is still missing.");
} else {
console.log("Address Line 1 is populated:", updatedAddress.address1);
}
});
// Intercept the buyer journey to validate before proceeding
buyerJourney.intercept(() => {
const currentAddress = shippingAddress.current || {};
console.log("Intercept triggered. Current Address:", currentAddress);
if (!currentAddress.address1 || currentAddress.address1.trim() === "") {
return {
behavior: "block",
reason: "Address Line 1 is required.",
errors: [{ message: "Please provide a valid shipping address." }],
};
}
return { behavior: "allow" };
});
});