diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/checkout/api/checkoutApi.js | 8 | ||||
| -rw-r--r-- | src/lib/checkout/components/Checkout.jsx | 6 | ||||
| -rw-r--r-- | src/lib/product/components/Product/ProductDesktop.jsx | 49 |
3 files changed, 39 insertions, 24 deletions
diff --git a/src/lib/checkout/api/checkoutApi.js b/src/lib/checkout/api/checkoutApi.js index 0d0cc918..24f1868a 100644 --- a/src/lib/checkout/api/checkoutApi.js +++ b/src/lib/checkout/api/checkoutApi.js @@ -11,11 +11,15 @@ export const checkoutApi = async ({ data }) => { return dataCheckout } -export const getProductsCheckout = async (voucher) => { +export const getProductsCheckout = async (voucher, query) => { const id = getAuth()?.id let products - if(voucher){ + if(voucher && query){ + products = await odooApi('GET',`/api/v1/user/${id}/sale_order/checkout?voucher=${voucher}&source=buy`) + }else if (voucher){ products = await odooApi('GET',`/api/v1/user/${id}/sale_order/checkout?voucher=${voucher}`) + }else if (query) { + products = await odooApi('GET',`/api/v1/user/${id}/sale_order/checkout?source=buy`) }else{ products = await odooApi('GET',`/api/v1/user/${id}/sale_order/checkout`) } diff --git a/src/lib/checkout/components/Checkout.jsx b/src/lib/checkout/components/Checkout.jsx index 11a14e31..17616938 100644 --- a/src/lib/checkout/components/Checkout.jsx +++ b/src/lib/checkout/components/Checkout.jsx @@ -34,12 +34,13 @@ const { getProductsCheckout } = require('../api/checkoutApi') const Checkout = () => { const router = useRouter() + const query = router.query.source ?? null const auth = useAuth() const [activeVoucher, SetActiveVoucher] = useState(null) const { data: cartCheckout } = useQuery('cartCheckout-' + activeVoucher, () => - getProductsCheckout(activeVoucher) + getProductsCheckout(activeVoucher, query) ) const [selectedAddress, setSelectedAddress] = useState({ @@ -298,6 +299,9 @@ const Checkout = () => { voucher: activeVoucher, type: 'sale_order' } + if(query){ + data.source = 'buy' + } if (poNumber.current.value) data.po_number = poNumber.current.value if (typeof file !== 'undefined') data.po_file = await getFileBase64(file) diff --git a/src/lib/product/components/Product/ProductDesktop.jsx b/src/lib/product/components/Product/ProductDesktop.jsx index 2a523503..9be65bfb 100644 --- a/src/lib/product/components/Product/ProductDesktop.jsx +++ b/src/lib/product/components/Product/ProductDesktop.jsx @@ -63,7 +63,6 @@ const ProductDesktop = ({ products, wishlist, toggleWishlist }) => { variantQuantityRefs.current[variantId] = element } - const validQuantity = (quantity) => { let isValid = true if (!quantity || quantity < 1 || isNaN(parseInt(quantity))) { @@ -73,38 +72,46 @@ const ProductDesktop = ({ products, wishlist, toggleWishlist }) => { return isValid } - const handleAddToCart = (variantId) => { - if (!auth) { - router.push(`/login?next=/shop/product/${slug}`) - return - } - const quantity = variantQuantityRefs.current[variantId].value - - if (!validQuantity(quantity)) return - if(product.variants.length > 1){ + const updateCart = (variantId, quantity) => { + if (product.variants.length > 1) { let variantIndex = product.variants.findIndex((varian) => varian.id == variantId) updateItemCart({ productId: variantId, quantity, programLineId: product.variants[variantIndex].programActive, - selected: true + selected: true, + source: 'buy' }) - }else{ + } else { updateItemCart({ productId: variantId, quantity, programLineId: promotionActiveId, - selected: true + selected: true, + source: 'buy' }) } - + } + + const handleAddToCart = (variantId) => { + if (!auth) { + router.push(`/login?next=/shop/product/${slug}`) + return + } + const quantity = variantQuantityRefs.current[variantId].value + + if (!validQuantity(quantity)) return + + updateCart(variantId, quantity) setAddCartAlert(true) } const handleBuy = (variant) => { const quantity = variantQuantityRefs.current[variant].value if (!validQuantity(quantity)) return - router.push(`/shop/checkout?productId=${variant}&quantity=${quantity}`) + + updateCart(variant, quantity) + router.push(`/shop/checkout?source=buy`) } const variantSectionRef = useRef(null) @@ -351,11 +358,11 @@ const ProductDesktop = ({ products, wishlist, toggleWishlist }) => { <a href={whatsappUrl('product', { name: product.name, - manufacture: product.manufacture?.name , + manufacture: product.manufacture?.name, url: createSlug('/shop/product/', product.name, product.id, true) })} className='text-danger-500 underline' - rel="noopener noreferrer" + rel='noopener noreferrer' target='_blank' > klik disini @@ -460,8 +467,8 @@ const ProductDesktop = ({ products, wishlist, toggleWishlist }) => { url: createSlug('/shop/product/', product.name, product.id, true) })} className='text-danger-500 font-medium' - target="_blank" - rel="noreferrer noopener" + target='_blank' + rel='noreferrer noopener' > Tanya Admin </a> @@ -526,11 +533,11 @@ const ProductDesktop = ({ products, wishlist, toggleWishlist }) => { <a href={whatsappUrl('product', { name: variant.name, - manufacture: product.manufacture?.name , + manufacture: product.manufacture?.name, url: createSlug('/shop/product/', product.name, product.id, true) })} className='text-red_r-11' - rel="noopener noreferrer" + rel='noopener noreferrer' target='_blank' > Call for price |
