'use client'; import { InformationCircleIcon } from '@heroicons/react/20/solid'; import { ArrowPathRoundedSquareIcon } from '@heroicons/react/24/outline'; import Price from 'components/price'; import SideDialog from 'components/side-dialog'; import { CORE_VARIANT_ID_KEY, CORE_WAIVER, phoneNumber } from 'lib/constants'; import { CoreChargeOption, ProductVariant } from 'lib/shopify/types'; import { cn, createUrl } from 'lib/utils'; import { usePathname, useRouter, useSearchParams } from 'next/navigation'; import { useState } from 'react'; type CoreChargeProps = { variants: ProductVariant[]; }; const CoreCharge = ({ variants }: CoreChargeProps) => { const searchParams = useSearchParams(); const pathname = usePathname(); const router = useRouter(); const [isOpenDialog, setIsOpenDialog] = useState(false); const optionSearchParams = new URLSearchParams(searchParams); const coreVariantIdSearchParam = optionSearchParams.get(CORE_VARIANT_ID_KEY); const variant = variants.find((variant: ProductVariant) => variant.selectedOptions.every( (option) => option.value === optionSearchParams.get(option.name.toLowerCase()) ) ); const { coreCharge, waiverAvailable, coreVariantId } = variant ?? {}; const handleSelectCoreChargeOption = (coreVariantId: string) => { optionSearchParams.set(CORE_VARIANT_ID_KEY, coreVariantId); const newUrl = createUrl(pathname, optionSearchParams); router.replace(newUrl, { scroll: false }); }; const coreChargeOptions = [ waiverAvailable && { label: 'Waive Core', value: CORE_WAIVER, price: { amount: 0, currencyCode: variant?.price.currencyCode } }, coreVariantId && coreCharge && { label: 'Pay Core Upfront', value: coreVariantId, price: coreCharge } ].filter(Boolean) as CoreChargeOption[]; if (!optionSearchParams.has(CORE_VARIANT_ID_KEY) && coreChargeOptions.length > 0) { handleSelectCoreChargeOption((coreChargeOptions[0] as CoreChargeOption).value); } const openDialog = () => setIsOpenDialog(true); const closeDialog = () => setIsOpenDialog(false); return (
Core charge

What is a core charge?

When you purchase a remanufactured transmission, the price assumes that you return your old transmission. This old part is called a core.

The core charge is a refundable deposit that is added to the price of the part to ensure that the old part is returned for proper disposal or remanufacturing. When you return the old part, you receive a refund of the core charge.

Understanding our core waiver

At Transmission Locator, we offer a 30-day core waiver option on some of our transmissions. This means that you can choose to waive the core deposit for up to 30 days after your purchase. As long as you return your old part within the 30-day period, you will never need to pay the core charge.

If you don't manage to return the old part within the 30-day period, we will then charge you the core charge. This keeps more money in your pocket upfront.

Returning your core

We will pick up your core at no cost to you. Simply let us know that the core is ready and we will send you a prepaid label, as well as a driver to pick up the core.

Have questions? Speak to a specialist now:

); }; export default CoreCharge;