fix: set language code before add to cart
Some checks failed
Build and Deploy / build (push) Has been cancelled

Ensure language code is set in checkout store before creating checkout.
This ensures orders created from any page will have correct language.

- Add setLanguageCode to NewHero before addLine
- Add setLanguageCode to ProductDetail before addLine
- Uses current locale from useLocale or props
This commit is contained in:
Unchained
2026-03-28 12:53:14 +02:00
parent 5ec0e6c92c
commit ca363a2406
2 changed files with 11 additions and 2 deletions

View File

@@ -15,9 +15,13 @@ interface NewHeroProps {
export default function NewHero({ featuredProduct }: NewHeroProps) { export default function NewHero({ featuredProduct }: NewHeroProps) {
const locale = useLocale(); const locale = useLocale();
const { addLine, openCart } = useSaleorCheckoutStore(); const { addLine, openCart, setLanguageCode } = useSaleorCheckoutStore();
const handleAddToCart = async () => { const handleAddToCart = async () => {
// Set language code before adding to cart
if (locale) {
setLanguageCode(locale);
}
const variant = featuredProduct?.variants?.[0]; const variant = featuredProduct?.variants?.[0];
if (variant?.id) { if (variant?.id) {
await addLine(variant.id, 1); await addLine(variant.id, 1);

View File

@@ -99,7 +99,7 @@ export default function ProductDetail({ product, relatedProducts, bundleProducts
const [isAdding, setIsAdding] = useState(false); const [isAdding, setIsAdding] = useState(false);
const [urgencyIndex, setUrgencyIndex] = useState(0); const [urgencyIndex, setUrgencyIndex] = useState(0);
const [selectedBundleVariantId, setSelectedBundleVariantId] = useState<string | null>(null); const [selectedBundleVariantId, setSelectedBundleVariantId] = useState<string | null>(null);
const { addLine, openCart } = useSaleorCheckoutStore(); const { addLine, openCart, setLanguageCode } = useSaleorCheckoutStore();
const { trackProductView, trackAddToCart } = useAnalytics(); const { trackProductView, trackAddToCart } = useAnalytics();
const validLocale = isValidLocale(locale) ? locale : "sr"; const validLocale = isValidLocale(locale) ? locale : "sr";
@@ -147,6 +147,11 @@ export default function ProductDetail({ product, relatedProducts, bundleProducts
const handleAddToCart = async () => { const handleAddToCart = async () => {
if (!selectedVariantId) return; if (!selectedVariantId) return;
// Set language code before adding to cart
if (validLocale) {
setLanguageCode(validLocale);
}
setIsAdding(true); setIsAdding(true);
try { try {
await addLine(selectedVariantId, 1); await addLine(selectedVariantId, 1);