91³Ô¹ÏÍø

Watch CBS News

Temu halts China shipments to U.S. as de minimis tariff exemption ends

Temu, a low-cost retailer based in China, has overhauled its business model by halting shipments of Chinese-made goods to customers in the U.S.

The move follows the May 2 expiration of the so-called de minimis exemption from tariffs for low-value parcels sent to the U.S. from abroad. The Trump administration's move earlier this year to close the loophole means that Temu's products sourced from China face sky-high tariffs, undermining the e-commerce platform's appeal to U.S. consumers. 

"Temu's pricing for U.S. consumers remains unchanged as the platform transitions to a local fulfillment model. All sales in the U.S. are now handled by locally based sellers, with orders fulfilled from within the country," the company said in a statement to CBS MoneyWatch. 

On Friday, the U.S. version of Temu's website only displayed for sale products that it identified as "local," meaning stored in domestic warehouses, and that won't be subject to U.S. of tariffs of as high as 145% on goods made in China. 

Temu added that it is "actively recruiting U.S. sellers to join the platform." Previously, U.S. shoppers relied on China-based merchants to ship their goods overseas at bargain-basement prices. 

"The move is designed to help local merchants reach more customers and grow their businesses," the company said. 

President Trump on April 30 said the import duty exemption for parcels worth $800 or less amounted to "a big scam going on against our country, against really small businesses."

What Temu's "local warehouse" label means

A new banner on Temu's site explains to U.S. shoppers that no import charges will be applied to goods that ship from local warehouses. 

"No import charges for all local warehouse items and no extra charges upon delivery. Items marked with the 'Local Warehouse' tag are shipped from within your country or region. This means you do not need to pay any import taxes or customs fees," the notice states.

Temu changed its website after U.S. consumers complained that tariff surcharges, some of which were double the value of the merchandise itself, were dissuading them from making online purchases. 

Temu in April warned customers that price hikes related to Mr. Trump's tariffs were on the horizon.

"Due to recent changes in global trade rules and tariffs, our operating expenses have gone up. To keep offering the products you love without compromising on quality, we will be making price adjustment starting April 25, 2025," the company said in a to customers. 

View CBS News In
CBS News App Open
Chrome Safari Continue
const link = doc.createElement('link'); link.rel = 'stylesheet'; link.href = '/fly/fly/bundles/cbsnewscontent/css/cmp-banner.min.css?v=fd53910ecf4604072044ab7c46d9b028'; doc.head.appendChild(link); doc.body.innerHTML = CONSENT_MESSAGE; } else { el.insertAdjacentHTML('afterend', CONSENT_MESSAGE); } }); } function hidePrivacyMessage() { // Remove from the main document document.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); // Remove from inside any iframes document.querySelectorAll('iframe').forEach(iframe => { const doc = iframe.contentDocument || iframe.contentWindow.document; doc.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); }); } function activateGatedScripts() { // Handle both new format (cmp-gated-script) and old OneTrust/Ketch format (optanon-category-4) const gatedScripts = Array.from(document.querySelectorAll('script.cmp-gated-script, script.optanon-category-4')); // Activate scripts sequentially with a small delay to avoid timing issues let delay = 0; gatedScripts.forEach(function(placeholder, index) { setTimeout(function() { // Skip if already processed if (placeholder.hasAttribute('data-cmp-processed')) { return; } placeholder.setAttribute('data-cmp-processed', 'true'); const newScript = document.createElement('script'); newScript.type = 'text/javascript'; // Try new format first (data-cmp-src), then fall back to old format (data-src) const src = placeholder.getAttribute('data-cmp-src') || placeholder.getAttribute('data-src'); if (src) { newScript.src = src; } else if (placeholder.textContent) { // Inline script - just copy the content newScript.textContent = placeholder.textContent; } // Handle new format attributes (data-cmp-attrs) - for both inline and external scripts const attrs = placeholder.getAttribute('data-cmp-attrs'); if (attrs) { const tempDiv = document.createElement('div'); tempDiv.innerHTML = '
<\/div>'; const tempAttrs = tempDiv.firstChild.attributes; for (let i = 0; i < tempAttrs.length; i++) { // For external scripts, allow defer/async. For inline scripts, skip them (not valid) if (src || (tempAttrs[i].name !== 'async' && tempAttrs[i].name !== 'defer')) { newScript.setAttribute(tempAttrs[i].name, tempAttrs[i].value); } } } // Copy other attributes from old OneTrust format for (let i = 0; i < placeholder.attributes.length; i++) { const attr = placeholder.attributes[i]; // Skip attributes we've already handled or don't want to copy if (!['class', 'data-src', 'data-type', 'data-cmp-src', 'data-cmp-attrs', 'data-cmp-processed', 'type', 'async', 'defer', 'src'].includes(attr.name)) { newScript.setAttribute(attr.name, attr.value); } } placeholder.parentNode.replaceChild(newScript, placeholder); // If external script, manually trigger window.onload handlers after it loads // This handles widgets that use window.onload for initialization if (src) { newScript.addEventListener('load', function() { // If page already loaded and script set a new onload handler, trigger it if (document.readyState === 'complete' && window.onload) { const originalOnload = window.onload; window.onload = null; // Clear temporarily to prevent loops originalOnload(); // Execute the handler } }); } }, delay); delay += 500; // 500ms delay between each script to allow full loading }); } cbsoptanon.onScriptsReady(function(cmp) { cmp.ot.targetingAllowed(function(allowed) { if (!allowed) { showPrivacyMessage(); } else { activateGatedScripts(); } }); cmp.ot.awaitInitialConsent(function(consent_model) { cmp.ot.addOnConsentChangedHandler(function() { cmp.ot.targetingAllowed(function(allowed) { if (allowed) { hidePrivacyMessage(); activateGatedScripts(); } else { showPrivacyMessage(); } }); }); }); });