October 25, 2026 — Know the moment someone can't pay you
If someone tries to check out while your payments are still off, we email you that hour — so you can turn payments on before the next shopper comes.New
  • “Someone tried to check out on your store and couldn’t pay” email. Until payments are on, checkout shows “This store isn’t taking payments yet” and can’t take a card. Now you hear about it within 15 minutes, with one button to turn payments on (about 3 minutes). At most one email a day, 5 in all, and none once payments are on.
  • An empty store shows you the next step. Open your store from View your store before it has any products and you see Add your first product. Only you see it; shoppers see your store’s name until your first product is saved.
Changed
  • The “Turn on payments” reminder says it plainly: shoppers can’t buy from your store until payments are on.
  • US owners with an EIN see a note on the payments form: pick Sole proprietorship or Company and enter your EIN as the business tax ID.
October 22, 2026 — Choose to only send the cancel link, never cancel for the customer
You can now tell the support agent to only ever send the cancel link and never cancel a subscription itself — the customer cancels themselves on the page.New
  • “Cancel for the customer if they don’t use the link” under Support → Inbox settings → Agent → Cancel a subscription. On (the default) keeps today’s behavior: the agent sends the cancel page and, if the link goes unused, cancels for them within 24 hours. Off means the agent only ever sends the link — it never cancels anything on the customer’s behalf, so it can never cancel the wrong subscription. See Cancel requests by email.
Changed
  • With the setting off, the cases that used to cancel at once (a second ask, a mention of a bank or chargeback, a charge within 2½ hours) now also just send the link.
Worth knowing
  • With it off, a customer who asks to cancel but never clicks the link stays subscribed and is charged again. Leave it on unless you have a reason to turn it off.
October 22, 2026 — A 1-minute countdown on the after-purchase offer
The built-in after-purchase offer (“add one more at 30% off”) can now show a 1-minute countdown.New
  • 1-minute countdown: turn it on in Checkout editor → Default offer. Shoppers see “Offer ends in 01:00”. When time runs out, the offer closes and they go straight to their order, so the deadline is real.
  • See what shoppers see shows the countdown too.
October 20, 2026 — Customer sign-in looks like your store
When a customer signs in to their account, the page and the code email now carry your store’s name and look, not PlatformDTC’s.New
  • Your brand on the sign-in page: your logo, store name, button colour, and links to your terms of service and privacy policy. See Customer accounts and sign-in.
  • The sign-in code email comes from your store’s name, with the subject “Your store name sign-in code”.
Changed
  • Customer accounts are at platformdtc.com/checkout. Old links to checkout.platformdtc.com forward there on their own.
  • Links in subscription, membership and rewards emails open the account signed in, on the right page, with no code to type.
  • Embedded checkout loads from platformdtc.com/checkout. Checkouts already embedded on your site keep working; nothing to change.
  • No sign-in after the cancel page. After a customer cancels, takes your save offer or keeps their subscription, Manage subscription opens their account already signed in. See Cancel requests by email.
Fixed
  • Keep my subscription now really keeps it. A customer who chose to keep their subscription on the cancel page could still be cancelled by the support agent 24 hours later. Choosing Keep now stops that.
  • The Sign in link at checkout sent customers to the home page instead of the sign-in page.
  • The sign-in code email came from “Shopquantum Login”.
October 19, 2026 — Cancel requests by email get your cancel page
When a customer emails to cancel, the support agent now sends your cancel page, with your save offer next to a one-click cancel, instead of cancelling on the spot.New
  • The cancel page by email. The customer can say why they’re leaving and see the save offer you set for that reason. Click to cancel is always there and cancels on the first click. See Cancel requests by email.
  • Nobody is charged while a link sits unread. If the customer doesn’t use the link, the agent cancels for them within 24 hours, or 2 hours before their next charge if that’s sooner, and tells them in the same thread.
  • Saves and cancels from email on the Retention screen, with the source Email.
Changed
  • The cancel link in renewal reminder emails opens the same page.
  • The agent still cancels at once when the customer asks a second time, mentions their bank or a chargeback, or their next charge is less than 2½ hours away.
Fixed
  • The confirm page for skip, pause and delay links showed shoppers a line meant for developers. It now shows the normal wording in their language.
October 19, 2026 — Facebook knows who paid with PayPal
Every sale your store reports to Facebook now says how the customer paid, so you can run ads for people who pay with PayPal.New
  • How the customer paid is on every Facebook purchase: PayPal, card (Apple Pay and Google Pay count as card), Klarna or Afterpay. In Ads Manager, make a custom conversion on Purchase where payment_gateway is paypal, then choose it as an ad set’s conversion goal.
Kept working
  • Purchase values, products and Facebook’s matching of browser and server sales don’t change.
October 19, 2026 — The builders can edit your pictures
Ask the store or landing-page builder to change a picture you already have: swap the logo on a product photo, remove a sticker, change a background.New
  • Picture editing in the builders. Say what to change in plain words. “My store logo” uses the logo in your brand settings. See Edit pictures with the builder.
  • Every edit is checked before you see it. A result that changes more than you asked, gets a logo wrong or adds something extra is made again a different way. The new picture is the same size as the original, and your original is never changed.
Changed
  • The AI behind the builders and the Assistant now switches to a backup model on its own when one is slow or down, so answers keep coming.
October 19, 2026 — Renew bundles at their checkout price plus a share
A subscription rule can now renew each subscriber at the price they paid at checkout plus a share, for example a $58 "Buy 2 Get 2" that renews at $77.New
  • Set price → Checkout price plus a share in Subscriptions → Automations. Enter the share to add (33.3333% adds a third) and round to whole dollars or to cents. Each subscriber’s renewal comes from their own checkout price, so one rule covers every bundle and price point.
  • Bundle size condition: the 2 in “Buy 2 Get 2”. “Bundle size ≥ 2” picks every bundle except Buy 1, including bundles you add later.
Kept working
  • Prices only go up. Anyone already paying the new price or more keeps their price, so this rule works alongside a price floor.
  • No email is sent when a price changes.
Fixed
  • A rule that changes thousands of subscriptions now finishes in one run, and its run history no longer stays on “running”.
October 19, 2026 — Each ad campaign shows its own results
On Ads → Facebook & Instagram → Campaigns, each campaign now shows its own new-customer results, so you can tell a winner from a loser.Fixed
  • NC orders, NC CPA, NC revenue and NC-ROAS were the same for every campaign of a product. A product’s new orders used to be split between its campaigns by how much each one spent, so every campaign selling one product showed that product’s ROAS. They’re now split by how much Facebook says each campaign sold. Your real new orders still set the total, so the numbers still add up to the product’s results.
  • The advertising report splits orders between campaigns the same way.
Kept working
  • Store totals, the ROAS-by-product card and Facebook’s own purchases, ROAS and CPA columns don’t change.
October 17, 2026 — Get paid first: a two-step setup, and Accept a payment on Orders
A new account is two steps from a first sale: set up payments, then make a checkout link.Changed
  • The setup guide on Home now has two steps: Set up payments, then Create your first checkout link. Adding products, taking your storefront live, the design, shipping, your AI and your domain are all under one Optional row. See Set up your store.
  • Accept a payment is the blue button on Orders. It opens full screen: pick a product you already sell or add a new one with a picture and description, choose one-time or recurring, and see your store’s real checkout while you type.
  • Finance sits under Operations, with Payouts and Fees.
  • If we can’t open your payments account, the message now says why instead of “check your details”.
  • The App Store shows Open for an app your store already has, instead of Install.
  • The reminder email matches the new setup. Once your payments are on, the email we send asks you to create your first checkout link, with one button to Accept a payment, instead of asking you to add a product. It never comes on the same day as a Turn on payments reminder.
Kept working
  • Every page address still opens the same screen.
October 17, 2026 — A simpler menu, and everything inside the dashboard
The dashboard menu went from about 60 screens on three levels to 13 rows, and nothing sends you out of the dashboard any more.Changed
  • One short menu. Home, Orders, Products, Customers, Payments, Analytics, Store; Grow: Ads, Email & SMS, Affiliates; Operations: Support, Agents, Subscriptions, and More for the rest. The screens inside a row are tabs at the top of the page — Ads, for example, shows Facebook & Instagram, Google & YouTube, TikTok and Ad videos.
  • Settings is one list with a search box: General, Billing, Payments, Checkout, Shipping, Taxes, Domains, Markets & languages, Notifications, Policies, Connections, Costs, Automation. Screens that belong together are tabs inside one row (Shipping → Rates, Labels, Order tracking).
  • The App Store opens inside the dashboard. Apps → Add app browses, searches and installs apps without leaving your store.
  • Apps made by PlatformDTC always open inside the dashboard, never in a new tab.
  • Developer sits at the bottom of the menu, above Settings: AI agent settings, and for app developers your apps, test stores, earnings and partner profile.
  • No more “public beta” banner. A feature that is still in beta shows a Beta tag beside its name: Ad videos and AI answers today.
Kept working
  • Every page address, bookmark and link — including old /partner and /setting/developer links — still opens the same screen.
October 17, 2026 — Accept a payment, and a clearer Get paid screen
Get a working checkout link from one screen, and see at a glance whether you can take cards and get paid.New for merchants
  • Accept a payment. Orders → Accept a payment (also on Home): name, price, one-time or recurring, Create checkout link. No product to set up first; a live preview shows the checkout as you type. You get the link and, for one-time prices, the code for your website. See Checkout URLs.
  • Two plain lines on the payments screen. Take card payments and Get paid to your bank, each On, Needs your details, Being checked, Paused or Off. See Set up PlatformDTC Payments.
  • A turned-down account says so. If our payments partner turns an account down, the screen, the payouts page and your notifications say plainly that card payments and payouts are off, instead of calling it a routine review.
  • Buyers are told when a store can’t take payments yet. The checkout shows This store isn’t taking payments yet at the top, instead of a payment section with nothing in it.
October 17, 2026 — A reminder to add your first product
A new store with no products gets a short email: “Your store is ready — add your first product”. It offers three ways in: import the products you sell on Shopify (product links or a CSV file), pick a product from the catalogue that a supplier ships for you, or let your own AI add them. At most 3 emails, 3 days apart, and none once you add a product or if your store heartbeat is set to No emails. See Set up your store.
October 17, 2026 — Install in Claude Code or Cursor with one command
Add PlatformDTC to Claude Code or Cursor in one step. Our plugin adds the connection to your store and the PlatformDTC skill together. Claude Code: claude plugin marketplace add PSA-Team-source/platformdtc-agent-plugin, then claude plugin install platformdtc@platformdtc. See Install in Claude Code or Cursor.
October 17, 2026 — News: creators, referrals and real results
Today’s growth features in one place: the affiliate marketplace, Refer & earn, Content Rewards, the Made with PlatformDTC showcase, the fee calculator and our listing in the official MCP Registry. More in the blog post.
October 17, 2026 — A store like this one, from your AI
Ask your own AI for “a store like https://example.com” and it builds one.New for agents
  • dtc_create_store takes like_url. Give it the address of a site you like. The new store is an exact clone of it; replace its text and pictures with your own in the editor. brief adds anything else you want, and product_ids puts your products in. Nothing goes live until you publish. See The Playbook.
October 17, 2026 — Set up in minutes
From sign-up to your first sale with fewer steps, and nothing fake on your store.New for merchants
  • A real store from day one. A new store’s home page is built only from your own products: your first product with its photos, price and buy button, then the rest. With no products yet it shows your store name and nothing else. No made-up reviews, member counts, discounts or sample products. Menu and footer links go only to pages your store has.
  • Products go on sale when you add them. A product with a price that you add from the catalogue or the Supplier Network is live in your store at once (see v1.148).
  • A setup guide with 3 steps. Add a product, set up payments, take your store live. A product counts only once it is live, and payments count only once your checkout can take cards. Optional steps: make the design yours, check shipping and tax, connect your AI, connect your own domain. Hide for a day puts it away; Show setup guide on Home brings it back. See Set up your store.
  • Sign up with just your email. A store name is optional. Your store uses your browser’s time zone.
  • Store policies from the first minute. Refund, shipping, privacy, terms and contact policies are written when your store is created, and rewritten when you change your store name, email, currency or country. See Store policies.
  • Your store’s name on customer emails, not “Platform DTC” (see v1.148).
  • “Your store is live” email. When your store’s address first serves your store, you get one email with the link, and your dashboard’s notifications show it for 7 days.
Getting paid
  • One button. Settings → Payment provider shows PlatformDTC Payments first, your country in one line, and Start taking payments. Stripe’s form asks fewer questions: what we already know about you is filled in, and you can change it there. Missing details are named in plain words, like “your bank account” or “a photo ID”.
  • Checkout turns on by itself. If you never chose a card provider, checkout uses PlatformDTC Payments as soon as your account can take cards. A provider you chose is never changed.
  • Sell before payouts are verified. Your store takes cards as soon as Stripe allows charges. Stripe holds payouts until your details are verified.
  • Reminders. If Stripe’s form is left unfinished for a day, we email you how many details are left, with a Continue link. At most 3 emails, 3 days apart.
  • Apple Pay and Google Pay are switched on for your checkout address when your account can take cards.
  • Currency. A store that never chose a currency and has no orders takes your payments account’s currency.
  • Shipping and taxes each have one screen, and Taxes and duties is in every store’s menu (see v1.148). See Card payment providers.
Connect once, we do the rest
  • Facebook. After you connect, your store gets the pixel your account used most recently, or a new one, with purchases also sent from our server. Your product catalog is connected once your store is live. With several ad accounts in one login, the one that spent the most in the last 30 days is turned on. Settings → Pixel settings lets you pick a pixel from Facebook; typing an ID is under Add manually. See Google Shopping and Facebook catalog.
  • TikTok, email and all channels on one screen in Settings → Connections (see v1.150).
Bring your own AI
  • Agents → Connect your AI has a tab for Claude, ChatGPT, Claude Code and other AI, each with the address to copy and 3 steps. Claude, ChatGPT, Claude Code and Cursor show under their own name, without an “unverified app” warning.
  • Ready to work. A connected AI can read your store and make everyday changes. Anything that spends money, messages a customer or goes live still waits for your OK.
  • Approvals you won’t miss. The Agents item in the sidebar shows how many requests are waiting, and you get an email (“Your AI is waiting for your OK”) with a link to each one, at most every 15 minutes.
  • Customer messages wait for you. Support replies, tracking emails, resent payment or download links, and turning on the AI support agent or review-request emails from an outside AI now wait in Approvals, like money. See Connect your own agent.
October 17, 2026 — Listed in the official MCP Registry
AI apps that look up MCP servers can now find PlatformDTC by name.New for agents
  • Official MCP Registry. PlatformDTC’s MCP server is listed as com.platformdtc/store (registry entry). It points at the same address as always, https://api.platformdtc.com/mcp, and is published from our own domain, so apps can tell it’s really us. See Connect your own AI agent.
October 17, 2026 — Refer & earn on pay-as-you-go
Referral earnings now follow pay-as-you-go pricing.Fixed for referrers
  • Earnings on subscription sales. With pay-as-you-go, the 2.9% + 30¢ on a card sale is what card processing costs us, and PlatformDTC’s own part is the 0.5% on subscription sales (the first order of a subscription and every renewal). Refer & earn now pays you 20% of that part. For example, a $29.00 renewal earns PlatformDTC 15¢, and 3¢ of it is yours. A refund or chargeback takes it back, as before. A business still on a monthly plan earns you 20% of that plan, as before.
October 17, 2026 — Connections, TikTok tracking, one email setup
Every outside channel is on one screen, TikTok sales are tracked, and email from your own domain is one flow.New for merchants
  • Settings → Connections replaces Integrations. One card each for Facebook & Instagram, Google & YouTube, TikTok, WhatsApp, email from your domain and product feeds, with one button. Once connected, each card says what is set up, like Every purchase reported to Facebook or Your products are listed on Google Shopping. Picking ad accounts is under Advanced. Old links still work. See Facebook Ads agent.
  • TikTok pixel, added for you. Connecting TikTok puts your ad account’s pixel on your store and checkout. Views, add to cart, checkout and purchases are tracked, and purchases are also sent from our server so they count once. See TikTok ads.
  • One email setup. Sending email from your own domain lives in Settings → Domains → Email: type an address like [email protected], then copy 3 records into your domain provider. We tell you which provider your domain is at and how to add them there. See Email on your domain.
October 17, 2026 — Shopify fee calculator
A free calculator shows what a store pays on Shopify next to PlatformDTC, with every number sourced.New for merchants
  • What would you save? Put in your card sales and orders for a month, your Shopify plan (Basic, Grow or Advanced), monthly or yearly billing, and whether you use Shopify Payments. You see the cost a month and a year on each, and the difference in plain words, including when Shopify costs less.
  • Share your result. The link updates as you type; Copy link to this result copies it. A friend’s link opens on their numbers.
  • Where the numbers come from is on the page: Shopify’s pricing page and its latest card-rate table, Stripe’s standard rate, and our own Pricing, with the date we checked them.
  • Linked from Pricing and the site footer.
October 17, 2026 — Fewer setup steps
Products you add go on sale at once, emails carry your store’s name, and shipping and taxes each have one clear place.New for merchants
  • Add to store = on sale. A product you add from the catalogue or the Supplier Network is live in your store right away when it has a price, with a View button in the message. A product with no price is added as a draft and the message says so. Importing from Shopify links has Put on sale now ticked by default. See Source from the Supplier Network.
  • Your store’s name on customer emails. Order, shipping and other customer emails from a store without its own email domain now show your store’s name as the sender instead of “Platform DTC”. Replies still come to you.
  • One place for shipping prices. Shipping is set only in Settings → Shipping; the Checkout settings page links there. The settings menu item that was called Shipping & sales is now Checkout.
  • Taxes and duties for every store. Settings → Taxes and duties is always in the menu, with no app to install. Your business address is filled in from your payments account, registration types are in plain words, and the usual product category is General – physical goods. Nothing is charged until you add a registration and switch tax on yourself. See Sales tax.
New for agents
  • dtc_network_import_listing imports as live by default (status: 0 for a draft) and returns product_live.
  • The tax tools work for every store; TAX_APP_NOT_INSTALLED is gone.
October 17, 2026 — Grow with creators in one click
Creators, Content Rewards and the showcase now start with one click; we fill in the rest from your store.New for merchants
  • Let creators sell for you. One switch in Marketing → Affiliates → Settings turns your affiliate program on (10% commission, 10% off for shoppers, a 30-day link and a 30-day hold, or the terms you already set), lets creators join and lists you in the affiliate marketplace with a category picked from what you sell. Turning it off stops new joins; your current affiliates keep earning. Everything else is under Change details.
  • Content Rewards in one click. Your first campaign is filled in from your 3 best sellers: what to post about (written from their own descriptions), your store hashtag, TikTok and YouTube, $1.00 per 1,000 views up to $100.00 a post, 30 days. Check the budget and press Start campaign. See Content Rewards.
  • Showcase in one click. Turning on Show my store in the PlatformDTC showcase shows your store and its results as ranges, with a category picked from what you sell. The switch says exactly what will be shown before you turn it on. See Showcase.
  • Refer & earn asks for payout details only once you have earnings.
  • On Home, the daily store note can suggest these when they are off, with a button straight to the switch.
New for agents
  • dtc_set_affiliate_marketplace {listed: true} alone does all of the above (confirm-gated); other fields are optional.
  • dtc_get_content_campaign_draft (new) shows the ready campaign; dtc_create_content_campaign needs only budget_cents.
  • dtc_update_showcase {enabled: true} alone: the first turn-on shows results as ranges and picks a category.
October 17, 2026 — Add to my store is instant
Add to my store in AdLibrarySpy now answers the moment you press it; the product is in your store as a draft straight away.New for merchants
  • Instant Add to my store. The button on AdLibrarySpy reads Added at once (it took 10 to 17 seconds). The draft appears in Products straight away with the product’s name and price when they are already known; its photos, options and description follow in the background, usually within a minute. See From a winning product to your own store.
  • Safe while it copies. A product still being copied shows as Adding… on AdLibrarySpy’s My store and can’t be published or repriced until it is done. If it can’t be copied, you see why, with Try again, and nothing half-copied stays in your store.
New for agents
  • add_to_my_store (AdLibrarySpy MCP) answers at once with stillAdding; get_my_store marks each product still being copied and lists links that could not be added, with the reason.
October 17, 2026 — Copy a landing page from AdLibrarySpy
One click on an ad’s landing page in AdLibrarySpy copies it into your store as a hidden page whose buy buttons go to your store.New for merchants
  • Add this page to my store on AdLibrarySpy’s Landing pages and on every ad. The click answers at once; the page’s words, headings, lists, tables and photos are copied in the background into Online Store → Pages as Hidden. Photos are copied to your store’s storage. Their menu, footer, pop-ups, chat, countdowns, stock counters, reviews widgets, prices, tracking and links are left out. See Copy a landing page into your store.
  • Buy buttons go to your store: the product you added from the same site, otherwise your store’s home page. Never a dead link.
  • Publishing is safe by default. A copied page can’t be made visible while it still names the brand it came from, or while a button goes to a product that isn’t live. See Pages copied from AdLibrarySpy.
  • Pages now show on every store theme. A page you write in Online Store → Pages shows at /pages/<handle> on the starter theme too, once the store’s theme is next published.
October 17, 2026 — No monthly fee
PlatformDTC is now pay-as-you-go: no monthly fee, no setup fee — 2.9% + $0.30 per card sale.New for merchants
  • No monthly fee. Plans are gone. You pay only when a customer pays you: 2.9% + $0.30 per successful card sale on a domestic card. See Pricing.
  • Subscriptions add 0.5%. Charges that start or renew a subscription carry an extra 0.5%.
  • Same pass-throughs as before. International cards +1.5% and currency conversion +1%, at cost. Klarna (5.99% + 30¢) and Afterpay (6% + 30¢) replace the card rate when a shopper pays with them.
  • Every store pays the same or less. If you had a paid plan, it won’t renew and won’t be charged again. Credit balances, and the signup credit, stay on your account.
  • Updated Terms. Section 6 of the Terms of Service now describes the new fees.
New for agents
  • dtc_get_platform_plan now returns the pay-as-you-go rate card and the rate this store pays.
  • dtc_start_verification returns a secure Stripe link the merchant opens to verify their business so the store can take payments; dtc_get_verification_status says whether the store can take payments and get paid out (permission finance:read). The agent never collects ID numbers itself.
October 17, 2026 — Content Rewards
Pay creators for real views. Anyone can post about your products on TikTok or YouTube, and you pay for every 1,000 views on the posts you approve.New for merchants
  • Content Rewards. A new screen under Marketing → Content Rewards. Say what to post about, pick your products, set the pay per 1,000 views, the most one post can earn and a total budget. Your campaign goes live on the public creator board at platformdtc.com/rewards, where anyone can join — no follower minimum. See Content Rewards.
  • Real views only. We read each post’s public view count every 6 hours for 14 days. TikTok and YouTube (videos and Shorts) only — Instagram and X don’t show exact view counts publicly.
  • Nothing earns without you. You approve every post. We check it carries your link, hashtag or code and #ad, was posted after the creator joined, really belongs to them, and wasn’t sent before. Views that jump like bought views put the post on hold.
  • Your budget is a limit, not a deposit. Posts stop earning when it’s used up and the campaign ends itself. You pay creators your way and record it on Creators; they get an email.
For creatorsNew for agents
  • dtc_create_content_campaign, dtc_update_content_campaign, dtc_list_content_campaigns, dtc_get_content_campaign, dtc_list_content_posts, dtc_approve_content_post, dtc_reject_content_post, dtc_list_content_creators and dtc_record_content_payout (/content-rewards/*, scopes marketing:read / marketing:write). Starting a campaign, raising its budget or running it again, approving a post and recording a payment wait for the merchant’s approval (job kinds content_reward.campaign_create, content_reward.campaign_update, content_reward.approve, content_reward.mark_paid).
New for developers
  • Public, no login: GET /api/v1/content-rewards/public/campaigns (open campaigns) and GET /api/v1/content-rewards/public/campaigns/{id}.
October 17, 2026 — Made with PlatformDTC
Show your store on PlatformDTC’s public page of real stores, with results measured from your own orders.New for merchants
  • Made with PlatformDTC. platformdtc.com/made-with lists real stores that run on PlatformDTC, each with its own page: your story, your products and a link to your store. It’s off until you turn it on in Settings → Showcase. See Showcase.
  • You choose what’s shown. Just your store, or your store and its results: orders, sales, growth and returning buyers from the last 30 days. Results show as ranges like “1,000+” unless you choose exact numbers, and we ask you to confirm before showing those.
  • Only real results. Results are measured by PlatformDTC from your paid online orders and checked every 6 hours. Nobody can type a number in. Stores need to be open to visitors, have real products and paid orders, and keep chargebacks and fraud warnings low. If something is missing, the setting screen says what.
New for agents
  • dtc_get_showcase and dtc_update_showcase (GET / PUT /online_store/showcase, scopes read_content / write_content). The reply says whether the store is shown, why not in plain words, and previews what visitors see.
New for developers
  • Public, no login: GET /api/v1/shop/showcase (all listed stores and their categories) and GET /api/v1/shop/showcase/{slug} (one store’s page).
October 17, 2026 — Refer & earn
Share your PlatformDTC link and earn 20% of what PlatformDTC makes from every business you bring in, for 12 months.New for merchants
  • Refer & earn. A new screen in the menu with your personal link, the businesses you brought in, and what you have earned: on hold, ready to pay and paid. See Refer & earn.
  • Your store’s badge earns for you. The “Made with PlatformDTC” badge on your store now carries your link, so a shopper who clicks it and starts a store counts for you.
  • Paid to your bank. Add your payout details once. We pay on the 1st and 16th when you have $50 ready, or right away with Get paid now. Earnings wait 60 days in case of refunds or chargebacks.
New for agents
  • dtc_referral_status reads the owner’s link, earnings and the businesses referred (GET /referrals, permission finance:read).
October 17, 2026 — Affiliate marketplace
Creators can now find your affiliate program on platformdtc.com/earn, join in one tap and get their link and code.New for merchants
  • List your program in the affiliate marketplace. A new card on Marketing → Affiliates → Settings. Off until you turn it on. Choose who can join: anyone, at once, or only people you approve. Add a category and a short line for creators. See Affiliate marketplace.
  • Only real numbers on your listing. Creators see your commission, what shoppers get, how long a link counts, when commissions are paid and your products with a working photo. Active affiliates, orders affiliates brought in and what you have paid them show only once they are more than zero.
  • Shown only while it’s safe for creators. Your program leaves the marketplace by itself if the program is off, nothing has a photo, or chargebacks or card fraud warnings reach 0.5% of card orders. It comes back by itself once fixed. The card tells you what is missing, in plain words.
  • See who came from the marketplace. Those affiliates show Joined from the marketplace in your Affiliates list, and a new From the marketplace filter shows only them.
New for creators
  • One sign-in for every store. Sign in on platformdtc.com with your email and a 4-digit code. It’s the same sign-in as each store’s partner page.
  • One page for every program. platformdtc.com/creator shows every program you’re in, with your link, code, clicks, orders, earnings and payouts. It includes programs you joined on a store’s own partner page. Set your name and how you want to be paid once, for every store.
New for agents
  • dtc_get_affiliate_marketplace and dtc_set_affiliate_marketplace (GET / PUT /affiliates/listing). Listing waits for the merchant’s approval (job kind affiliate.marketplace). Unlisting happens at once.
  • dtc_list_affiliates takes source (invited, applied, marketplace).
For developers
  • Public: GET /affiliates/marketplace and GET /affiliates/marketplace/{slug}. Creator (customer sign-in): GET /customers/affiliates/hub, PUT /customers/affiliates/profile, POST /customers/affiliates/join.
October 14, 2026 — Pause ads when their page is down
If an ad’s landing page breaks, PlatformDTC now pauses those ads within minutes, so you don’t pay for clicks that go nowhere.New for merchants
  • Pause ads when their page is down. A third switch on Marketing → Meta ads → Settings. Every 5 minutes it opens the page each running Facebook ad sends people to. A page that fails two checks in a row (no answer, a broken certificate, a server error, “page not found”, or a closed store) gets its ads paused and you get an email. Pages that only block robots don’t count. See Pause ads when their page is down.
  • Ads stay off until you say so. You get a second email when the page works again. Tap Turn back on next to the page to turn its ads back on.
  • Ask in plain words. Tell the Assistant or the Facebook Ads agent “every 5 minutes, if my ads’ landing page is down, turn the ads off” and it turns this on for you. When you ask for something one of the ad automations already does, the Assistant now names it and offers to help instead of saying it can’t.
New for agents
  • dtc_meta_get_page_guard, dtc_meta_set_page_guard and dtc_meta_resume_page_ads (GET / PUT /ads/meta/page-guard, POST /ads/meta/page-guard/resume). Turning it on happens at once. Turning it off or turning paused ads back on waits for the merchant’s approval (job kinds ads.meta.page_guard_off and ads.meta.page_guard_resume).
October 14, 2026 — One date picker everywhere
Every screen that filters by date now uses the same picker, with the same quick picks.New for merchants
  • Same picker on every date filter: Finance, Payouts, Membership members, Marketing reports, Products, Fulfil orders, Billing history, Creative ads, Abandoned checkouts → Insights, SMS conversations, Meta ads campaigns and partner app analytics, on top of the screens from v1.136.
  • Quick picks on their own date button: Today, Yesterday, Last 7 / 30 / 90 days, Last 12 months, Week / Month (MTD) / Quarter / Year (YTD) to date, last week / month / quarter / year, Black Friday and Black Friday – Cyber Monday. One tap applies it.
  • Custom dates where there were only fixed ones: Meta ads campaigns, Abandoned checkouts → Insights (in your store’s time zone), SMS conversations and partner app analytics.
  • Fixed: the orders date filter and the Finance fees summary left out the last day you picked, so “Today” or “Yesterday” showed nothing. They now include the whole day.
  • Fixed: the Today / 7 days / 30 days chips on SMS conversations didn’t filter anything. Now they do, and “Yesterday” works on the 1st of the month.
New for developers
  • GET /orders and GET /orders/fees/summary: an end_date given as a day (YYYY-MM-DD) now covers that whole day. A full timestamp is still used exactly.
  • GET /checkout/abandoned-checkouts/insights/{merchant_id} takes optional start_date and end_date (YYYY-MM-DD, store time zone, up to 366 days). They replace days.
  • GET /marketing/conversations now uses time_range and takes optional start_date / end_date.
October 14, 2026 — Each task shows its own answer
The Tasks list now shows what each task found, and only the numbers behind that answer.Better for merchants
  • Each task’s own answer. One check can answer several tasks at once along with the rest of the day’s news. Latest answer in the Tasks list is now the part that answers that task. Before, every task showed the whole check’s headline.
  • Numbers that match the task. How it’s doing shows only the numbers behind that answer. A task that reads your Trustpilot page shows its star rating and number of reviews; your sales and ad numbers stay on the sales and ads tasks. Disputes waiting for your proof now show as a number too, with the money at stake.
  • Opening a task shows its answer first, then everything else that check found.
New for agents
  • Tasks in dtc_heartbeat_get carry answer_items and metrics. The Assistant’s task list includes each task’s last answer.
October 14, 2026 — Custom dates in one tap
Picking your own dates on Home, Analytics, Subscriptions, Membership and automation reports now takes one tap.New for merchants
  • Custom opens the calendar right away. No second date button under the row. Once you apply a range, the Custom pill shows those dates; close the calendar without applying and nothing changes.
  • Quick picks the other pills don’t cover: Week to date, Month to date (MTD), Quarter to date, Year to date (YTD), Last week, Last month, Last quarter, Last year, Black Friday and Black Friday – Cyber Monday (the most recent one). One tap applies it.
  • Last month and this month side by side. The calendar no longer spends half its space on next month’s days, which can’t be picked.
  • Works on phones. The calendar fits the screen and scrolls, with the quick picks at the top.
  • Subscriptions → Retention: Custom now lets you pick dates; before, it always showed the last 30 days.
October 14, 2026 — Sell digital products
Sell downloads, such as ebooks, templates and presets, on their own or together with a physical item, in one cart and one checkout.New for merchants
  • Customers get. On each variant choose A physical item, A download or Both, and upload the files on the product page, up to 2 GB each, for every variant or just one. See Sell digital products.
  • Files right away. Buyers get their files on the thank-you page, in a “Your downloads are ready” email and from their account. Links work for 30 days and allow 5 downloads per file; change both per product. A buyer whose link ran out can ask for a fresh one, which is always emailed to the address on the order.
  • No address for downloads. When nothing in the cart ships, checkout asks only for the country (and postal code where it’s used) for tax. Mixed carts ship as usual.
  • EU buyers tick a box to start their download now, which ends their 14-day right to cancel. The time they ticked it is saved on the order.
  • Safe by default. Orders the payment provider flags as high risk wait for your OK. Refunds, chargebacks, fraud warnings and cancelled orders turn the downloads off.
  • Downloads card on the order page: downloads used per file, when the link stops working, and Resend, Turn off or send held downloads.
  • Downloads count as fulfilled at once, are never sent to suppliers and are never returnable. Shopify and CSV imports keep each variant’s “requires shipping” setting.
New for agents
  • dtc_upsert_product takes requires_shipping per variant and download_limit / download_days per product.
  • dtc_add_digital_file (from a public link), dtc_list_digital_files, dtc_remove_digital_file, dtc_get_order_downloads, dtc_resend_downloads, dtc_release_downloads and dtc_revoke_downloads. See the tool catalog.
New for developers
  • Variants carry requires_shipping; products carry download_limit, download_days and digital_files[]. File upload, file-from-link and order-downloads endpoints are in Products.
October 14, 2026 — Subscriptions overview: every number on one page
Subscriptions → Overview now shows everything at once, in plain words.New for merchants
  • Nothing to click open. Every section shows all its numbers, charts and tables as soon as the page loads — no “Show details”. Long tables scroll inside their own card.
  • Plain names. “Revenue per subscriber” instead of ARPU, “Lifetime value vs ad cost” instead of LTV:CAC, “Return on ad spend”, “Revenue kept”, “Gained vs lost revenue” and more. Every number is explained in Subscription metrics, explained.
  • Past periods are what they were. Yesterday, last month or any range that has ended now shows your subscriptions as they stood when it ended, not as they are today.
  • Your store’s day everywhere. Every subscription number and chart starts its days at midnight in your store’s time zone.
  • Payments won back is the money from failed renewals you collected in the period; saves your cancel flow kept show underneath as a monthly amount, never mixed into the cash.
  • Abandoned checkouts: a checkout the customer has since paid for no longer opens an error — it says the order may have been finished.
October 14, 2026 — Read any web page, and watch it with a task
Your agent can now read any public web page, and a task can keep an eye on one for you.New for merchants
  • Watch a page with a task. Put a link in a task, for example “every morning, tell me about new reviews on https://www.trustpilot.com/review/your-store.com”. Each time the task runs it reads that page and tells you what changed: the star rating, new reviews and what customers wrote. Unhappy customers show up as something for you to do. See Store heartbeat.
  • Pages that block robots still open. Pages are read with a real browser, so review sites, competitors’ pages and suppliers’ catalogues work too. If a page can’t be read, the task says so instead of guessing.
New for agents
  • dtc_read_web_page reads any public page: the title, the text a person sees, and what the page publishes about itself (star rating and review count, each review with its stars, author, date and words, products with prices). Pages read in the last hour come from a shared copy; max_age_minutes asks for a fresher one. Public links only, read-only. See the tool catalog.
October 14, 2026 — Why subscribers stay, and why they leave
Subscriptions → Overview now shows what subscribers do before they cancel, how far they get, and how much money is really on the way.New for merchants
  • One page, in sections. Summary, Growth, Keeping subscribers, What subscribers do, Saves, Payments, Coming up and Profit, with a bar to jump between them. Every number is explained in Subscription metrics, explained.
  • Keeping subscribers. Subscribers who left before their first renewal or within 24 hours, revenue churn, how many reach their 2nd, 3rd, 4th, 6th and 12th order, sign-up groups by month (still subscribed, revenue kept and value per subscriber), churn by plan and by delivery frequency, and how many cancelled subscribers come back.
  • What subscribers do. Skips, pauses, swaps, frequency changes, add-ons and more, split by the customer, you and your agent. Automatic changes never count. See how pauses end, the skip rate, and warning signs: actions after which subscribers are more likely to cancel.
  • Saves that held. Your cancel flow’s save rate, how many saved subscribers were still active 30 days later, and cancellations by where they came from.
  • Payments. Cards that expire before the next charge, the renewal rate, and subscriptions stuck in payment recovery for more than 21 days.
  • Coming up. The money you can expect from renewals in the next 30 days, based on how your renewals were paid over the last 90 days.
  • One churn everywhere. Churn is subscribers who cancelled ÷ subscribers active when the period started, on every screen.
New for agents
  • dtc_metrics_query has a new report, subscription_behavior: what subscribers do, warning signs, saves that held, cancellations by source, cards expiring, renewal rate and subscriptions stuck in recovery. subscription_growth and subscription_renewals_forecast carry the new numbers, and every subscription report now describes what it really returns.
October 13, 2026 — From first product to first sale, one step at a time (AdLibrarySpy)
Stores made from AdLibrarySpy now show the one next step: publish your products, turn on payments, get your first order.New for merchants
  • Your next step on My store. After your first product, AdLibrarySpy’s My store and its sidebar box show one step at a time, with done steps checked. Turn on payments signs you in and opens Settings → Payments. Get your first order shows your live store link with Copy link. See Launch a product you found on AdLibrarySpy.
  • Payments count from any provider. PlatformDTC Payments, your own Stripe account, Authorize.Net or PayPal, the same way checkout decides who gets the money.
  • One reminder per step. A step that waited a day gets one email. Turn these off under Settings → Notifications → Store tips in AdLibrarySpy.
New for agents
  • AdLibrarySpy MCP: add_to_my_store, get_my_store (store, products, payments, orders and the next step with its link) and publish_my_store (only after the user says yes).
October 13, 2026 — Ask buyers how they use what they bought
About 30 days after an order arrives, buyers get five quick questions by email. You get honest, first-party numbers and plain feedback.New for merchants
  • Customers → Buyer survey. Turn on Email the survey. Buyers answer which product, when they take it, with food or not, with which other supplements, how often, and an optional comment. One question per screen, under a minute, no login. See Buyer survey.
  • Answers by product. One chart per question with counts and shares, a product filter, and the comments, with OK to quote on those the buyer allowed you to quote.
  • Careful by default. Off until you turn it on. Only buyers who agreed to emails; in the EU, the UK and other places that require it, only buyers who ticked the box themselves. At most once every 90 days per buyer, up to 300 a day, with an unsubscribe link in every email.
  • Your questions. Turn questions off and edit the list of supplements buyers can pick.
New for agents
  • dtc_get_buyer_survey_results reads the answers, per product or all together, and the comments with their quote permission.
October 13, 2026 — See whether AI assistants mention your store
Find out whether ChatGPT, Perplexity and Gemini name your store and link your pages when shoppers ask them questions.New for merchants
  • Marketing → AI answers. Add up to 30 questions your shoppers ask. Once a week each one is asked to ChatGPT, Perplexity and Gemini with web search on, and the screen shows how many questions mentioned you that week, a ✓ or ✗ per assistant for each question, the answer and the pages each one cited. See AI answers.
  • Your pages AI cites most and Sites AI cites instead of you show what is working and which pages to beat.
  • Off until you turn it on. Before the first check, the screen shows only the day it runs.
New for agents
  • dtc_get_ai_answers reads the results and history. dtc_update_ai_answers, dtc_add_ai_answers_question and dtc_remove_ai_answers_question turn checks on or off and manage the questions.
October 13, 2026 — Customers start returns and exchanges on your store
Customers can ask for their money back or swap for another size or colour themselves, without emailing you.New for merchants
  • Let customers start returns on your store. Turn it on from the Returns page and add the address customers send returns to. Customers find their order with its number and email or ZIP code, pick the items, and choose money back or an exchange. They can add a note and photos. See Returns.
  • Review each one, or approve automatically when a request is inside your return rules.
  • Exchanges: Approve & send new item creates a free order for the new size or colour.
  • Money back: Mark received & refund sends the items’ price back to the customer’s original payment, minus your restocking fee if you set one.
  • Customer requests show From customer, what they asked for, their note and photos on the Returns page.
October 13, 2026 — Shipping rates by country, and free shipping over an amount
Charge different shipping for different countries or US states, and give free shipping once an order reaches an amount.New for merchants
  • Settings → Shipping. Group countries or states into zones, each with its own rates and an optional delivery time shown at checkout. See Charge shipping by country.
  • Free shipping over an amount. A free rate that shows once the products in the cart reach your amount. The storefront cart counts down to it: “Spend $12 more for free shipping”.
  • Order-size and weight conditions on any rate.
  • Nothing changes until you save a zone. Your current rates stay on as “Everywhere else”.
  • Your auto-written shipping policy lists each zone’s rates.
New for agents
  • dtc_list_shipping_zones, dtc_upsert_shipping_zone and dtc_delete_shipping_zone. Changes show the before and after and wait for the merchant’s confirmation.
  • dtc_get_checkout_settings returns shipping_by_zone. Once a store uses zones, dtc_update_checkout_settings refuses shipping_options.
October 13, 2026 — Running low alerts, purchase orders, bundles and pre-orders
Know what is running low, order it from your supplier, sell bundles and take pre-orders, all from PlatformDTC.New for merchants
  • Running low. The Inventory page and Home show the items that are out of stock, under your threshold, or will run out in under two weeks at their sales pace, with how many to reorder. Your team gets one email when an item first runs low. Change the rule (units or days) or turn the email off on the Inventory page. See Inventory.
  • Purchase orders. Under Suppliers → Purchase orders, order stock from a Supplier Network supplier or anyone you buy from. Reorder on a low item fills in the quantities for you. Sending emails the order from your store’s address; replies come to you. When the goods arrive, Receive adds them to your stock and updates each item’s cost to what you paid, so your profit stays right.
  • Bundles. Sell items together as one product (2 socks + 1 hat). A bundle can sell as many as its items make, each sale takes the items from stock, shoppers see what it contains, and your packing list shows the items.
  • Pre-orders. Keep selling an item when it is out of stock with a ship date. Shoppers see “Ships by” on the product page, at checkout and in their order email. Customers pay when they order. It stops on its own after the date.
New for agents
  • 16 tools: dtc_list_low_stock, dtc_suggest_reorder, dtc_update_low_stock_settings, dtc_set_low_stock_threshold, dtc_list_purchase_order_suppliers, dtc_list_purchase_orders, dtc_get_purchase_order, dtc_create_purchase_order, dtc_update_purchase_order, dtc_send_purchase_order, dtc_receive_purchase_order, dtc_list_bundles, dtc_create_bundle, dtc_update_bundle, dtc_list_preorders, dtc_set_preorder. Sending a purchase order, bundles and pre-orders wait for the merchant to confirm.
  • dtc_store_snapshot includes the new low_stock report. dtc_upsert_product points bundles to dtc_create_bundle.
October 13, 2026 — Live chat on your store
Shoppers can now chat with you from any page of your store. Chats land in your Support inbox, and you (or your own AI agent) answer them.New for merchants
  • Live chat. Switch it on in Support → Inbox settings → Live chat, with your own greeting. It appears on your published store within a minute, no republish. See Live chat on your store.
  • One inbox. Chats sit next to your email with a Chat label and a channel filter. Your reply shows in the chat and is also emailed when the shopper left an address.
  • Team hours. Shoppers are told when a person is around, and otherwise when your team is back and that the reply also comes by email.
New for agents
  • dtc_get_chat_settings and dtc_update_chat_settings (changes shoppers would see wait for the merchant’s OK). dtc_list_support_tickets takes channel (chat, email, …), and dtc_reply_to_ticket answers in the chat.
October 13, 2026 — Start Google Search, Performance Max and Shopping campaigns, and TikTok ads
Start new Google campaigns from your products in a few clicks, and let your agent build TikTok ads. Everything is built paused and waits for you.New for merchants
  • Start a campaign on Google. On Marketing → Google, pick Search ads, Performance Max or Shopping ads and a daily budget. Ads are written only from your store name, product names and your own product descriptions. If a type isn’t ready yet (for example, Shopping needs a Google Merchant Center), the screen says why.
  • Your campaigns. Every campaign made here or by your agent, with its last 7 days, and Turn on / Pause.
  • TikTok ads. A new Marketing → TikTok ads screen: connect TikTok, set a daily limit, see and switch the campaigns your agent made.
New for agents
  • dtc_google_campaign_options, dtc_google_create_search_campaign, dtc_google_create_pmax_campaign, dtc_google_create_shopping_campaign: built paused; the budget must fit the daily ad limit; going live returns pending_approval.
  • dtc_tiktok_* (10 tools): connection, campaigns, insights, create campaign / ad group / ad, upload video / image, status and budget. Turning on and raising a budget wait for the merchant.
October 13, 2026 — Google Shopping and Facebook catalog feeds
Your products can now run in Google Shopping, Performance Max and Facebook & Instagram catalog ads, from two links that always list your live products.New for merchants
  • Product feeds in Settings → Sales channels: a Google Shopping link and a Facebook & Instagram link with a copy button, how many products are ready, and every product left out with the reason (no photo, no price, no description). See Google Shopping and Facebook catalog.
  • Connect to Facebook catalog makes the catalog in your business portfolio, has it update every hour and links your pixel. Connections made before today reconnect Facebook once.
  • Get new links replaces both links if one was shared by mistake.
New for agents
  • dtc_get_product_feeds, dtc_rebuild_product_feed (catalog:read) and dtc_connect_meta_catalog (ads:write, spends nothing).
October 13, 2026 — Undo for agent changes, and store events for agents
Undo what an agent changed, and let your own agent hear about orders, refunds, low stock and more the moment they happen.New for merchants
  • Undo. In your agent activity, a change an agent made to a price, a product, a collection, a discount, a page, a menu, an email flow or an ad can be put back with Undo. If you or someone else changed the same thing again since, Undo leaves it alone so your later change is never erased. Messages that were sent, refunds and charges say they can’t be undone.
  • Webhooks in plain words. Agents → Webhooks lists what you can be told about (“A new order comes in”, “A product is running low on stock”).
New for agents
  • Store events: order.created, order.paid, order.refunded, order.fulfilled, checkout.abandoned, inventory.low, customer.created, subscription.cancelled, review.created, ticket.created, approval.requested, approval.resolved, pushed to your webhook (signed, retried) or pulled with dtc_list_events. See Webhooks.
  • dtc_list_webhooks, dtc_create_webhook, dtc_delete_webhook without an operator key: store:write plus the read permission of each event, and the owner’s yes for agent keys. dtc_get_low_stock_alert / dtc_set_low_stock_alert set when inventory.low fires.
  • dtc_undo_action puts back a change from the activity feed after the owner confirms.
October 12, 2026 — Your store's notes and tasks now see where money is leaking
Your store’s notes and tasks now see subscriptions that are behind on payment, sudden jumps in cancellations, and ad sets that spend without selling, each with the dollars.New for merchants
  • Renewals in dollars. Notes and tasks see how many subscriptions are behind on payment and what one billing cycle of them is worth, how many failed to renew this week and how much is still unpaid, and the most common reasons, in plain words.
  • Cancellation jumps. Cancellations are compared with the day and the week before, with the top reasons, so a sudden spike gets a note.
  • Ad sets that don’t pay back. The last 7 days of Meta ad sets with no purchase or under $0.70 back per $1, the three biggest, and yesterday on its own. Nothing is paused for you: Meta counts only the first order, not renewals, so pausing stays your call.
  • Every waiting dispute counted. The dispute alert now counts and adds up every dispute waiting on your evidence (it used to stop at 50) and says when they are PayPal disputes rather than card chargebacks.
New for agents
  • dtc_heartbeat_brief carries the new facts as sources renewals, churn and ad_waste, each with its numbers. The disputes alert’s metadata adds paypal_count.
October 12, 2026 — Add products to your store while you browse AdLibrarySpy
Press Add to my store on any product you find on AdLibrarySpy. It lands in your PlatformDTC store as a draft until you publish it.New for merchants
  • Add to my store on every product, store and ad on AdLibrarySpy, and in its browser extension. Your first one makes your store. See Launch a product you found on AdLibrarySpy.
  • Drafts first. Added products never show to shoppers until you press Publish on AdLibrarySpy’s My store, which lists exactly what goes live.
  • Prices can be changed before you publish. Manage on PlatformDTC signs you in here in one click.
October 12, 2026 — Tasks: ask PlatformDTC to do something on your schedule
Ask PlatformDTC to do something for you once, every few hours, every day or every week, and get the answer on Home and in your email.New for merchants
  • Tasks. On Home, open the Tasks tab next to Today and say what you want in your own words, such as “Every Monday at 8:00, tell me how last week’s sales and ads went”. Pick Once, Every hour (every 1, 2, 3, 4, 6 or 12 hours), Every day or Every week. The same list is on the Agents page under Tasks. See Tasks.
  • Just ask. Tell the Assistant “every Monday at 8, tell me how my ads did” and it adds the task. It can also list, change, pause or delete your tasks.
  • Ready-made tasks. Weekly review, Hourly pulse, Evening update and Ads check fill in the form with one tap.
  • Always an answer. When a task is due you get a note in Today, even when everything is normal, and an email at the time you picked unless you turned emails off. Tasks that run every few hours email you only when something is urgent.
  • Pause, change or delete any task from the list. Checks PlatformDTC booked for itself show there too, marked “Added by me”.
New for agents
  • dtc_heartbeat_task_create, dtc_heartbeat_task_update and dtc_heartbeat_task_delete. When the owner asks for something on a schedule, your agent adds it as a task. It runs on PlatformDTC’s side even when your agent is offline. See Store heartbeat for agents.
  • Repeat every few hours with repeat: "hourly" and every_hours (1, 2, 3, 4, 6 or 12; up to 3 per store).
  • dtc_heartbeat_get now lists the store’s tasks, with when each one runs next and its latest answer, plus the store’s time zone.
October 12, 2026 — One account for AdLibrarySpy and PlatformDTC
Your AdLibrarySpy account is now your PlatformDTC account. One click takes you from a winning product to your own store.New for merchants
  • Sell this on your own store. On AdLibrarySpy, winning products, stores and ads have a button that signs you in to PlatformDTC and opens Create Store with that product or store already filled in. See Launch a product you found on AdLibrarySpy.
  • Nothing to set up first. Your store is created the first time you choose the button or sign in here, not before.
  • Add store fixed. The Create Store link in Add store opened nothing. It now opens the store builder.
October 12, 2026 — See which ad campaigns are running
Marketing → Meta ads now shows whether each campaign is running right now, straight from Facebook.New for merchants
  • Status on every campaign. Active, Paused, In review, Needs attention, Archived or Deleted, as Facebook shows it. Sort by status to see your running campaigns first.
  • Active count. The Ad spend card shows how many campaigns are running, for example “97 campaigns, 33 active”.
  • Shorter list. The table opens with your 10 biggest campaigns. Choose Show more to see 10 more.
October 12, 2026 — Your AI agent can now run almost everything you can
An AI agent you connect to your store can now do most of what you do in the dashboard. Anything that moves money or reaches your customers still waits for you.New for agents
  • Orders. Cancel an order (stock goes back, the customer is refunded and emailed), change tags, the notes box and the shipping address, and leave notes only your team sees. Create draft orders and, with your approval, mark them paid.
  • Discounts, gift cards and store credit. Create and change discounts and codes, issue gift cards, and add or take balance. Each one waits for your approval in Agents → Approvals.
  • Stock. Set, adjust and move stock between locations.
  • Your online store. Write and edit store pages, blog posts and menus.
  • Reviews. Publish, hide or delete reviews, and reply publicly once you say yes.
  • Post-purchase offers. Draft, edit, turn on (once you say yes) and pause upsell funnels.
  • Customer emails and checkout. Edit the emails your store sends and your checkout settings: shipping options and prices, purchase types, customer fields, language and delivery dates. Your agent shows you the exact change and waits for your yes, because every customer sees it.
  • Marketing and Google ads. Edit draft campaigns, cancel scheduled ones, edit email templates and flows, and pause or change Google campaigns. Turning ads on or raising a budget waits for you.
New for merchants
  • Plain names in Agents → Approvals. Every request an agent can park now has a plain name, such as “Create a discount”, “Issue a gift card” or “Turn on Google ads”.
  • One line to start. The message for your agent is now just “Read https://platformdtc.com/SKILL.md”. Your agent signs in, looks at your store and suggests what to do next; then ask it for anything.
October 12, 2026 — Your AI agent sees every number you see; Products and Support reports
An AI agent you connect to your store can now read every number on your Analytics screens, from ads to support. Two new reports show what your products and your support inbox are doing.New for merchants
  • Analytics → Reports → Products. Units sold, sales, products that sold, and the share of units refunded or returned, against the period before. One table has every product: units, sales, average price, units per day, refunds, return rate, gross margin and rating, plus your best-selling variants. If you track stock, you also see what is out of stock now and what runs out within 14 days.
  • Analytics → Reports → Support. Tickets opened and closed, how many are waiting for a reply, tickets per 100 orders, first reply time, time to close, replies by the AI assistant and by your team, and why customers write in.
  • Automatic “we got your message” emails no longer count as a reply. Before, they made first reply times look instant and hid tickets from Awaiting reply.
New for agents
  • dtc_store_snapshot. Every area in one call: sales, profit, payments, ads, traffic, subscriptions, products, delivery, support and chargebacks. Each number comes with the period before and the change.
  • dtc_metrics_catalog and dtc_metrics_query. More than 40 reports, the same as your Analytics screens and computed by the same code: full daily series and every table row (per campaign, ad account, product, carrier, ticket reason and more).
  • dtc_metrics_export. Raw rows for the agent’s own analysis: orders, order lines, refunds, ad results, subscriptions and their changes, parcels, support tickets and chargebacks. Customers appear as ids, never names, emails or addresses.
  • Agents learn all of this from platformdtc.com/SKILL.md. See Store numbers for agents.
October 11, 2026 — Checkout: choose your default offer's discount, and see it
You can now set how much the default post-purchase offer takes off, and see the page your customers get.New for merchants
  • Your own discount. In Checkout Editor → Post-purchase offers, the Default offer card now lets you change “one more of what they just bought at 30% off” to any discount from 1% to 90%. The price shown and the price charged always match.
  • See what shoppers see. One click opens the real after-payment page, with your branding and one of your own products, at the discount you typed. Nothing on the preview charges a card.
October 8, 2026 — Meta ads: Test, scale, graveyard removed
Test, scale, graveyard is gone from Marketing → Meta ads.Changed for merchants
  • No more product switch. The Test, scale, graveyard section is no longer on the Settings tab, and nothing moves ads between test, country and graveyard campaigns any more.
  • Your campaigns keep running. Campaigns it already built stay exactly as they are on Facebook, with their bid caps. Your daily limit and Protect my money (when it is on) still watch them, and you can pause or change them in Ads Manager.
  • Still on the Campaigns tab. Their spend, new-customer orders and returns still show on the Campaigns tab, under Your assistant.
October 7, 2026 — Subscriptions: which products keep subscribers, and what they return on ad spend
Subscriptions → Home now has one table that shows, product by product, who pays their renewals and whether the ads behind them pay off.New for merchants
  • Out of every 100. For each product, of 100 subscribers whose 1st renewal came due: how many paid it, how many cards were declined, how many cancelled, how many were stopped for fraud and how many removed PayPal. Products are sorted by how many paid, and 70 or more shows in green.
  • Why cards were declined. Declines are split into No money, Bank said no, Dead card and PayPal failed, so you can see what’s fixable.
  • What happens next. How many of the same 100 are still subscribed today, how many paid their 2nd renewal, and how many are still waiting for their 1st charge because it was moved later (a bundle, a skip, or waiting for the first parcel).
  • Ads and return. Ad spend, new customers and cost per new customer for each product, its average first order, renewal and 12-month value, and three returns on ad spend: on the first order, by the 1st renewal, and over 12 months. About 2× or more over 12 months is what makes money after costs.
  • Small products are folded away. Products with too few subscribers to judge sit behind Show products with fewer than …. A number we can’t measure yet is left blank.
October 7, 2026 — Dashboard: see which ad accounts Meta has stopped
The Advertising table on your dashboard now shows what Meta says about each of your ad accounts.New for merchants
  • Status next to every account. Open Meta in the Advertising table on Home to see each ad account’s status: Active, Unpaid balance, Disabled by Meta, In review, Closing or No longer shared. Hover over it to see what it means and when we last checked.
  • Checked every 15 minutes. We ask Meta and Google about every connected ad account every 15 minutes, so once you pay a balance or Meta reinstates an account, it shows here within minutes.
  • Same words everywhere. Settings → Integrations → Accounts uses the same status names, and Google accounts now say “Disabled by Google” instead of “Disabled by Meta”.
  • A shorter table. The Advertising table now shows Spend, ROAS, Purchases, CV and NC-CPA (cost per new customer). Sessions, Blended ROAS and CPA are gone. The account names stay in view when you scroll sideways on a small screen.
October 7, 2026 — Subscriptions: lifetime value from your real renewals
Estimated LTV and LTV : CAC now come from what your subscribers actually paid, not a formula.Changed for merchants
  • Real renewals, not a guess. On Subscriptions → Overview, Estimated LTV is what a subscriber who signed up at your checkout brings in over their first year: of the subscribers whose next charge has come due, how many paid it, charge by charge, times what each charge leaves you. It used to divide this month’s revenue per subscriber by the churn of the dates you picked, so a short range made it look several times bigger.
  • Only subscribers who have been through it count. Someone whose next charge isn’t due yet, who skipped or delayed it, or who is still inside the 3 weeks of payment retries isn’t counted either way until it settles. Subscriptions moved in from another platform aren’t counted, because their start date is the day they were moved, not the day they signed up.
  • Profit, not sales. When your product costs are set, the value is after product cost, shipping, payment fees and refunds, so LTV : CAC compares what a subscriber really earns you with what it cost to get them.
  • One number for every date range. Changing the dates changes the cost to get a subscriber, not their lifetime value. The tile tells you how many charges an average subscriber pays in their first year and what share pay their 2nd charge.
October 7, 2026 — Meta ads: every campaign your AI runs, with your real numbers
Marketing → Meta ads now opens on a table of the campaigns your AI made, with the same numbers as your dashboard.New for merchants
  • Campaigns tab. Every campaign that Grow winning products, Test, scale, graveyard or your assistant created, with ad spend, new-customer orders, cost per new customer (NC CPA), new-customer revenue, NC-ROAS, Meta purchases, Meta ROAS and CPA. Pick any period, from Today to All time, and sort by any column.
  • Totals at the top show what your AI’s campaigns spent, what share of your Meta spend that is, and what they brought back.
  • How new orders are counted. We can’t tie an order to a single campaign, so each product’s new orders are shared across the campaigns advertising it, in line with each campaign’s share of that product’s ad spend. This is the same rule as the Advertising report. Meta ROAS and CPA are each campaign’s own.
  • Settings tab. Your automation switches and their last 30 days, Test, scale, graveyard, daily limits and every other setting now live here.
October 7, 2026 — Facebook ad automations: off until you turn them on, and their results on screen
Nothing touches your Facebook ads until you choose it, and each automation now shows what it did for you.Changed for merchants
  • Off until you turn them on. On Marketing → Meta ads, Grow winning products and Protect my money start off for a new store. Each one runs only after you switch it on. Stores that already used them keep their settings.
  • Results under every switch. Each automation shows its last 30 days in plain numbers. Grow winning products shows the campaigns it started and their spend, orders, sales and return. Protect my money shows how often it lowered budgets and your cost per order on those products before and after. When there’s nothing yet, nothing is shown.
  • Paused stays paused. “Turn winners back on” and “Pause ads that aren’t selling” are gone. Nothing switches a paused campaign or ad back on by itself, on Facebook or Google. Ads that were already paused stay paused until you turn them on. Budgets Protect my money lowered still go back up, step by step, once the product’s cost per order is good again.
October 7, 2026 — Today in your store: a daily note on Home
PlatformDTC now checks your store for you and leaves one short note in plain words: what needs you, ways to earn more and what was done for you.New for merchants
  • Today in your store. A card at the top of Home with one note, grouped into Needs you, Ways to earn more, Done for you and Good to know. To-dos from the last 3 days you haven’t answered stay under Still waiting on you. See Store heartbeat.
  • Checked every morning and whenever something changes, in your store’s time zone. It books its own follow-up checks, and Check now runs one right away. When nothing matters, it stays quiet.
  • Only real facts. Every point rests on your own sales, ads, growth goal, alerts and waiting work. Nothing is guessed.
  • Done or Not now on each to-do takes it off the card and the bell. The bell lists heartbeat to-dos it didn’t already show.
  • Your settings. Turn Watch my store off or on, tell it what else to keep an eye on, and choose your email: Every morning + anything urgent, Only urgent things or No emails. No emails go out at night.
For developers
  • MCP tools dtc_heartbeat_get, dtc_heartbeat_brief, dtc_heartbeat_check, dtc_heartbeat_resolve_item, dtc_heartbeat_schedule_check, and Agent Gateway routes under /api/v1/agent/v1/heartbeat.
  • A2A: agent card at https://api.platformdtc.com/.well-known/agent-card.json, endpoint POST /a2a (A2A v1.0 and v0.3), skills store-pulse, check-store, resolve-item, schedule-check. See Store heartbeat for agents.
October 5, 2026 — Test, scale, graveyard for Facebook ads
Run any product the way big brands run Facebook ads: test new ads, scale the winners by country, and keep the near misses.New for merchants
  • One switch per product on Marketing → Meta ads. It sets up a test campaign, one capped campaign per country for winners, and a graveyard for ads that almost made it, on every ad account the product sells through.
  • Ads move on their own. Every day weak test ads are stopped early, winners move to the country campaigns, and winners that fade move to the graveyard.
  • Past buyers left out. Your existing customers and recent website buyers don’t see these ads.
  • Approval first. Everything starts paused until you approve it. See Your Facebook Ads agent.
October 5, 2026 — Ad spend and sales in other currencies now shown in dollars
If your ad account or some of your orders are in euros, pounds or another currency, your reports now turn them into US dollars before adding them up.Fixed for merchants
  • Ad spend in another currency. A Facebook or Google ad account billed in euros (or any other currency) used to show its spend as the same number of dollars. It’s now converted at that day’s exchange rate, so spend, return on ad spend and cost per sale are correct.
  • Orders in other currencies. Sales paid in euros, pounds, Australian dollars and other currencies are now converted before they’re added to your totals on the Dashboard, Profit, Advertising and Store overview screens.
  • Subscriptions, memberships, upsells, payments and email marketing reports are in US dollars too. Plan prices and order totals are both converted, so averages and ratios stay correct.
  • Each ad account’s own page still shows its spend in that account’s currency, the same as in Facebook or Google.
  • Your ad limits and cost guards are unchanged. They still work in your ad account’s own currency.
October 5, 2026 — Google Ads in your dashboard
Run your Google Search ads next to your Facebook ads, with the same approvals and daily limit.New for merchants
  • Connect Google Ads on Marketing → Google and see your campaigns, spend, clicks, sales and return on ad spend.
  • Brand protection. One step puts your own ad on Google searches for your store’s name, so shoppers looking for you don’t land on a competitor.
  • Daily limit and cost guard. Set the most you’ll spend per day; campaigns pause and you get a notification when it’s reached.
  • Auto-optimize: Off, Practice or On. Practice shows what the agent would change without changing anything.
  • Approval first. Turning ads on, raising a budget and launching brand protection wait for your Approve. Pausing and lowering a budget happen right away. See Your Google Ads agent.
October 2, 2026 — Apps keep their data in PlatformDTC
Every app’s data now lives in the store’s one record, where your assistant can read it.New for merchants
  • Apps save their data in PlatformDTC, not only on their own servers. Your assistant sees orders, subscriptions and every app’s data in one place. See Why PlatformDTC.
For developers
  • New guide: Where your app keeps its data.
  • New automated review check data_kept_on_platform: an app that can change store data or read customer data must have saved $app metafields or metaobjects on at least one store, such as a development store.
October 1, 2026 — Your own growth checklist
The growth checklist now fits your store.New for merchants
  • Subscriptions is a sales channel. Add it in Settings → Sales channels. Stores that already sell subscriptions keep it, and stores that don’t get a simpler menu.
  • Checklist by store type. Subscription stores see the full growth checklist. Every other store sees Business health, which has four rules: cash, bank-ready numbers, cost per new customer and chargebacks. See Growth checklist.
  • Customize. Turn rules off and set your own targets, with order sizes in your store’s currency. Reset to recommended at any time.
For developers
  • GET/PUT /api/v1/dashboard/v3/store/{store_id}/growth-checklist. Sales channel subscriptions on /api/v1/settings/sales-channels.
October 1, 2026 — Subscription profit, health targets and offer alerts
See whether subscriptions make you money, not just revenue.New for merchants
  • Profit per customer. Subscriptions → Overview compares the profit a subscriber leaves you with a one-time buyer’s — first 90 days, and month by month for each month you won customers. See Subscription offer test, profit and health.
  • Subscription health. Four tiles with targets: buyers who subscribe, still subscribed at first renewal, product cost share of price, and average subscription order.
  • Early-warning alert. When an offer newly loses too many people in their first 3 days, you get an email and a bell alert, once.
  • Plans start at every 4 weeks. New plans default to every 4 weeks, with one-click cadences. The plan editor warns on discounts of 30% or more and shows the one-time price next to what subscribers pay.
For developers
  • GET /api/v1/subscriptions/customer/analytics/economics — profit cohorts and health tiles. Notification topic subscription.offer_early_warning.
October 1, 2026 — Membership perks for every kind of product
A membership club now works for clothing, luggage, electronics and anything else that is not re-ordered every month.New for merchants
  • Lifetime warranty perk. Members ask for a replacement on anything they bought as a member, from their customer portal. Requests land in Returns, marked Warranty — member, with a Warranty claims tab. See Membership.
  • Priority support perk. Members’ messages come first in your Support inbox with a Member badge, and your support agent answers them first.
  • Perks listed together. The plan editor and the join banner on your store now show Lifetime warranty, Priority support and Early access to new products alongside your discounts.
For developers
  • Plans: perks.warrantyIncluded, perks.warrantyTerms, perks.prioritySupport. Returns: kind (return or warranty) and GET /returns?kind=warranty. Support conversations: member.
October 1, 2026 — Monthly growth goal and the real cost of a new customer
Know whether this month is on track, and what a new customer really costs.New for merchants
  • Growth this month. A Dashboard card comparing sales so far with the same days last month, where this pace ends the month, and the last six months of growth. See Growth goal and real cost per new customer.
  • Monthly growth goal. We suggest 30% a month; set your own on the card. From day 20 you get one email and a bell notification if the month is heading below it.
  • Real cost per new customer. All ad spend divided by first-time buyers, this month and last, next to what Facebook says a sale costs.
  • Plain words. “NCPA” on Analytics is now Cost to get a new customer.
For developers
  • GET/PUT /api/v1/dashboard/v3/store/{store_id}/growth-goal, GET /api/v1/dashboard/v3/store/{store_id}/acquisition-cost. Notification event store.growth_goal_behind. The always-zero monthlyGoal / progressPercentage fields are removed from the dashboard response.
October 1, 2026 — Search engine listing, barcodes and photo alt text
Choose how products look in Google and link previews, add barcodes, and describe your photos.New for merchants
  • Search engine listing. On each product, set the page title and meta description shown in Google results and link previews. Leave them blank and the product title and description are used. See Search listing, barcodes and alt text.
  • Barcodes on variants. ISBN, UPC, EAN or GTIN, in the new Barcode field on each variant.
  • Alt text on photos. Click ALT on a product photo to describe it for screen readers and search engines.
  • Imports keep them. CSV import, Shopify link import and moving from Shopify now bring SEO title, SEO description, barcodes and image alt text across. Duplicating a product copies them too.
For developers
  • Products: seo_title, seo_description. Variants: barcode. Images: alt, set with PATCH /api/v1/products/{id}/images/{image_id}.
September 30, 2026 — Automated collections, import products from a file, theme editor upgrades
Collections that fill themselves, whole catalogues from one file, and more control in the theme editor.New for merchants
  • Automated collections. Set conditions — title, type, vendor, tag, price, compare-at price or stock — and every product that matches is in the collection, now and as your catalogue changes. Choose whether products must meet all conditions or any one. See Collections.
  • Import products from a CSV file. Products → Import Products → From a CSV file. A Shopify export works as it is: options, variants, prices, costs, stock and photos come across, and every problem is shown in a plain sentence before anything is added. Tick Update products that already exist to refresh products you already have (matched by handle) instead of skipping them. See Import products from a file.
  • Arrange product photos. Drag a photo, or use Move earlier / Move later; the first photo is the Featured one. The new order now reaches your store.
  • Theme editor:
    • Bold, italic and line breaks in Text blocks, FAQ answers and review quotes.
    • Links on Text and Group blocks — make a whole card clickable; buttons inside it still work.
    • Social media links in the footer — Facebook, Instagram, YouTube, TikTok, X, Pinterest, Snapchat, Tumblr and Vimeo. Only the ones you fill in are shown.
    • Multi-column on phones — choose 1 or 2 columns on mobile, swipe through columns on a phone, or show them as a slider on desktop.
    • Groups can go in the scrolling ticker, and review blocks can show up to three customer photos.
Fixed
  • Photo order changes and new uploads on some products didn’t show on the store. They do now.
  • Image-with-text sections fit a phone screen, and button labels stay on one line.
For developers
  • GET / PUT /api/v1/collections/{id}/rules; GET /collections returns automated. Membership edits on an automated collection return 409.
  • POST /api/v1/products/import/csv/preview and POST /api/v1/products/import/csv (update_existing overwrites products with the same handle; results carry updated).
September 30, 2026 — Connect any AI with a link and a code
Any AI can now set up and run your store from one sentence, with nothing to install.New for merchants
  • Tell your AI “Read https://platformdtc.com/SKILL.md and set up my PlatformDTC store”. It sends you a sign-in link; you approve and paste back the code the page shows. See Connect your own AI agent.
  • Approvals say what they will do. Each waiting request names the action and its subject — Send email campaign “Black Friday” with the subject line, Publish theme “Summer” — plus the store, the agent that asked and when it expires.
  • Old requests expire. A request not approved within 3 days is cancelled and shown as Expired, so an old campaign can never go out on one click.
  • Publish without asking again. When you connect an agent that can publish themes, one ticked box lets its publishes go live without a second approval. Any publish can be undone from the theme’s version history.
  • All jobs shows plain statuses (Waiting for you, Done, Failed with the reason, Expired) instead of IDs and 0% bars.
For developers
  • Pending approvals older than 72 hours are cancelled with APPROVAL_EXPIRED.
  • Built-in OAuth client dtcmcp_platformdtc_chat with redirect https://platformdtc.com/oauth/code, which displays the code instead of redirecting. PKCE S256 is required; with no scope it asks for every store permission.
  • https://api.platformdtc.com/mcp now also answers tools/list and tools/call without initialize or Mcp-Session-Id, so a plain curl with a bearer key works. A retry of the identical call replays instead of acting twice.
September 30, 2026 — Offer test, cash cycle, growth alerts
See whether each subscription discount pays for itself, and get warned when growth is outrunning your cash.New for merchants
  • Offer test on Subscriptions → Overview. For every plan × discount started in the period: the share of subscribers who cancel within 72 hours, and what a subscriber pays in their first 90 days next to a one-time buyer. Each offer gets a verdict — Beats, Matches or Trails one-time (±10%) once the 90-day answer is in, an early-cancel verdict against your other offers before that. Nothing is reported from fewer than 20 customers.
  • Churn cause trends. Click a cause in Why subscribers left to see its cancellations per day, week or month, stacked by reason, with its share of all cancellations.
  • Cash cycle on the Dashboard: days from sale to money in the bank (from your Stripe payouts), ad spend and revenue growth, refunds + chargebacks, product cost share, delivery problems and an estimated cash position over the last 30 days. Lines without data are not shown.
  • “Growth is outrunning your cash” alert, by email and in the bell, when ad spend or revenue is up 50%+ and refunds, product cost, payouts, cash position or deliveries are going the wrong way. Alert only — nothing is changed on your store.
  • Delivery digests in the bell. The daily stalled, late, exception, never-scanned and label-only parcel digests now also appear in the bell, linking to the matching Shipments list.
Fixed
  • A disconnected PlatformDTC Payments account now says so. When access to the account is revoked, Settings → Payments shows it as Disconnected with a Reconnect button, and the bell tells you payouts have stopped. Before, it could keep showing as connected.
For developers
  • GET /api/v1/dashboard/v3/store/{id}/cash-cycle returns the card’s figures; absent sources are null, never 0.
Guides: Subscription offer test and churn causes, Cash cycle and growth alerts.
September 30, 2026 — Authorize.Net subscriptions, PayPal portal fix, Skio moves and card requests
Subscriptions now renew on Authorize.Net, and moved subscribers can add their own card from a one-click email.New for merchants
  • Authorize.Net subscription renewals. A subscription bought through Authorize.Net saves the card in an Authorize.Net customer profile, and renewals charge it as a recurring card-on-file payment. Refunds and voids work for checkout and renewal orders. A customer who updates their card in the portal moves that subscription to Stripe.
  • Renewals that fail because a payment provider is down are deferred, not dunned, now including Authorize.Net: no failed attempt, no customer email, retried automatically.
  • PayPal in the customer portal. When a customer re-connects PayPal, the new PayPal account replaces the old one, including an imported billing agreement, so renewals stop charging an agreement PayPal has already cancelled.
  • Move from Shopify: Skio. Subscriptions can now be moved from Skio as well as Recharge — products, quantities, prices, frequency, next billing date, address, shipping and discounts.
  • Ask subscribers to add their card. For moved subscribers whose card couldn’t move (PayPal, cards held by Shopify Payments), Email subscribers sends a store-branded email with a one-click link that signs them in to add a card or PayPal. Reminders on day 3 and 7; at most one email per 24 hours and 6 in total; links expire after 7 days. Once the card is added the subscription switches on at its original date if you’ve confirmed the old app stopped billing.
Guides: Card payment providers, Subscription renewals by payment method, Move from Shopify.
September 29, 2026 — Sales tax on orders in another currency
Orders paid in a market currency are now taxed. Before this, they were charged without tax.New for merchants
  • With the Tax app on and Markets active, Stripe Tax calculates tax in the shopper’s currency on the prices they see. The checkout, wallet sheet and receipt show it in that currency, and it is exactly what they pay.
  • The order records the tax in your store currency (the Taxes line and analytics), and the tax transaction on your Stripe account is in the currency charged, so refunds reverse the right share of it.
For developers
  • POST /api/v1/checkout/stripe/tax-quote now answers a market cart with presentment: {currency, taxMinor, totalMinor, lines}. taxCents, totalCents and lines stay in store currency.
Guides: Sales tax, Markets.
September 29, 2026 — Sales tax is now the Tax app
Sales tax now comes from the PlatformDTC Tax app in the App Store. Stores without it charge no tax.New for merchants
  • App Store → PlatformDTC Tax: install it on a store to get Settings → Taxes and duties. Until then the page offers the install and your checkout never adds tax.
  • After installing, tax stays off until you finish Stripe Tax setup and switch it on, as before.
  • Uninstalling switches tax off at checkout immediately. Your settings and registrations are kept; reinstalling brings them back with tax switched off until you turn it on again.
  • The app adds a tax skill to your AI assistant.
For developers
  • The tax agent tools and /settings/taxes routes answer 403 TAX_APP_NOT_INSTALLED for a store without the Tax app.
Guide: Sales tax.
September 29, 2026 — Markets: sell in local currencies
Shoppers abroad see your prices and pay in their own currency. Your orders, payouts and reports stay in your store currency. Off until you turn it on.New for merchants
  • Settings → Markets: group countries into markets, each with its own currency, Stripe’s live exchange rate or a fixed rate, a price adjustment and rounding (.99, .95, whole numbers, or the nearest 10 / 100 / 1,000).
  • Storefront: prices convert to the shopper’s currency, with a country / currency selector in the footer.
  • Checkout: cart, discounts, shipping and total are shown and charged in the market currency, following the shipping country.
  • Orders: booked in your store currency; the order page shows what the customer paid in theirs. Refunds go back in the customer’s currency at the order’s own rate.
  • Turning Markets on never changes a price in your store currency. Subscriptions, membership pricing and PayPal stay in your store currency.
For developers
  • GET /api/v1/checkout/context/markets/{store_id} — the store’s active markets (currency, rate, rounding) for custom storefronts.
Guide: Markets.
September 29, 2026 — Automatic sales tax at checkout
Charge sales tax automatically at checkout in the places you’re registered. Off until you turn it on.New for merchants
  • Settings → Taxes and duties: your business address and product category, your tax registrations (US states, Canada, EU OSS/IOSS, UK and more), and one switch to collect tax at checkout.
  • Tax is worked out by Stripe Tax from the shipping address, shown as its own line before the shopper pays, and recorded on the order (Taxes on the order page and the analytics dashboard).
  • Every taxed sale and refund is recorded on your own Stripe account for your tax reports.
  • Charge tax on shipping rates, on by default, taxes shipping where the law does.
For developers
  • Agent tools dtc_get_tax_settings, dtc_update_tax_settings, dtc_add_tax_registration and dtc_expire_tax_registration (store:read / store:write).
Guide: Sales tax.
September 29, 2026 — Buy and print shipping labels
Buy USPS, UPS and FedEx labels from the order, print them as 4×6 PDFs, and the tracking goes on the order by itself.New for merchants
  • Settings → Shipping labels: your ship-from address, customs signer and saved packages.
  • Buy shipping label on the order page and in the Fulfill list’s row menu: compare carrier rates, buy with one click, print. Charged to your billing card only when you click Buy.
  • The label fulfils the order and sends your customer the shipping confirmation, like typing the tracking number in.
  • International: a customs declaration pre-filled from the order’s lines (values in USD, HS codes).
  • Void an unused label; your card is refunded when the carrier confirms.
For developers
  • Agent tools dtc_shipping_label_order, dtc_shipping_label_rates, dtc_buy_shipping_label (money: needs approval_context.merchant_confirmed) and dtc_void_shipping_label.
Guide: Shipping labels.
September 28, 2026 — Plan prices and card rates are back to Basic $20 / Pro $200 / Scale $2,000
The pricing announced in v1.85 has been withdrawn. Plans and card rates are what they were before it.Changed for merchants
  • Plan prices, per store per month: Basic $20, Pro $200, Scale $2,000.
  • Domestic card rate by plan: Basic 3.8% + 30¢, Pro 3.5% + 30¢, Scale 3.4% + 30¢.
  • $1 for your first month on the first plan you start, once per account.
  • No subscription was started on the v1.85 prices, so no account is affected.
September 28, 2026 — Sign in without a password
PlatformDTC no longer uses passwords. Sign in with Google, or with a link and 6-digit code we email you.Changed for merchants
  • Email me a sign-in link. Enter your email and we send one email with a Sign in button and a 6-digit code. Tap the button on the device you’re using, or type the code, handy when your email is on your phone. Both work once and expire after 15 minutes.
  • Signing up works the same way. Continue with Google, or enter your email (and, if you like, a store name). Your account and store are created when you use the link or code.
  • Password sign-in, sign-up, reset and change-password are gone, including the password section in Settings → Account. Your account, stores and data are unchanged: use the same email address. If you were signed in, you stay signed in.
  • Disconnecting Google is always allowed now, because you can always sign in with an email link.
For developers
  • POST /api/v1/auth/login, /register, /forgot-password, /reset-password, /change-password and /set-password return 410 with error_code: PASSWORD_SIGN_IN_REMOVED. The dtc CLI, MCP agents and App Store apps already sign in through the browser and are unaffected.
Guide: Sign in to PlatformDTC.
September 28, 2026 — Up to 10 stores per account
An account can now hold up to 10 stores.Changed for merchants
  • 10 stores per account. Every store that has not been removed counts, whether it is published or not. Removed stores and partner development stores don’t. At 10, Settings → Stores shows “10 of 10 stores” and replaces Add store with Contact us. The store switcher’s Add Store opens the same explanation instead of a form. See Up to 10 stores per account.
  • New error for the API. Creating an 11th store answers 409 STORE_CAP_REACHED with “You can have up to 10 stores. Contact us to remove one you don’t use, or to get more.” and errors: { limit, count }. GET /settings/stores/limits now also returns account_limit and reason.
  • Contact us for more. We can raise the limit for one account, or remove a store you no longer use.
Kept working
  • Accounts that already have more than 10 stores keep all of them. Nothing is removed or paused, and every store keeps working. Those accounts can’t add a store until they are under 10.
  • Per-store plans, the one-unpaid-store rule and development stores (up to 20 per partner organization) are unchanged.
September 28, 2026 — Lower prices, one card rate, $1 a month for three months
Plans cost less, card processing costs less, and your first three months are $1 a month. More in the blog post.Changed for merchants
  • New plan prices, per store per month: Basic $20 (unchanged), Pro $49 (was $200), Scale $299 (was $2,000).
  • One card rate on every plan: 3.3% + 30¢ on a domestic card (was 3.8% on Basic, 3.5% on Pro and 3.4% on Scale). Klarna is now 6.39% + 30¢ and Afterpay 6.4% + 30¢. International cards (+1.5%) and currency conversion (+1%) are still passed through at cost. The new rate applies to every store from today, including stores on plans we no longer sell. See Payment fees and rates.
  • $1 a month for your first three months on the first plan you start, once per account (was $1 for the first month). Signing up, building and publishing stay free.
  • Nobody pays more. A subscription whose plan got cheaper moves to the new price from its next renewal, with no proration charge.
September 28, 2026 — Renewals charge on the same day every month
A subscription renewal is now charged on its renewal date, at the time of day the customer checked out — the same day every cycle, the way Stripe Billing and Recharge bill.Changed for merchants
  • No more moving renewals to payday. Renewals used to wait up to 4 days for the customer’s payday and ran at your store’s billing hour. Every renewal now charges on the subscription’s billing day: a monthly subscription started on the 5th is charged on the 5th, and one started on January 31 is charged on February 28, then March 31.
  • The subscriptions list shows one date. The renewal date is the charge date. A second “Charges …” line appears under it only when the charge is scheduled for a different day — because you rescheduled or delayed the renewal, or because it is being retried.
  • Billing & retry hour is now Retry hour. In Subscriptions → Settings → Dunning & Smart Retries the hour now applies to automatic retries only.
Not changed
  • Insufficient-funds retries still wait for payday. With Smart AI retry, a renewal declined for insufficient funds is still retried on the customer’s next likely payday, at your retry hour in their time zone. See Insufficient funds: retried on payday.
Guide: When renewals are charged.
September 28, 2026 — First renewal follows the plan
A new subscription’s first renewal is now exactly one plan interval after checkout.Changed for merchants
  • No more “Wait before first charge”. The field is gone from Subscriptions → Plans and from Create checkout link. A monthly subscription first renews one calendar month after checkout, an every-3-months subscription three months after. To sell a bundle that ships several months of product up front, sell it on the longer plan — Create checkout link now offers Every 2 months. Checkout links and ads created with a wait keep working and charge the same price; only the wait is ignored. Subscriptions that already exist keep their scheduled dates. The checkout page’s “starting” date now matches the calendar-month renewal. See When renewals are charged.
September 28, 2026 — DTCPay: one-tap checkout for returning shoppers
DTCPay lets shoppers save their card, address and contact details once and check out in one tap on every PlatformDTC store that uses it.DTCPay is rolling out in phases, starting as a controlled test on selected stores.New for shoppers
  • Save my information for a faster checkout. Just before the Pay button, for every payment method, checkout shows “By paying, you agree to create a DTCPay account subject to DTCPay’s Terms and Privacy Policy” with a Not now opt-out. Unless they opt out, the shopper’s DTCPay account is created automatically after the payment with their contact details and address, plus their card if they typed one in (Apple Pay, Google Pay and PayPal are never saved). A welcome email carries a Didn’t create this? Remove it link. A new device needs a 6-digit code or a passkey.
  • Track your order in the DTCPay app. After every paid order, the thank-you page offers Get the app to follow the order at pay.platformdtc.com with delivery notifications. No DTCPay account needed.
  • Pay with DTCPay. On the same device, a returning shopper lands on checkout with email, address, shipping and card filled in, and one Pay with DTCPay button. Every purchase still needs that tap, and the card’s bank can still ask for 3D Secure. Not you? signs the device out. On a new device or another store, the shopper confirms a 6-digit code.
  • pay.platformdtc.com. Shoppers see and remove their saved cards, sign devices out, see their orders and delete their DTCPay account. The terms are at platformdtc.com/legal/dtcpay.
  • Apple Pay, Google Pay and PayPal are unchanged and still offered next to DTCPay. DTCPay saves cards only.
New for merchants
  • DTCPay settings in Settings → Payment provider: DTCPay on your store, the DTCPay app offer on the thank-you page, and Buy with DTCPay on product pages for recognised shoppers. All three are on by default. The card tokenisation status for your store is shown read-only.
  • DTCPay app block on the thank-you page in the Checkout Editor.
  • Safety switch. While card tokenisation runs as a split test, it turns off automatically for a store if the tokenised half does worse by more than 2 percentage points on declines, 3D Secure challenges or payment errors, or is more than 800 ms slower to pay.
  • Orders paid with DTCPay show DTCPay as the wallet. Analytics → Payments has a DTCPay section with enrolment rate, recognised checkouts, conversion against guests who typed a card, and DTCPay’s share of card payments.
  • DTCPay isn’t available on stores that take cards through their own Stripe account (Stripe Card).
See DTCPay.
September 28, 2026 — Your agent can answer chargebacks
Your own AI agent can now prepare the evidence for a chargeback, and send it to the bank once you say yes.New for merchants
  • Read the evidence on file. With View orders, your agent can see the evidence already on a Stripe chargeback, including what Stripe filled in for you, and whether the case qualifies for Visa Compelling Evidence 3.0, with what is still missing if it doesn’t.
  • Prepare evidence as a draft. With Manage orders, your agent can save evidence on the chargeback: tracking, delivery date, what the customer bought, your policies, and receipts, shipping proof or customer messages as JPEG, PNG or PDF files. A draft can be changed as often as needed.
  • Sending waits for your yes. The bank accepts evidence once and it can’t be changed, so your agent shows you what it will send first. An agent using an API key must get your yes in the chat. With a key that requires approval, the request waits in Agents → Approvals as Submit chargeback evidence, and it isn’t sent if the deadline passed while it waited.
  • PayPal cases are still answered in PayPal’s Resolution Center.
See Connect your own AI agent and the store skill at platformdtc.com/SKILL.md.
September 28, 2026 — A new look for the admin
The admin keeps its layout but gets a new visual language: glass islands up top, and one way of showing status in every list. More in the blog post.New for merchants
  • Glass islands instead of a top bar. Your store, search and account float as three glass islands, and pages scroll under them. On a phone there are two islands, each 44px tall so every button stays easy to tap. The light/dark toggle is in the account menu there. The public site uses the same islands.
  • One list language. Every list shows a record’s status as a coloured dot and a label. Green is done or live, orange is waiting on you, red is failed or at risk, grey is ended or switched off. Channel, source and type show as an icon and text, rows are centred, and the row menu is …. Chargeback alerts and fraud warnings stay as tinted capsules. This covers orders, drafts, abandoned checkouts, returns, products, reviews, inventory, gift cards, discounts, subscriptions, finance, payouts, customers, members, store pages and more.
  • Empty values show nothing. Lists no longer print a dash where tracking, a date or an action is missing.
  • Agents uses the same page header as every other screen.
Removed
  • Top-bar artwork in Settings → Account. There is no bar left to paint; the light/dark choice is unchanged.
September 28, 2026 — PlatformDTC takes 0% of app revenue
App developers now keep all of their app revenue.Changed for app developers
  • 0% revenue share, for every app, at any size. There is no longer a 15% share above your first $1,000,000. You keep everything merchants pay for your app (after discounts, before tax), and payment processing fees aren’t taken out of your earnings either. See Revenue share and payouts.
  • Everything else stays the same: payouts on the 1st and 16th of each month to your Stripe account, a 25.00 minimum, and refunds deducted from your earnings.
September 28, 2026 — Your agent can manage subscriptions, refunds, fraud and chargebacks
Your own AI agent can now look after subscriptions, refunds, risky orders and chargebacks — and anything that moves money waits for your yes.New for merchants
  • Subscriptions. Your agent can open any subscription and see when the next renewal charges and exactly how much, after your renewal increase limit. With the new Manage subscriptions permission it can pause, resume, skip or unskip a delivery, move the next charge, change the quantity, swap the product, move a customer to another plan and cancel with the customer’s reason. Your customers get the same emails as when you do it, and the subscription history shows which agent made the change.
  • Risky orders. Your agent can list flagged orders — the ones PlatformDTC’s fraud analysis ranks Elevated or Highest, and the ones the card’s bank already reported — and read the reasons behind an order’s risk level.
  • Chargebacks. Your agent can list chargebacks with their deadlines and read one.
  • Money, with your approval. With the new Move money permission your agent can refund an order (fully or partly, across every charge on it), charge a subscription now, change a subscription’s price from the next renewal, and cancel an order as fraud (refund, block the card and email on Stripe, and stop the customer’s subscriptions). Nothing moves until you say yes: an agent connected with sign-in asks you in Agents → Approvals, where each request shows exactly what it will do (for example, “Refund 40.00 USD on order #1042”); an agent using an API key must show you the amount and get your yes in the chat first. A charge that is under a chargeback is never refunded.
  • New permissions on the connect screen and in Agents → API keys, under Orders & fulfillment: Manage subscriptions and Move money.
See Connect your own AI agent and the store skill at platformdtc.com/SKILL.md.
September 28, 2026 — Your agent can answer support, fix tracking and handle returns
Your own AI agent can now work your Support inbox, check on parcels and handle returns.New for merchants
  • Support tickets. With the new View support tickets permission, your agent can list and read tickets, filter them by status, inbox, customer or order, and see the customer’s orders, subscriptions and latest parcels. With Answer support tickets, it can email a reply from your own support address, add an internal note, and change a ticket’s status or who it is assigned to. Replies your agent sends show in the inbox as Agent · sent for you, so you always know which words were yours. If your built-in support agent was about to send a held reply, a reply from your own agent replaces it, the same way yours does.
  • Shipping. With View orders, your agent can list your parcels, find the ones in trouble (exceptions, no scan for 7 days, past the delivery estimate, labels never scanned) and read a parcel’s full scan history. With Manage orders, it can fix a tracking number. The old number stops counting as a parcel right away. The customer is only emailed about the new number if you tell the agent to.
  • Returns. With View returns and Manage returns, your agent can list and open returns, create a return request, approve or decline it, save the return parcel’s tracking, and mark the items as received. Returns never move money; a refund is a separate step.
  • New permissions on the connect screen and in Agents → API keys: a Support inbox group (View support tickets, Answer support tickets), and View returns and Manage returns under Orders & fulfillment. A new connection that asks for nothing in particular now gets read access to support tickets and returns, along with the other read-only defaults.
See Connect your own AI agent and the store skill at platformdtc.com/SKILL.md.
September 28, 2026 — Verified suppliers and supplier scorecards
Know which Supplier Network suppliers you can count on.New
  • Verified badge. Suppliers can apply to be verified by the PlatformDTC team. We check their business registration, addresses, contact and returns policy. Verified suppliers carry a badge in your catalog and in Suppliers → Network. See Verified suppliers and scorecards.
  • Verified only. Show only products and suppliers the PlatformDTC team has verified, in your catalog and in the supplier directory.
  • Supplier scorecards. Every supplier’s profile shows how they perform, measured from real orders over the last 90 days: ship time, on-time shipping, tracking, cancellations, refunds and disputes. A figure appears once at least 20 orders stand behind it. Before that it isn’t shown, and it’s never estimated.
  • For suppliers. Apply for verification and upload your documents under Suppliers, and see your own scorecard with the number of orders behind each figure. See Get verified and read your scorecard.
  • For AI agents. Supplier Network tools return the badge and the scorecard, and can search verified suppliers only.
Unchanged: listing stays open. Suppliers don’t need to be verified to list or sell.
September 28, 2026 — Choose your checkout fields
Choose which fields shoppers fill in at checkout, and stop asking for a state where the address has none.New for merchants
  • Customer information in Settings → Checkout: make the shipping phone number, company name and address line 2 Required, Optional or Don’t include, and choose whether shoppers need a first name. See Choose the fields shoppers fill in at checkout.
  • The company name is saved on the order’s shipping address.
Changed for shoppers
  • State and postal code follow the country. Checkout asks for a state or province only in countries whose addresses have one (the US, Canada, Australia, Japan and others). UK and European addresses no longer show a required State field. Hong Kong and UAE addresses have no postal code field, and Singapore addresses have no city. Labels match the country: Province, Prefecture, Postcode, PIN code.
  • Apple Pay and Google Pay ask for a phone number only when your store requires one.
Unchanged: stores that existed before this release keep a required phone number until you change it.
September 28, 2026 — Loyalty & Rewards
Reward your customers with points, VIP tiers and referrals, built into your store.New for merchants
  • Loyalty & Rewards in Customers → Loyalty. Customers earn points for orders (on the subtotal after discounts), signing up, verified reviews, their birthday and referring friends. Refunds and cancellations take an order’s points back. Off until you turn it on, and orders placed before that don’t earn. See Loyalty & Rewards.
  • Spend points at checkout. Signed-in customers see Use 1,000 points for 10.00 off and add it in one tap. You set the rate, the minimum, and the most of an order points can cover. The reward is a normal discount code on the order, so tax, refunds and reports work as usual.
  • Points on subscription renewals. Customers can put points on their next renewal. They come off after your renewal price cap, and wait for the retry if a payment fails.
  • VIP tiers by points earned or money spent, lifetime or per calendar year, with a points multiplier and a one-time welcome reward (an amount off or free shipping).
  • Referrals. Every member gets a link; friends get a welcome discount; the member earns points when the friend’s first order is paid. Self-referrals, existing customers, and orders paid with the member’s card or shipped to the member’s address don’t earn.
  • Points expiry after a period of no activity, with a warning email 30 days before. Off by default.
  • Members: every balance and full points history, and Adjust points with a reason. A customer’s page shows their balance and tier.
  • Rewards page in the customer account: balance, tier progress, get a reward, codes, points on a subscription, referral link, birthday and history.
  • Emails for points earned, new tier, referral reward, points expiring and the friend’s welcome code, in Settings → Notifications under Accounts and outreach.
  • PlatformDTC Loyalty & Rewards is listed in the App Store.
New for developers and agents
  • Agent Gateway /loyalty/* and MCP tools dtc_loyalty_get_program, dtc_loyalty_update_program, dtc_loyalty_program_stats, dtc_loyalty_list_members, dtc_loyalty_get_member, dtc_loyalty_adjust_points. Agent adjustments worth more than 50.00 need the merchant’s confirmation.
  • Discount codes can carry a minimum order (applies_to.min_subtotal_cents); checkout refuses the code below it.
September 28, 2026 — Move from Shopify
Move your store from Shopify: products, customers, order history, discount codes, redirects, pages and Recharge subscriptions.New for merchants
  • Move from Shopify. In Settings → Move from Shopify (also linked from Subscriptions → Import), connect your Shopify store with a Dev Dashboard app’s Client ID and secret or an existing custom app’s access token, and optionally a Recharge API token. A preview shows how many records of each type will move and what can’t be read and why. The move runs in the background, picks up where it left off if you close the page, and never duplicates anything, so you can run it again later to pick up new records. Nothing is changed in Shopify or Recharge. See Move from Shopify.
  • What moves. Products (variants, prices, images copied to PlatformDTC’s CDN, and the same /products/<handle> addresses), collections, customers with their marketing consent exactly as Shopify recorded it, order history as archived orders that never trigger fulfilment, emails or charges, order-wide and free-shipping discount codes with their usage counts, URL redirects, and pages.
  • Recharge subscriptions come in paused, with their price, frequency and next charge date. Bring your subscribers’ saved cards over with Stripe’s customer copy or a Stripe card import mapping file, click Check cards, then switch subscriptions on once you’ve turned them off in Recharge.
  • A report for every run, with Imported, Already here, Skipped, Failed and Warnings per type and the reason for each record. Retry failed re-reads just the failed records.
  • What can’t move is listed, not hidden. Customer passwords, gift cards (Shopify only shows their last 4 characters), and discount codes with conditions such as specific products or a minimum purchase are listed in the report so you can recreate them.
September 28, 2026 — Apps can plug into your AI assistant
The apps you install can now work through your AI assistant.New for merchants
  • App actions in your assistant. When an app you installed offers agent tools, your assistant (Claude, ChatGPT, Codex, Cursor or the dashboard Assistant, connected at https://api.platformdtc.com/mcp) can use them: for example, “give Maria 500 loyalty points” goes to your loyalty app. It sees an app’s tools only on stores where the app is installed, and only for permissions you gave both the app and the assistant. Uninstall the app and its tools are gone.
  • You approve anything that spends or messages customers. App actions that move money or contact customers wait under Waiting for you on the Agents page, shown as “App action” with the app and what it wants to do. Nothing runs until you approve.
  • “What this app lets your assistant do” on an app’s App Store page lists its tools, marking the ones that ask you first and the ones that only read.
  • App data your assistant can read. Apps can store their own data in your store’s metafields and metaobjects. Your assistant reads it; only the app that owns it can change it, and other apps can’t see it.
New for app developers
  • Agent tools. Declare up to 20 tools on an app version (name, title, description, JSON Schema input, required scopes, your HTTPS URL). The platform calls your server with the same sha256= HMAC signature as webhooks, with a timestamp and an idempotency key. 10-second timeout, 64 KiB responses, 60 calls a minute per store, and a circuit breaker so a slow app never slows the assistant.
  • Test a tool from Versions in the Partner dashboard against a development store, or with POST /api/v1/appstore/partner-agent-tools/apps/{app_id}/test.
  • CLI: an extension folder with type = "agent_tools" and tools = "tools.json"; dtc app deploy checks and sends it. See App configuration.
  • App-owned custom data. Metafield namespace $app / $app:<sub> and metaobject type $app:<type> are stored under your app id; you read and write them, the merchant reads them, other apps can’t see them. See Share data with the assistant.
September 28, 2026 — The Facebook Ads agent is back
Chat with the Facebook Ads agent in your dashboard to launch, check and pause your ads.New for merchants
  • Facebook Ads agent. Open Agents → Facebook Ads and ask in plain words, like “Launch my best seller worldwide at $50 a day”. It builds the campaign, ad set and ads in your real ad account, all paused, then shows an Approve card with the budget, audience and ads. Nothing goes live until you tap Approve. Pausing and lowering a budget happen right away. See Your Facebook Ads agent.
  • Daily ad limit. In Settings → Integrations → Accounts, set the most the agent may spend per day in each ad account. Without a limit it can’t turn anything on. Every hour PlatformDTC checks today’s spend, and pauses the agent’s campaigns and tells you if the limit is reached.
  • For your own agent. Thirteen dtc_meta_* tools on https://api.platformdtc.com/mcp do the same, with the same approvals and limit.
Changed
  • Connecting Meta now also asks to manage ads for your Pages. If you connected before today, connect once more so ads can be created on your Page.
September 28, 2026 — App Store: customer data requests, partner refunds, review guidelines
The App Store is ready for more developers: merchants can answer customer data requests, and developers can refund merchants.New for merchants
  • Request customer data. On a customer’s page, More actions → Request customer data downloads the data PlatformDTC holds on that customer, and asks every installed app that can read customer data to send you what it holds. Use it when a customer asks what personal data your store has about them.
  • Tell a developer why you uninstall. Uninstalling an app now lets you pick a reason and leave a note for the developer. Both are optional.
  • Deleting a customer now tells you that installed apps are asked to erase that customer’s data (they always were).
New for developers
  • Refunds. Refund a merchant’s payment for your app, in full or in part, from your app’s Earnings → Payments, or with POST /app_billing/partner/{partner_id}/charges/{charge_id}/refund. See Refunds.
  • customers/data_request is now sent when a merchant requests a customer’s data. See Compliance payloads.
  • Uninstall reasons merchants give appear on your app’s Installs tab.
  • Review guidelines: everything a public app needs before you submit it, in one checklist.
Changed for developers
  • A listing now needs a support email or support URL before it can be submitted.
  • Submitting a version again after the review team asks for changes reopens the same review case, and submitting a version that is already in review is refused. Before, it could open a second case for the same version.
September 28, 2026 — Self-Driving Score counts automations
The Self-Driving Score now counts everything your team didn’t have to do.Changed for merchants
  • Self-Driving Score is now the share of actions over the last 30 days that nobody on your team had to do: agent actions, automations (renewal billing, automation rules, fraud blocks, recovered checkouts) and customer self-service, out of all actions. Only team actions count against it. Before, it compared agent actions with team actions only, so a store run mostly by automations scored low. Drafts waiting for approval and failed actions still don’t count.
September 28, 2026 — Review requests and review import
Ask buyers for reviews by email, and bring your reviews over from Judge.me, Yotpo, Loox or Shopify Product Reviews.New for merchants
  • Review requests. In Products → Reviews, turn on Email buyers a review request. Each order placed after you turn it on is emailed once, a set number of days after delivery (or after fulfilment when no delivery scan arrives), listing what the buyer ordered with clickable stars. A buyer is never asked twice about the same product, and only buyers who agreed to your marketing emails are emailed. Off until you turn it on. See Ask buyers for a review.
  • Review import. Products → Reviews → Import reviews reads the CSV export of Judge.me, Yotpo, Loox or Shopify Product Reviews, shows what will be imported and which rows can’t be matched to your products, then imports reviews with their dates, replies and photos. Importing the same file twice adds nothing twice. See Import reviews from another app.
  • Review request email template in Settings → Notifications, under Accounts and outreach.
  • PlatformDTC Product Reviews is listed in the App Store.
September 28, 2026 — One skill and one address for your own agent
Your own agent now has one place to start: platformdtc.com/SKILL.md.Changed for merchants
  • The store skill. platformdtc.com/SKILL.md now teaches an agent the whole store, not only themes: how to connect, then products, collections, the storefront theme, publishing and your own domain, in that order. It asks you before adding anything, and leaves anything that spends money or reaches customers for you to approve. The Build your store with your own agent card on your dashboard home sends your agent there. The theme skill is still at platformdtc.com/skills/platformdtc-theme/SKILL.md.
  • One address. Claude, ChatGPT, Claude Code, Cursor and Codex all connect to https://api.platformdtc.com/mcp and sign in with your PlatformDTC account. See Connect your own AI agent.
  • The dashboard Assistant now gives that address and those steps when you ask how to connect your own agent.
Removed
  • The OpenClaw MCP page. It described a setup for FangBot, which has shut down. Use Connect your own AI agent instead.
  • @platformdtc/dev-mcp in the theme docs. That package was never published to npm, so the command failed. Use dtc theme check from the CLI, or check_theme and get_section_schemas on the theme MCP server.
September 28, 2026 — Monthly renewals on the same day; rules by payment method
Monthly subscriptions now renew on the same day each month, and automation rules can treat card and PayPal subscriptions differently.Changed for merchants
  • Same renewal day every month. A monthly plan used to renew every 30 days, so the renewal date moved about 5 days earlier each year. It now renews on the same day of the month: started on the 5th, renewed on the 5th. In a shorter month it renews on the last day and returns to the usual day the month after. Plans set to a number of days, such as “every 30 days”, are unchanged. Renewal dates already scheduled stay as they are; the new rule applies from each subscription’s next renewal. See When renewals are charged.
New for merchants
  • Payment method condition in automation rules. In Subscriptions → Automation, a rule can now match Payment method is Card or PayPal. Use it to set a price or shipping rule for one payment method only.
September 27, 2026 — Product photos load at the size they are shown
Product photos now download at the size they appear on screen, as AVIF or WebP, instead of the full original file.Changed for shoppers
  • Faster product pages. On a test product page with four 1024px PNG photos, the page downloaded 3.9 MB of product images before; it now downloads 87 KB on desktop and 104 KB on an iPhone. On a throttled phone connection (the one Google PageSpeed uses) the main photo appears after 7.2 s instead of 28 s, and the thumbnails no longer sit grey while a full-size file decodes.
  • Sharp on every screen. Each photo comes in several widths, and the browser picks the one that fits the screen and its pixel density. A photo is never enlarged beyond its original size.
  • Same in cart and checkout. Cart drawer, cart page and checkout order-summary thumbnails use the small versions too. A personalised preview from an app still replaces the product photo once it has loaded.
For theme developers
  • StoreImage builds the responsive srcset for images on the store CDN automatically. See Custom sections.
Your original uploads are unchanged and still available at their own address.
September 27, 2026 — Apps can switch the product gallery's photo
New for app developers
  • ctx.setActiveMedia(index). A theme app block in a product section with a gallery can show a given gallery frame, the way the gallery’s own arrows do. A customizer uses it to jump back to the design photo when the shopper changes an option while looking at another photo. See Product media blocks.
September 27, 2026 — Fewer lost checkouts on phones and after a decline
Checkout now keeps phone shoppers on track to the card, offers PayPal after a card decline, and shows Link where Google Pay can’t appear.Changed for shoppers
  • Mobile Pay bar leads to the card. The Pay bar pinned to the bottom of a phone screen used to submit an empty card when tapped before the shopper reached the card fields. While the card isn’t filled in, it now reads Continue to payment, scrolls to the card and opens the keyboard on it. It steps aside once the Payment section is on screen.
  • After a card decline, other ways to pay. The message now offers buttons for every other way to pay on the page: Pay with PayPal instead (it switches the payment method to PayPal), the wallets actually shown on that device by name (for example Pay with Apple Pay instead), and Use a different card.
  • Link in Express checkout. Stripe Link is back in the Express checkout row, for shoppers Stripe recognises. It works inside the Facebook and Instagram apps on Android, where Google Pay is not available. The card form is unchanged.
September 27, 2026 — A cleaner, step-by-step checkout
Checkout now walks shoppers through numbered steps, with less on the page competing with the Pay button.Changed for shoppers
  • Numbered steps. Contact, Delivery, Shipping method and Payment each sit on their own card, numbered in your button colour. The card being filled in is outlined, and Contact shows a check once the email is valid.
  • Order summary card. On desktop the summary is a card titled Order summary with the item count, and stays in view while the shopper scrolls.
  • Express buttons full width. A single PayPal, Apple Pay or Google Pay button now spans the column instead of sitting as a small button in the middle.
  • Discount field always visible. Shoppers type a code straight into the summary; Apply switches to your button colour once there is a code to apply.
  • Pay button. Shows a lock and uses your button colour, with no heavy drop shadow.
  • Footer. Your store name, store links and policies sit in one band at the bottom of the page, matching the header.
Removed
  • Repeated trust lines. The “Secure SSL encrypted checkout” line and the second row of card logos above the Pay button are gone. The Payment section already says transactions are secure, and the card field shows the logos.
  • Money-back line under Pay. Checkout used to show “30-day money-back guarantee” on every store, whether or not the store offers one. A guarantee you add as a block in the Checkout Editor still shows.
Your branding colours, font and Checkout Editor blocks are unchanged; the new layout is drawn from them.
September 27, 2026 — Cart guards, active product media, app blocks in groups
Let your app hold a product back from the cart until the shopper has finished personalising it, and draw your preview over the right photo.New for app developers
  • Cart guards. window.PlatformDTC.cart.addGuard(productId, fn), or ctx.addCartGuard(fn) in a theme app block, runs before every add to cart, Buy it now and express wallet button for that product. Return { ok: false, message } and nothing is added and checkout does not open. The platformdtc:cart:blocked event tells you, and the storefront shows your message unless you handle it. See Cart guards.
  • Active product media. Theme app blocks in a product section with a gallery get ctx.activeMedia ({ index, id, type }) and ctx.onMediaChange(cb), so a product_media preview can show over its own slide only. See Product media blocks.
  • App blocks inside groups. A Group block accepts app blocks, so merchants can put your block inside a titled panel (a “Personalized” box) from the theme editor.
Fixed for merchants
  • Product photos meet the header on phones. With Media edge to edge on phones on, the product section no longer leaves an empty band above the photo.
  • “Made with PlatformDTC” no longer covers your page. The badge used to float over the bottom-right corner, over product text and buy buttons on phones. It now sits in its own row at the very bottom of the page, after your footer.
September 27, 2026 — Cart drawer uses your button colour; no free-shipping bar checkout can't honour
Your cart drawer’s Checkout button is now your store’s button colour, and the cart no longer promises free shipping your checkout doesn’t give.Fixed for merchants
  • Checkout button colour. On stores with a custom brand colour, the cart drawer’s Checkout button (and everything else in the drawer) was black. It now uses the same button colour as Add to cart on your product pages.
  • Free-shipping bar removed. The cart drawer and cart page showed “Add $X for free shipping” toward a fixed $75, on every store, whatever your shipping rates were. Checkout charges the shipping rates you set in Settings → Checkout, and a rate has no order minimum, so reaching $75 never changed what a shopper paid for shipping. The bar is gone.
  • Theme settings. The Builder2 cart page’s Free shipping over setting has been removed, for the same reason. In Silent Scale’s cart drawer, a progress or checkpoints bar whose text promises free shipping (the default wording does) is hidden. Bars you’ve worded as other spending goals still show.
September 27, 2026 — App updates without re-consent
Ship an app update without asking every merchant to re-approve it. An approved version now needs the merchant only when it adds a required scope.Changed for app developers
  • Updates move installs automatically. When a new version is approved, every install whose granted scopes already cover the version’s required scopes moves to it and stays installed: its token keeps working, the store serves the new version’s extensions, and your webhook subscription switches to the new version’s topics. Skill apps’ agents get the new SKILL.md. See Scope changes.
  • Dropped scopes are removed. If the new version no longer lists a scope, moved installs and their tokens lose it, and app/scopes_update fires.
  • Added scopes still need consent. Installs missing a new required scope go to pending_reauth as before.
Fixed
  • Approving any new version put every install into pending_reauth, even when the scopes had not changed. The app lost its extensions and script tags on every store until each merchant re-authorized.
September 27, 2026 — Marketplace-style header, real policy pages
Give your store a marketplace-style header, and your policy pages now show your real policies.New for merchants
  • Header. In the Header section, turn on Show search and choose Search bar in the middle for a wide rounded search field with a round search button. Menu placement → Centred row under the bar, as chips puts your links on their own row, and Highlight the first link tints the first one. Logo style → Store name as a wordmark shows your store’s name in lowercase in your button colour. Add up to two text links beside the icons (for example “Track Order”), choose a cart icon, and a wide (1376px) layout.
  • Policy pages. /pages/refund-policy, /pages/shipping-policy, /pages/privacy-policy and /pages/terms-of-service now show the text you keep in Settings → Policies, the same text checkout shows. The “replace this” notice appears only when you have no such policy.
  • Product grids. Featured collection, collection and search grids can use a regular-size product title and show sale prices in your button colour. A featured collection can put its heading on the left with a “View all” button on the right, and link hand-picked products to a page you choose.
  • Footer. The footer can show your store name as a wordmark. Its default policy links now point to your policy pages instead of addresses that did not exist.
September 27, 2026 — Products API for apps: batch reads, filters, bulk variant updates
Read and edit a whole catalog in a handful of requests. The Agent Gateway products API now does what apps need for bulk editing.New for app developers
  • List products with their variants. GET /products?include=variants returns up to 250 products per call with every variant’s price, compare-at price, SKU and stock. Filter by status, vendor, product_type, tag, collection_id, query (title, handle or SKU), ids and updated_at_min/max, choose fields with fields=, and page with a page_info cursor and Link header. GET /products/count counts matches. See Products.
  • Bulk variant update. POST /products/variants/bulk_update changes up to 250 variants in one call, with a result per variant and Idempotency-Key replay. See Bulk edit prices.
  • Rate-limit headers. Every response carries X-PlatformDTC-Api-Call-Limit: used/limit plus RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset; a 429 adds Retry-After. One budget per key across the whole gateway. See Rate limits.
Changed
  • One money format on the gateway. Product and variant amounts are decimal strings in the store currency, "19.99", with currency on each product, in the list, the product detail and every write response. The product detail used to return integer cents and the list returned numbers in dollars. The dashboard API (/api/v1/products) still uses integer cents.
  • GET /products/{id} on the gateway always returns variants and images.
Fixed
  • The install docs sent merchants to api.platformdtc.com/api/v1/appstore/oauth/authorize, which answers a browser with 401. The consent page is https://platformdtc.com/apps/authorize. See Install flow.
  • The public API reference now documents GET/PUT /products/{id}, variant updates and GET /collections.
September 27, 2026 — App Bridge on the CDN, faster app setup
Build an embedded app with nothing to install. App Bridge now loads from the PlatformDTC CDN, and dtc app init sets up your app on your partner account in the same step.New for app developers
  • App Bridge on the CDN. Load https://cdn.platformdtc.com/app-bridge/v1/app-bridge.js as an ES module (types at …/v1/app-bridge.d.ts). The dtc app init starter imports it through an import map, so it has no npm dependencies. See Embedded apps.
  • dtc app init creates and links the app when you are signed in, filling in client_id and .env. Signed out, it tells you to run dtc login and dtc app config link. --no-link skips it. Update with dtc upgrade (CLI 0.1.1).
  • Clearer sign-in screen. dtc login now shows the PlatformDTC CLI as verified, the heading says what it asks for (themes, apps or both), and the apps permission reads Create and manage your apps.
Fixed: a freshly created starter app failed npm install, because it depended on an App Bridge package that was never published to npm.
September 27, 2026 — Personalized product pages
Build a personalized product page like the big gift shops, with no code. Frame your personalization app’s options in a titled panel, show a real savings badge, and add a Preview button and collapsible rows.New for merchants
  • Titled groups. Give a Group block a Title and it becomes a panel with a heading strip: plain text, a filled bar or a fading bar in the section’s button colour. Put your personalization app’s options inside it for a “Personalized” box.
  • Savings badge. The Price block can show 29% OFF as a filled badge, colour the sale price in the button colour, and put the struck-through compare-at price first. The percentage comes from the product’s real compare-at price; without one, nothing extra is shown.
  • Preview button. A new Preview button block opens a large view of the preview your personalization app made for the shopper’s choices, or the photo on screen. It is hidden when there is neither.
  • Collapsible rows. A new Collapsible row block shows the product description, your shipping and refund policies from Settings → Policies, or your own text, behind a heading and an icon. Empty rows are hidden.
  • Add to cart button. Choose a fully rounded shape, a large height, a cart icon, and whether the total is shown on the button. Quantity can sit beside its label.
See Personalized product page.New for app developers
  • platformdtc:line-properties fires on window after every PlatformDTC.cart.setLineProperties call, so the theme shows your latest previewImage. See Line item properties.
September 27, 2026 — Product reviews
Collect verified-purchase reviews with photos on your product pages, laid out the way shoppers expect: average rating, a 5 to 1 star breakdown, a strip of shopper photos, star filters, sorting and pages of reviews.New for merchants
  • Products → Reviews. Switch reviews on, choose whether new reviews go live straight away or wait for your approval, and moderate every review: publish, hide, reply publicly or delete. Filter by status and stars, or search. See Product reviews.
  • Product reviews section. Add Product reviews to the product page in the theme editor (the default theme and Daily Ritual include it). Shoppers write a review with their email and order number, which proves they bought the product, and can add up to 5 photos.
  • Real stars under the title. The product title and Product rating blocks now show the rating from your published reviews and link to them.
  • API. GET/POST /api/v1/storefront/reviews for storefronts and /api/v1/product-reviews for moderation.
Fixed: the stars under a product title read a rating field nothing on the platform fills in, so a reviewed product showed no stars. They now come from published reviews.Privacy: shopper photos are re-saved without location data or other camera metadata, and only the reviewer’s first name and last initial are shown.Unchanged: nothing is shown on your store until you switch reviews on. A product without published reviews shows only the Write a Review button.
September 27, 2026 — Volume discounts
Buy more, save more. Create an automatic volume discount — “Buy 2, get 10% off · Buy 3, get 15% off · Buy 4+, get 20% off” — and checkout applies it with no code, on every payment method.New for merchants
  • Volume discount. In Discounts → Volume discount, set percentage or amount-off-each-item tiers, the products or collections it covers, whether codes may combine with it, and optional dates. Edit it from its row; Usage counts the orders it was applied to. See Volume discounts.
  • Volume discount block. Add it to the product page or a featured product section in the theme editor: a titled box listing the tiers, the tier the chosen quantity reaches highlighted, and “Discounts apply automatically in the cart”. Hidden when no volume discount covers the product.
  • Cart and checkout. The cart page and cart drawer show the saving the cart reaches, and the checkout summary shows it as its own line under the discount’s title — the same amount the card, wallet, PayPal or Authorize.Net payment is charged.
New for developers
  • applies_to.quantity_tiers on an automatic product discount (POST /api/v1/discounts), GET /api/v1/checkout/cart/volume-offers/{store_id}/{product_id}, and automatic_discounts from POST /api/v1/checkout/validate-coupon with cart items. See Discounts.
Unchanged: discount codes work as before. A code that does not combine with a volume discount gives the shopper whichever saves more.
September 27, 2026 — Delivery dates
Show shoppers when their order arrives. Product pages can now say “Deliver to: United States ▾ — Order today, get it as early as: October 6 – 10”, worked out from your processing time plus the transit time to the shopper’s country, counted on your business days, with an order cutoff.New for merchants
  • Delivery dates settings. In Settings → Shipping & Sales, set processing days, business days, an optional order cutoff and time zone, and transit days per shipping zone, with an optional rest-of-the-world time. A live preview shows what a shopper sees right now. See Delivery dates.
  • Delivery estimate block. Add Delivery estimate to the product page or a featured product section in the theme editor (Origin’s product page too). The shopper’s country is detected, they can change it, and the choice is remembered.
  • Silent Scale “Estimated shipping”. Leave both day fields empty and it uses your delivery dates.
Unchanged: nothing is shown until you set delivery dates, while they are switched off, or to a shopper whose country you do not ship to. Your shipping options and checkout prices are not affected.
September 27, 2026 — Product add-ons
Offer a gift box, gift wrap or any other product as a checkbox on a product page. When the shopper ticks it, Add to cart and Buy now add it as its own line.New for merchants
  • Add-on block. In the theme editor, add the Add-on block to the product page or a featured product section and pick the add-on product. It shows the product’s own photo, name, price and compare-at price, with a heading, a description and a checkbox label you write (for example “Add-On Gift Box Service”, “Choose to buy”). It can be ticked by default, and its quantity can be 1 or match the product’s quantity. See Product add-ons.
  • Every buy button. Add to cart, Buy it now and the express checkout buttons of the section all add the ticked add-on. Checkout charges its catalog price.
  • Personalisation stays on the product. An app’s customisation (for example a name or photo) stays on the product’s line, and the add-on line has none.
Unchanged: a subscription or gift subscription never includes the add-on. If the add-on is deleted, unpublished or sold out, the block is hidden and nothing is added.
September 27, 2026 — Install the CLI with one command
The PlatformDTC CLI now installs with one command and no Node.js or npm. It works like the Deno and Bun installers.New for developers
  • One-line install. curl -fsSL https://platformdtc.com/cli/install.sh | sh on macOS and Linux, irm https://platformdtc.com/cli/install.ps1 | iex in Windows PowerShell. The installer picks the build for your computer, verifies its SHA-256 checksum, installs it to ~/.platformdtc/bin and adds it to your PATH, without sudo or administrator rights. See Install.
  • Builds for every common machine. macOS on Apple silicon and Intel, Linux x64 and arm64 (Alpine included), and Windows x64.
  • dtc upgrade. Updates the CLI in place after verifying the download, or installs an exact version with dtc upgrade <version>. dtc mentions a new version once at the end of a command, at most once a day.
Fixed: the docs told developers to run npm install -g @platformdtc/cli, a package that was never published to npm, so that command failed.Unchanged: every dtc theme and dtc app command works exactly as before. Apps created with dtc app init are still Node.js projects.
September 27, 2026 — Line item properties for apps
Apps can now attach a shopper’s choices to a cart line and read them back on the order. It is what product customizers, engraving and personalisation apps need.New for app developers
  • Line item properties. A theme app block calls window.PlatformDTC.cart.setLineProperties(productId, payload). Every Add to cart and Buy now button attaches the payload to the line, and it travels through checkout to the order. Two differently customised lines of one variant stay separate. See Line item properties.
  • Read them anywhere the order goes. The orders/create app webhook is now sent when checkout completes an order, with line_items[].app_properties. GET /api/v1/agent/v1/orders/{order_id} returns items[].appProperties.
  • App blocks in the product section. The product page’s main section accepts app blocks in its buy-box column, in the default theme and in Origin, at the position the merchant chooses.
  • Product media blocks. A block with target: "product_media" is drawn over the product gallery’s active image, for live previews on the product photo. See Product media blocks.
New for merchants
  • Customisations on the order. The order page lists each line’s customisation (for example “Name: Alex”) and its preview image, which opens full size. The packing slip and invoice print the same lines, and the packing slip shows the preview instead of the catalog photo.
  • In the CSV and the emails. The order CSV’s “Lineitem properties” column and the order confirmation and shipping emails include them.
Unchanged: lines without app data look and behave exactly as before. An app’s private data (keys starting with _) is never shown to shoppers or printed.
September 26, 2026 — The Supplier Network
Merchants can now sell their products wholesale to other merchants on PlatformDTC, and source products from each other.New
  • Become a supplier. List products from your own store under Suppliers. Set a wholesale price, an optional retail price and shipping rates for each product. There is no review before you list: suppliers accept the Supplier Terms and are responsible for their products’ safety, labelling, compliance and fulfillment. See Sell on the Supplier Network.
  • Source from the network. Network products appear in your catalog under a new Supplier network filter, with the supplier’s name and handling time. Add to store imports the product with its images and variants, with its cost set to the wholesale price. See Source products from the Supplier Network.
  • Orders route themselves. A customer’s order for a network product goes to the supplier automatically. The supplier accepts it and ships it from the dashboard or through the Fulfillment API, and the tracking reaches your order and your customer’s shipping email.
  • Stock stays in sync. When a supplier pauses a listing, your copy can no longer be bought, and it is not deleted. A wholesale price change updates your cost and never your selling price.
  • Statements on both sides. Suppliers see what each merchant owes them, and merchants see what they owe each supplier, order by order. Both can be downloaded as CSV.
Pricing
  • 0% platform fee for the first year. No money passes through PlatformDTC. Suppliers bill merchants directly.
Unchanged: the existing catalog is still there and still imports the same way.
September 26, 2026 — See why subscribers left
Subscriptions → Home has a new card, “Why subscribers left”, that splits every cancellation in the period by who ended the subscription.New
  • Four causes. The card splits cancellations into Customer decided, Payment failed, Fraud & disputes and Order cancelled. Each cause shows its count, share and lost monthly recurring revenue, and a table lists every reason under it.
  • Customer decided covers the customer asking you or support to cancel, the one-click cancel link, and cancelling the billing agreement at PayPal.
  • Fraud & disputes covers Cancel and refund Highest-risk orders, chargebacks, and a card’s bank reporting fraud.
Fixed
  • Fraud and disputes are no longer read as the customer’s choice. A subscription cancelled because its order was ranked Highest risk, or because the customer filed a chargeback, used to be counted as a customer who chose to leave. The Involuntary Churn tile now reads “n of total cancellations were failed payments”, and the card shows the rest by cause.
September 26, 2026 — Fewer good orders cancelled as Highest risk
Fewer genuine orders are ranked Highest risk and cancelled automatically: 3D Secure-verified payments never are, and a card from another country is no longer a warning.Fixed
  • A verified payment tops out at Elevated. When the card’s bank verifies the shopper with 3D Secure, a stolen card has been ruled out and a fraud chargeback is the bank’s loss, not yours. Such an order used to be ranked Highest on two warnings, then refunded, blocked and its subscription cancelled by Cancel and refund Highest-risk orders, including when your own Require 3D Secure on risky card payments rule asked for the check. On our stores none of 221 verified orders since July 20 drew a fraud report. The Fraud analysis card now shows The card’s bank verified the shopper with 3D Secure.
  • A customer’s own verified orders don’t count as card reuse. A customer’s earlier order used to jump to Highest when they paid again on the same card, and both orders were refunded. The same customer’s 3D Secure-verified orders on a card no longer count as the card being reused. The same card under a different email still counts.
  • A card from another country is no longer a warning. Checkout used to warn when the card was issued in a different country from the delivery address. On our stores those orders drew fraud reports half as often as local cards (0.62% against 1.13%), yet they accounted for a third of automatic refunds, mostly customers in the Caribbean, Australia and Canada ordering for family in the US. The Fraud analysis card still shows the card’s country, but it no longer raises the risk level.
  • Unchanged: when the card’s bank reports fraud or a chargeback opens, the automatic cancel, refund and block still run, whatever the risk level.
Guide: Fraud analysis.
September 26, 2026 — Insufficient-funds retries now land on payday
With Smart AI retry, a renewal declined for insufficient funds is now retried on the customer’s next likely payday instead of a fixed number of days later.Changed
  • Insufficient-funds retries run on payday. Each automatic retry of an insufficient-funds decline (bank code 51) runs on the customer’s next likely payday in their country’s payroll calendar, at your billing hour in their own time zone. On our stores a retry made after a payday had passed recovered 15.9% of these declines, against 9.1% when no payday had passed. When a customer’s earlier payment recovered right after a payday, we learn their fortnightly payday and aim at that one.
  • Never too soon. A retry is never made sooner than 24 hours after the decline, or before a wait the card network asks for. When no payday falls within 7 days, that retry uses the 2, 5 and 8-day calendar instead.
  • Prepaid cards get one retry. Waiting doesn’t refill a prepaid card — they recovered 2.6% of the time on our stores. A prepaid card out of funds gets one retry on the next payday, with your recovery discount if you set one; then the subscription is held Past due and the customer is asked to use a different card.
  • Unchanged: at most 4 attempts in total, a subscription is never cancelled for insufficient funds, and your recovery discount still applies to the final attempt. Other soft declines are still retried 2, 5 and 8 days after the first decline, “do not honor” and generic refusals once 48 to 72 hours later, and permanent declines never.
New
  • Payment retry reminder. The day before an insufficient-funds retry, the customer gets an email and SMS saying when we will try again and asking them to make sure funds are available or update their card. It is on by default; turn it off in Subscriptions → Settings → Notifications.
Good to know
  • One in five insufficient-funds retries stays on the 2, 5 and 8-day calendar on purpose, so the effect of payday timing can be measured.
  • Renewals too: for one in five subscriptions, chosen at random so the effect of payday timing can be measured, renewals are charged on the renewal date at your billing hour instead of being moved to a payday. This group is separate from the retry group above.
Guide: Failed subscription payments.
September 26, 2026 — Connect all your inboxes to Support
Support now reads every mailbox your customers write to, and you answer all of them in one inbox.New
  • Connect as many inboxes as you use (Support → Inbox settings → Inboxes). contact@, support@ and a second brand’s address can all feed the same Support inbox. See Connect your inboxes to Support.
  • DTCMail mailboxes connect in one click. Mailboxes on your store’s verified DTCMail domain are listed in Connect an inbox, with no password to type. Any other provider still connects over IMAP, and the sign-in is checked before anything is saved.
  • Each inbox shows its health: when it was last checked, or the mail server’s error and how long it has been failing, plus a warning when the domain has no MX record.
  • With two or more inboxes, filter the conversation list by inbox, see which address each email was sent to, and pick the From address when you write a new email.
Fixed
  • Links to a conversation open it every time. A link to /support?conversation=… clicked while Support was already open did nothing; it now opens the thread.
September 26, 2026 — Require 3D Secure on risky card payments
Checkout can now ask the card’s bank to confirm the shopper when a payment looks like the ones that turn into fraud reports.New
  • Require 3D Secure on risky card payments (Settings → Automation). When the same card already paid an order in the last 24 hours, when an email pays with a different card than before, or after two declined attempts in one checkout, the shopper confirms the payment with their bank. On our stores these checkouts were about 6% of card payments and drew fraud reports at two to five times the usual rate. Apple Pay and Google Pay are never asked. See Fraud analysis.
  • The Automation screen shows the result: how many checkouts were asked, how many paid, and which pattern triggered it. The order’s Fraud analysis card says when 3D Secure was requested and why.
September 26, 2026 — An order's risk level no longer changes when the bank reports it
The risk level on an order is PlatformDTC’s own verdict, and it stays that way.Fixed
  • A fraud report or chargeback no longer turns an order Highest risk. An order that scored Normal kept that level until its card’s bank filed an early fraud warning, and then read Highest, a verdict the fraud check never made. The report now shows on the order’s Fraud analysis card and on the Warning and Disputes tabs, and the risk level only reflects the checks. Existing orders were re-scored.
  • Automatic protection is unchanged. With Cancel and refund Highest-risk orders on, an order the bank reports is still refunded, its card and email are blocked, and the customer’s subscriptions are cancelled, whatever its risk level.
September 25, 2026 — Apps can add scripts to your online store
Apps from the App Store can now load their own JavaScript on your live online store.New
  • Script tags API. An app with the new write_script_tags permission registers a script URL with POST /api/v1/script_tags, and every page of your online store loads it. You don’t need to republish or edit your theme, and a change reaches live pages within about five minutes. See Script tags.
  • You stay in control. Adding scripts is a separate permission that you approve when you install the app. An app only ever sees its own scripts. When you uninstall an app, its scripts stop loading immediately and are deleted.
  • Safe by construction. Scripts must be served over https://, load asynchronously so they never hold up your page, and are capped at 50 per app per store.
Fixed
  • Creating an app in the Partner Dashboard works again. The Distribution menu offered options the platform didn’t accept, so every attempt failed with “Request validation failed”. It now offers Custom (installable by link) and Public (listed after review). The handle fills in from the app name, and a taken handle is flagged on the field.
September 22, 2026 — Brand traffic is measured for the store, not its parent domain
Every traffic figure in Market Intelligence now describes the storefront you are looking at.Fixed
  • A storefront on a subdomain no longer inherits its parent’s audience. store.nytimes.com was filed with 178,145,790 monthly visits, shop.weather.com with 111,541,870 and shop.bbc.com with 75,210,077 — nytimes.com’s, weather.com’s and bbc.com’s traffic, borrowed whole by the shop that sits on them. Ranking by traffic put those three at the top of the list, which is why the list did not rank by traffic.
  • Where the host was the right one, the figure was still roughly half the truth. Measured against SimilarWeb on the same month: ea.com 40.2M against 77.1M, fashionnova.com 23.1M against 39.1M, ring.com 15.3M against 34.3M, temu.com 51.5M against 1.23 billion.
  • The “Similar Web” number is a rank again. For a store SimilarWeb had never ranked under that exact host it returned a placeholder in the 12.1M band, which the dashboard printed through a thousands formatter as “12.1M” — next to visit counts, reading like an audience.
New
  • Traffic is a measurement with a month attached. Each brand carries the visits SimilarWeb recorded for that exact host, the month they cover, the month before for comparison, and its real global, country and category rank.
  • Brand detail opens up. Three months of measured history, pages per visit, bounce rate, average visit duration, the split between direct, organic and paid search, social, email, referral, affiliate, display and AI-assistant traffic, the top five countries by share, and the top five search keywords with their volume.
  • Lists rank by measured visits. Stores that have been measured rank against each other on the real number.
While the measurement catches up
  • Coverage is being collected now and grows by the hour. A store it has not reached yet keeps the figure it has always shown, labelled as the store index’s own estimate, and switches over the moment it is measured. Nothing goes blank, and a store that has never been measured is never shown as zero — an unmeasured store is unknown, not empty.
September 21, 2026 — Conversion rate counts online store purchases only
Your conversion rate now measures what your storefront earned.Fixed
  • Subscription renewals no longer count as conversions. A renewal is charged by the billing engine on the plan’s own clock, with nobody browsing, so it never converted a visit — but it was being divided into your sessions all the same. On a store selling plans that read the storefront as better at converting than it is: across the platform, 2,242 of 13,430 paid orders in the last 90 days were renewals.
  • Point of Sale orders are out of the numerator too, for the same reason: a sale rung up at a terminal had no session.
  • The checkout that starts a plan still counts. A customer placed it themselves, in a session, so it converted one.
  • Every screen changed together — the dashboard tile and its trend chart, Analytics Overview, Sales, Live View, and the peer benchmark bands — so no two of them can disagree about what a conversion is.
Unchanged
  • Orders, sales and average order value. A renewal is a real order and still counts as one everywhere it always did. Only the metrics with sessions underneath them changed.
Expect your conversion rate to read lower than it did yesterday if you sell subscriptions. The rate did not fall; the wrong orders were in it.
September 21, 2026 — Renewals charge the day after payday, in the customer's real time zone
Two corrections to when a renewal is presented to the bank.Changed
  • A renewal that waits for a payday now runs the morning after it, not on the day itself. Measured across 3,214 renewals charged at every hour of the clock, and comparing only charges made in the same part of the day: charges made on the payday were paid 59% of the time, charges made one to three days after it 69%. A deposit posts through payday morning, bank by bank, and a charge sent into that window races it.
Fixed
  • Customers whose address spells out their state are billed in their own time zone. An address carrying “Texas” or “Western Australia” instead of TX or WA fell back to the national zone, which charged a Californian at 06:00 and a Perth customer at 07:00 when the store had asked for 09:00.
  • Puerto Rico, Guam and the US Virgin Islands are placed on their own clocks rather than on Central US time, and the country list now covers every country an address can carry.
  • A subscription with no shipping address uses the customer record’s country instead of defaulting to a US calendar — imported subscriptions in particular were being billed on US paydays whatever country the customer lives in.
Guide: Failed subscription payments.
September 21, 2026 — Open a decline reason and see its trend
The Failure Reasons table on your subscriptions overview now opens.Added
  • Click a decline reason to see its history. Failed and recovered charges per day, plus its share of all your failures and its own recovery rate. A count alone rises with your renewal volume; the share is what tells you which reason actually changed.
  • What the retry engine does with that reason is stated in the same place — retried on the funds schedule, retried once, or not retried at all.
Changed
  • Decline reasons are named by the code your customer’s bank returned. Lost card, Stolen card, Incorrect number, Invalid account and Transaction not allowed each used to read “Card declined (unretryable)”, so up to seven different problems shared one row label. They are now separate, named rows.
Guide: Failed subscription payments.
September 21, 2026 — Your checkout names your store, not your company
The checkout footer and your generated policies no longer publish your registered business name or your business address.Changed
  • The legal-identity line is gone from the checkout footer. It printed your registered business name, country and support phone under Sold by. The footer now shows your store name, Visit store, Contact us and your policy links.
  • Generated policies name your store, not the company behind it. Your privacy policy and terms of service no longer read “Your Store (operated by Your Company LLC)”, and your contact information policy is now your store name, email and support phone — no business address, no registered name.
  • Nothing is taken from your payments account except your country and support phone, which are still used for the governing-law line in your terms and as a way for customers to reach you.
Policies you have edited yourself are untouched. If you need your registered name or address published — some countries require it of registered traders — write it into the policy; it becomes Custom and is never overwritten.Guide: Store policies.
September 18, 2026 — Your store policies, written for you
PlatformDTC now writes and publishes your store policies for you, and keeps them up to date.Added
  • Auto-generated policies. Refund, shipping, privacy, terms of service, contact information and, if you sell subscriptions, a subscription policy. They are written from your store’s details and published on your checkout automatically. They only state facts your store has given us; anything we don’t know is left out, never guessed.
  • Return rules (Settings → Policies): return window, who pays return shipping, restocking fee, or final sale. Your refund policy follows them.
  • Auto-generated, Custom or Turned off on each policy. Edit one and it becomes yours, and automatic updates stop for it. Reset to auto-generated brings the generated text back.
Changed
  • Policies no longer start from templates with blanks to fill in.
Guide: Store policies.
September 18, 2026 — Store policies and your business identity on checkout
Your checkout footer now shows your store policies and who is selling: your legal business name, country and support phone.Added
  • Settings → Policies: refund, shipping, privacy, terms of service, subscription policy, contact information and legal notice. Each one has a template filled in from what PlatformDTC knows about your store, and blanks for what only you know. You can’t save a policy that still has a blank.
  • Policy links in the checkout footer. Each published policy opens on the checkout page, so the customer keeps their cart. The subscription policy only appears when the cart has a subscription.
  • Business identity in the checkout footer: your legal business name (for registered businesses), country and support phone number, from your payments account.
Good to know
  • Every store’s checkout runs on platformdtc.com. Card networks expect the refund policy, customer-service contact and merchant identity on the checkout before the customer pays.
  • Nothing appears until you publish it. A store with no published policies shows no policy links.
Guide: Store policies.
September 17, 2026 — Build your theme with Claude Code, Codex or Cursor
Build and publish your storefront theme with the coding agent you already use — Claude Code, Codex, Cursor or any MCP client — against the same theme the dashboard editor opens.Added
  • Theme MCP server at https://api.platformdtc.com/mcp/theme. Connect your agent, sign in to PlatformDTC in the browser, choose the store and the permissions to grant, and the agent gets 15 theme tools: list and create development themes, read the manifest and files, write and delete files, run theme check, get a preview link, publish, follow publish status, list versions and roll back. Sign-in is OAuth 2.1 with PKCE and dynamic client registration, so there is no client ID to copy.
  • Theme endpoints on the Agent Gateway: /themes, /themes/{id}/manifest, /themes/{id}/files, /themes/{id}/check, /themes/{id}/preview, /themes/{id}/publish, /themes/{id}/publish-status, /themes/{id}/versions and /themes/{id}/rollback, with the scopes read_themes, write_themes and publish_themes.
  • @platformdtc/cli: dtc login, and dtc theme init, list, pull, dev, push, check, share, publish, versions and rollback.
  • @platformdtc/dev-mcp: a local MCP server with the theme docs, the section schemas, theme check and a custom-section scaffold. It never touches your store.
  • Custom React sections. A section your agent writes in theme/custom/sections/<type>.tsx is registered as custom-<type>, appears in the theme editor’s section picker, and renders the same in the preview and on the live store.
  • Theme check: nine rules — valid JSON and templates, imports that resolve, no overriding platform files, no placeholder links, text or empty images, a warning for hard-coded ratings and review counts, and TypeScript. The same check runs in the CLI, the local MCP server, the API and before every publish.
  • Settings → Developer → Build with your agent in the dashboard: setup instructions for each agent, the publish setting, and theme publishes waiting for approval.
Good to know
  • Publishing waits for you by default. A publish from an agent is held until you approve it. Choose Publish automatically under Agent theme publishing to change that.
  • Nothing is overwritten silently. Files the platform owns are refused when written, not reverted at publish, and a file changed since the agent read it is refused with CONFLICT instead of being overwritten.
  • Every write is a version you can roll back to.
  • Development themes that are not changed for 7 days are deleted.
Guides: Build with your agent, Custom React sections, Theme check rules, OAuth for MCP clients.
September 16, 2026 — Everything that happens in your store, live
The dashboard’s Recent activity and the Activity page now show everything that happens in your store — what your agents, your team, your automations and your customers did — and update live.Added
  • Team actions. Every change a staff member makes in the dashboard is recorded with their name: cancelling or fulfilling an order, editing a product, replying to or approving a support message, publishing a page, changing settings, bulk subscription actions. Repeated edits to the same thing within ten minutes are grouped into one entry.
  • Agent actions. Every reply the support agent sends, every subscription it changes, and every draft or escalation waiting for you.
  • Automations. Renewal billing and failed payments, subscription automation rules, cancellations after an order is cancelled or disputed, Highest-risk order cancellations and card blocks, and abandoned checkouts recovered, summarised per day.
  • Customers. Orders placed and new subscriptions per day, and customers cancelling, pausing or skipping from their portal.
  • Filters on Activity: who acted (Agents, Team, Automations, Customers), category and status, including Needs approval. Entries link to the order, subscription, conversation, product or customer they are about.
  • “Waiting for you” on the dashboard card when an agent needs your approval.
Changed
  • Self-Driving Score is now agent actions ÷ (agent + team actions) over the last 30 days, counting only actions that actually happened. Automations and customer self-service are shown alongside it but do not change the score, and a draft waiting for approval does not count until it is sent.
  • Live. The card and the Activity page refresh every 15 seconds while open.
Good to know
  • History from the last 30 days was filled in from support conversations, subscription history, orders and automation runs. Team actions outside support and subscriptions are recorded from today.
September 16, 2026 — Upsell funnels and Membership
Build post-purchase upsell funnels for subscription stores, and sell a paid membership billed as a subscription.Added
  • Upsell funnels (Checkout Editor → Post-purchase offers). Offers on the page right after payment, accepted without re-entering payment details. Each step can be a product offer added to the order, a one-time order turned into a subscription, an item added to the next subscription shipment, or an upgrade to prepaid. Set a downsell after a decline and a follow-up after an accept, target funnels by products, order subtotal, subscription status, first order and customer tags, schedule them, and A/B test up to five variants.
  • Explicit consent for subscription offers. A one-time order becomes a subscription only when the customer ticks a checkbox that is never pre-ticked and then accepts. Nothing is charged until the first renewal date.
  • Add-on offers in pre-renewal reminder emails (Subscriptions → Portal → Upsells), and frequency change and upgrade to prepaid in the customer portal.
  • Upsell report (Analytics → Reports → Upsells): impressions, accepts, take rate, upsell revenue and subscription conversions, by funnel, variant and step.
  • Membership (Membership in the sidebar). Plans with a member discount, member prices on variants, free shipping, an extra discount on subscriptions, and member-only and early-access products — enforced at checkout for signed-in members and for shoppers who join in that checkout.
  • Member card in the customer portal with the member’s real savings, cancellation in the portal with perks to the end of the paid period, and a 7-day grace period when a renewal payment fails.
  • Membership tiers that add perks for members who reach a number of paid periods or a spend over a window.
Good to know
  • PayPal orders are not shown paid post-purchase offers: no product offers, subscription conversions or prepaid upgrades.
  • Membership needs card or PayPal checkout. Other payment methods refuse an order with a membership or a member-only or early-access product.
Guides: Upsell funnels, Membership.
September 16, 2026 — Declines retried by what the bank said
Declined renewals are now retried according to the response code the customer’s bank sent: soft declines are retried later, vague refusals are retried once, and permanent declines are not retried at all.Changed
  • The bank’s own response code is read. Card declines are sorted using both the decline reason and the raw code from the customer’s bank. If either says the card must not be retried, it isn’t.
  • Soft declines on one schedule. Insufficient funds, amount or frequency limits, and temporary bank or network errors are all retried 2, 5 and 8 days after the first decline — 4 attempts in total. Temporary errors were previously retried 1, 2, 3 and 4 days apart.
  • “Do not honor” and generic declines are retried once. One retry 48 to 72 hours later; if it is declined too, the subscription goes Past due and the customer is asked for a new payment method. These were previously retried up to 4 times.
  • Suspected fraud is never retried. A decline the bank marks as suspected fraud (code 59) is no longer retried, even when it is reported as “do not honor”. The same applies to lost, stolen or restricted cards, closed accounts, invalid card details, cards not permitted for the purchase, revoked authorizations and previous chargebacks.
  • Queued retries follow the new rules. Retries already scheduled under the old rules are checked again before they run, and are not sent if the new rules would not have scheduled them.
Fixed
  • Last-retry notice. With Smart AI retry, customers were told “we’ll try again” before the final retry instead of receiving the last-retry notice.
Guide: Failed subscription payments.
September 15, 2026 — Smarter recovery for failed subscription payments
Subscription renewals are now timed around your customers’ paydays and local time, declined renewals are retried on a schedule matched to the decline, and a card that runs out of funds puts the subscription on hold instead of cancelling it.Changed
  • Payday-aware renewals. A renewal is charged on its renewal date, or on the customer’s next payday when one falls within 3 days after that date — never earlier. Paydays follow the country in the customer’s shipping address.
  • Charged in the customer’s local time. Renewals and retries run at your store’s billing hour in the customer’s local time, 14:00 by default, not at the time of day the customer first checked out. The next renewal date is still counted from the renewal date, so the cycle doesn’t drift.
  • Retries 2, 5 and 8 days after a decline. A renewal declined for insufficient funds or a general decline is retried 2, 5 and 8 days after the first decline — 4 attempts in total, or fewer if Max attempts is lower. Temporary processing errors are retried 1, 2, 3 and 4 days apart, waiting at least as long as the card network asks. Lost, stolen, closed or expired cards, and banks asking for authentication, are not retried automatically.
  • One attempt per card per 24 hours. At most one automatic attempt is made on a card in any 24 hours, across every subscription on that card, whichever retry strategy your store uses.
  • Past due instead of cancelled. When the last retry fails, the subscription stays Past due, nothing more is charged automatically, and the customer receives up to 4 requests to update their payment method, at least 3 days apart. Updating the card retries the payment immediately. This applies to both retry strategies.
  • Reminder 3 days before each renewal. The pre-renewal reminder now goes out 3 days before by default. It shows the amount and date, asks the customer to make sure their card has enough available, and links to update the payment method, skip, pause and manage — and to cancel, unless your store runs a cancellation flow.
  • Clearer failure emails. After a failed attempt, the customer is told when we’ll try again — and, for insufficient funds, to make sure funds are available or switch cards. Before the final retry, they are told the subscription will be put on hold, not cancelled, if it fails.
  • Recovery discount on the final retry. Offer discount after N failures now defaults to 3, so an enabled recovery discount applies to the final retry.
  • Renamed settings. Target retry hour (UTC) is now Billing & retry hour (customer’s local time), and Auto-cancel after retries exhausted is now Cancel when a declined card is never replaced. With it on, a subscription is cancelled only after a permanent decline and 4 unanswered update-payment-method requests.
Good to know
  • Dunning emails must be on. Failure, retry and card-update emails are sent only when Dunning emails is on in Subscriptions → Settings → Billing engine emails.
  • Smart AI retry. Payday timing and the 2, 5 and 8-day schedule apply to stores using the Smart AI retry strategy. The Fixed schedule strategy keeps your own list of retry days.
  • Customers can still cancel at any time while a subscription is past due.
Guide: Failed subscription payments.
September 13, 2026 — Import a theme from Shopify
Bring a theme from your Shopify store into Themes 2: its templates, header, footer, theme settings and images come over as they are, as a new unpublished theme.Added
  • Import from Shopify (Themes 2 → Import from Shopify). Connect your Shopify store, pick any of its themes, and import it into a new unpublished theme or into an existing Themes 2 theme.
  • Analyze first. Run an analysis that converts the theme and shows the full report without creating a theme, copying images or saving anything.
  • What comes over. Every JSON template including alternate templates, the header and footer section groups, and theme settings — with section settings, blocks, their order and hidden state exactly as in Shopify. Images the theme uses are copied to PlatformDTC, and links to your collections, products, pages and blogs point at your storefront’s own addresses.
  • Ported themes. Sections from Silent Scale PRO map to their PlatformDTC equivalents. Sections from other themes are kept, render nothing, and are flagged in the theme editor and the report.
  • Report. Lists everything that wasn’t imported and why: Liquid and customer account templates, market-specific header and footer variants, Shopify app blocks and app embeds, per-section custom CSS, licence settings, and videos stored in Shopify.
  • Custom code review. Custom Liquid and HTML that tampers with buyer consent, rewrites or hides prices, hides subscription terms, invents social proof or runs urgency countdowns is flagged. Flagged code is imported empty by default, and you can choose per item.
Good to know
  • Read-only on Shopify. Only the read_themes scope is needed. Since January 1, 2026 new Shopify apps are created in Shopify’s Dev Dashboard; custom apps created earlier in the Shopify admin also work.
  • Credentials aren’t kept. They are encrypted while the import runs, deleted when it finishes, and never logged.
  • Nothing goes live until you publish. Importing again into the same theme replaces the imported parts and saves a new version, so earlier versions can be restored; images already copied are reused.
  • One at a time. One import runs per store at a time.
Guide: Import a theme from Shopify.
September 13, 2026 — Navigation menus, pages and blog posts
Build your store’s menus, write pages and publish blog posts from the dashboard, under Online Store.Added
  • Navigation (Online Store → Navigation). Create menus of links to your home page, catalog, collections, products, pages, blogs, blog posts, policies or any web address. Nest links up to three levels and drag to reorder. Every store has a Main menu and a Footer menu, which can be edited but not deleted.
  • Pages (Online Store → Pages). Write pages such as About us or a size guide in a rich text editor, choose whether each is visible, and set its search engine title, description and URL handle.
  • Blog posts (Online Store → Blog posts). Create one or more blogs and publish posts with an author, excerpt, featured image and tags. The list shows posts from every blog, with filters for blog and visibility.
  • API. Menus, pages, blogs and blog posts can be managed through the API with the new read_content, write_content, read_online_store_navigation and write_online_store_navigation scopes, with webhooks for each change. See Online Store content.
Changed
  • Landing pages. The sidebar entry for pages you build with the page builder is now called Landing pages. Pages is the new content pages list.
Good to know
  • Theme support. Menus, pages and blog posts are shown by themes built with the new theme editor whose sections use them — a header or footer that shows a menu, a page section, or a blog section.
  • No publish needed. Saved changes reach your live store within a short while without publishing your theme again.
  • Links never go nowhere. A menu link to a product, collection, page or post that is deleted or hidden disappears from your store and is flagged in the menu editor so you can fix it.
  • URL handles stay put. Renaming a page, blog or post doesn’t change its address.
  • No scheduling. A page or post is visible as soon as you publish it; a future publish date can’t be saved.
Guides: Navigation, Pages, Blog posts.
September 13, 2026 — A rebuilt Checkout Editor
The Checkout Editor has been rebuilt around a live preview of your checkout: pick a section or click the page itself to edit it, arrange blocks by dragging, and save to publish.Changed
  • One screen instead of tabs. The editor now has three panels — Sections, Settings and Post-purchase offers — with your checkout or thank-you page in the middle and the settings for what you select on the right.
  • Sections. The page is shown as a tree of its Header, Main, Order summary and Footer. Add a block to any section from a searchable picker, drag blocks within and between sections, hide a block without losing its content, or duplicate and remove it.
  • Click to edit. With the Inspector on, click anything in the preview to open its settings. Turn the Inspector off to use the preview the way a shopper would.
  • Save publishes. The separate Save draft and Publish buttons are replaced by Save (⌘S), which saves your changes and publishes them to your live checkout. Save as draft keeps your edits without publishing, and Discard unsaved changes goes back to your last save. A badge shows whether your checkout is live or has unsaved or unpublished changes.
  • Delivery and local pickup are now set from the Delivery section, in the Sections panel or by clicking it in the preview.
Added
  • Undo and redo (⌘Z / ⇧⌘Z), and a desktop / mobile preview toggle.
  • More branding settings: header and order summary backgrounds, the Pay button color, error color, transparent fields, a separate headings font, and logo width. Text on every color you pick is set automatically for contrast.
  • Address autocompletion switch, to turn address suggestions on or off.
Good to know
  • Your live checkout doesn’t change until you save. The preview never charges a card.
  • Settings apply to both pages. Branding set in the Settings panel is used on your checkout and your thank-you page.
Guide: Checkout Editor.
September 13, 2026 — One fraud risk level on the order page and in the order list
The order list’s Risk column, the Risk level filter and sort, and order exports now show the same risk level as the Fraud analysis card on the order page.Before, the order list showed the level from the payment processor’s own scoring, while the order page showed PlatformDTC’s fraud analysis. The two could disagree about the same order: an order could read Highest risk on its page, Normal in the list, and be missing from the Highest filter.Changed
  • One risk level everywhere. The order page, the Risk column, the Risk level filter and sort, and the Risk Level column in order exports all use PlatformDTC’s fraud analysis. See Fraud analysis for how the level is decided.
  • The level stays up to date. A later order from the same IP address or card, a new fraud report or dispute, or an edited delivery address updates it automatically, usually within a minute.
Good to know
  • Not scored is not Normal. An order with too little payment information to check shows no level in the list and is left out of every Risk level filter. This includes many older orders placed before card details were recorded.
  • Every order was re-checked. Your existing orders were assessed when this change shipped, so some list levels changed. Most changes are orders that now show Elevated because they were paid with a card type that draws most fraud reports.
September 13, 2026 — PlatformDTC POS
Sell in person with PlatformDTC POS: card payments on a countertop smart reader, cash with a cash drawer, and every sale in the same Orders and Customers as your online store.Added
  • Point of Sale in the dashboard. Build a sale from your catalog or with custom items, apply a percentage or fixed discount to the cart, and attach an existing customer or create a new one. Tax is added at the location’s tax rate.
  • Card payments on a reader. Pair a countertop smart reader to a location with the pairing code shown in the reader’s settings, then send the amount to it. A declined card can be tried again, and a payment can be canceled on the reader.
  • Cash and split payments. Take cash with the change worked out for you, or split a sale across cash and one or more cards.
  • Cash drawer. Open a drawer per location with a float, record pay ins and pay outs, and close it by counting — PlatformDTC shows expected cash, counted cash and the difference, with a summary of the session.
  • Receipts by email or printed.
  • Refunds to the original card or in cash, in full or in part, with the option to restock the items.
  • Locations. Run several locations, each with its own address, tax rate, readers, cash drawer and an optional inventory location that in-person sales take stock from.
Good to know
  • Orders. A completed sale becomes a paid, fulfilled order tagged Point of Sale in Orders. It gets your receipt instead of the online order-confirmation email.
  • Pricing. In-person card payments are charged your plan’s card rate, the same as online card payments. See Payment fees and rates.
  • Requirements. POS needs PlatformDTC Payments set up with card payments active, and an internet connection — there is no offline mode. Readers are supplied through sales.
Guides: PlatformDTC POS.
September 11, 2026 — PayPal subscription payments show what was bought
PayPal subscription renewals and subscription add-ons now list the products, shipping and discount in PayPal. Before, PayPal showed only the amount.In PayPal, your activity page and your customer’s receipt showed renewals as an amount with no products. A customer who doesn’t recognise a payment is more likely to dispute it, and a dispute on a payment that names no products is harder to answer.Fixed
  • Items on renewal payments. Each PayPal subscription renewal now lists the products, their quantities and unit prices, shipping, and any subscription or coupon discount. It also gets a description such as Subscription renewal — 1× For Him. This applies both to subscribers who checked out with PayPal and to subscriptions imported with a PayPal billing agreement.
  • Items on subscription add-ons. A one-time add-on bought from the customer portal and paid with PayPal names the add-on.
  • Items on shipment tracking. Tracking numbers sent to PayPal now list what the shipment contains, taken from the order. This also covers renewals that were charged before this change, once they ship.
Good to know
  • Amounts are unchanged. Only the description of the payment changed.
  • A completed PayPal payment can’t be edited. Renewals charged before this change keep their bare amount on the payment itself; their items appear on the tracking information once they ship.
  • The item list must add up to the charge. If a subscription’s products, shipping and discount don’t add up exactly to the renewal amount, the payment names the products in its description instead of listing them. PayPal would otherwise reject the renewal.
September 11, 2026 — Visa Compelling Evidence 3.0: card payments carry what Visa needs to block friendly-fraud disputes and drop fraud reports from your monitoring ratio
Card payments on PlatformDTC Payments now record everything Visa’s Compelling Evidence 3.0 (CE 3.0) rules match on, and automatic dispute responses include CE 3.0 evidence for eligible Visa fraud disputes.Visa’s Acquirer Monitoring Program (VAMP) counts fraud reports from card-issuing banks as well as disputes. A fraud report still counts when the payment was refunded or the dispute was resolved early. The one exception is a transaction that qualifies for CE 3.0: when the same card was used for at least two earlier undisputed orders placed 120 to 364 days before, and those orders match on the IP address plus the email or delivery address, the bank must block the fraud dispute and Visa leaves the report out of your ratio.Added
  • Product descriptions on card payments. Checkout, post-purchase add-on and subscription renewal payments now carry a description of what was bought (for example Order #2203 — 2× Blue Widget). When a cardholder asks their bank about a Visa payment, the bank sees the products, the delivery address, the email address and the IP address used to place the order, and, under CE 3.0, the same details of earlier orders from that card.
  • Device evidence on post-purchase add-ons. Accepting an add-on now records the shopper’s device and IP address with the add-on payment, which is charged separately from the original checkout payment.
  • CE 3.0 in automatic dispute responses. With Respond to disputes automatically turned on, an eligible Visa fraud dispute is answered with two matching earlier orders from the same card. When Stripe confirms the evidence qualifies, it is submitted straight away instead of waiting until close to the deadline. The dispute’s badge shows the CE 3.0 result.
  • CE 3.0 readiness on Settings → Automation: the share of your last 30 days of card orders that carry a purchase IP address, customer email and full delivery address, whether product descriptions are being sent, and the earliest date a dispute on your store can qualify.
Good to know
  • CE 3.0 needs history. An order only counts as earlier history once it is 120 days old, so a store qualifies no earlier than 120 days after its first paid card order.
  • Blocking before a dispute is filed requires Stripe’s dispute prevention (Visa Order Insight) on the payments account.
  • Our Dispute Resolution Policy (§4.4), Privacy Policy and subprocessor list describe what is shared with card-issuing banks.
September 11, 2026 — the $2,000 plan is renamed Scale, and publishing no longer requires a plan
The $2,000-a-month plan is now called Scale. Separately, a storefront no longer needs a plan to go live: publishing has been open to every store since September 1, 2026.Changed
  • Enterprise is now Scale. Same plan, same $2,000 a month per store, same card rate (3.4% + 30¢ on domestic cards). Only the name changed. Earlier entries in this changelog that mention the Enterprise plan mean this plan.
  • Publishing no longer requires a plan (since September 1, 2026). This reverses Build free, pay to publish from v1.13. Once an account’s email address is confirmed, its store’s default theme goes live on its PlatformDTC address, and every later publish goes through without a plan check.
Unchanged
  • Prices and billing. Basic $20, Pro $200 and Scale $2,000 a month per store, billed monthly. The $1 first month still applies once per account, to the first plan you start. There is still no free plan and no free trial.
  • Subscriptions on the $2,000 plan. They are not moved, repriced or re-billed. The plan’s identifier is still enterprise; only its displayed name changed.
  • The one-time $100,000 AI credit is still granted when a new account confirms its email.
  • Storefronts that are already live stay live.
Orders is one screen — Disputes and Drafts are tabs of the order list, and every tab shows its count the same way
Disputes and Drafts are no longer separate screens. They are tabs in the same row as All Orders, Open, Fulfilled, Cancelled, Alert and Warning, with the same toolbar and table.The row is grouped: order status (All Orders, Open, Fulfilled, Cancelled) | fraud signals (Alert, Warning) | Drafts and Disputes.Changed
  • Disputes is a filter of the order list. It shows the orders a cardholder has disputed, in the same table as every other tab. Each row carries a dispute badge — for example Chargeback · Under review — and hovering it shows the reason and when evidence is due. Open a row for the full dispute.
  • Respond to disputes automatically now sits in the toolbar while the Disputes tab is open.
  • Drafts use the order list’s toolbar and table. Search drafts by number (with or without the #) or by customer email, filter them by Open, Invoice sent or Completed under Filters, and create a draft from the toolbar.
  • Every tab shows its count in the same style, including Alert, Warning, Disputes and Drafts.
Fixed
  • Exporting from the Alert, Warning or Disputes tab now exports exactly the orders on that tab. It used to export every order.
Old links to the Disputes and Drafts screens, including the link in dispute notification emails, open the matching tab.
Every action on the order page now works — returns, printing, duplicate, notes, tags and messaging
The order page’s actions are all live. Controls that looked clickable but did nothing now either do the job or are gone.New
  • Return on fulfilled orders — pick the items, quantity, reason and restock option; quantities are capped at what is not already on a return. Manage the return from Returns.
  • Print → Order invoice and Print → Packing slip, printed straight from the browser.
  • Duplicate creates a draft order with the same items, customer and ship-to.
  • Notes and Tags are editable from the order page.
  • Message customer opens a support email to the buyer, addressed and titled with the order number.
Fixed
  • An item’s name now opens that product in your catalog.
  • The customer’s name opens their customer profile.
  • Refund at the top of the page opens the refund form, and appears only while money is left to refund.
  • Cancel order asks you to confirm, with an optional reason, instead of cancelling on the first click.
  • The status beside the order number is the real payment status. A refunded order no longer reads “Unpaid”.
  • The order page and its printed documents show your store’s order number (for example #603), the same number as the orders list and return names, instead of a 36-character id.
  • The billing address is shown only when checkout recorded one. “Same as shipping address” appears only when the two match.
Removed
  • Edit and Mark as delivered, which had nothing behind them.
See Manage an order.
Dispute, payout and account fees at cost — itemised in Finance and deducted from your balance
PlatformDTC pays the payment processor’s dispute, payout and account fees for your store. From September 11, 2026 they are recovered at cost, itemised in your dashboard, and deducted from your PlatformDTC Payments balance.These fees were always charged — to PlatformDTC, on your store’s behalf — but they never appeared anywhere you could see them. They now have their own statement, every line at the processor’s own price with no margin, and they are taken from the balance your sales build rather than added to an invoice a month later.Changed
  • Dispute fees, at cost. $15 for every dispute received, which the card network charges whatever the outcome, and a further $15 when a dispute is contested — credited back to you if you win. This replaces the $20 chargeback fee.
  • Payout and account fees, at cost. 0.25% + 25¢ of each payout sent to your bank, and $2 for each month in which your account receives a payout.
  • Collected from your balance, not your invoice. These fees, and any international or currency-conversion cost that could not be taken inside a payment (the v1.16 shortfall), are deducted from your PlatformDTC Payments balance. A deduction never takes your balance below zero; anything it cannot cover yet is retried when funds arrive.
New
  • Platform fees on Finance → Payouts. An itemised statement of every amount — what it was for, the period, the amount, and whether it is owed, being collected, collected or credited — and every deduction made from your balance.
Past periods
  • Costs PlatformDTC paid for your store before these terms took effect are recoverable at cost: international and currency-conversion costs not taken in a payment’s fee before 09:00 UTC on September 11, 2026, payments charged below your current plan’s rate, and dispute, payout and account fees. Each is itemised on Finance → Payouts, and nothing for a past period is deducted until at least 14 days after we email you notice.
Unchanged
  • Your card rate — 3.8% + 30¢ on Basic, 3.5% + 30¢ on Pro, 3.4% + 30¢ on Enterprise — and the at-cost international (+1.5%) and currency-conversion (+1%) pass-through from v1.16.
  • No margin on any pass-through, and still no separate transaction fee.
  • A rate card agreed in writing for your store still applies.
The full terms are in sections 6.2.2 to 6.2.5 of the Terms of Service; every rate is on platformdtc.com/pricing.
International and currency-conversion costs are now taken in each payment's fee
From 09:00 UTC on September 11, 2026, the card costs that depend on where a card was issued are priced into the payment itself.Your plan’s card rate has always been the rate for a domestic card. A card issued in another country, or an order charged in a currency other than your account’s, costs more to process — and until now that difference was not visible on the payment it belonged to. It is now taken in that payment’s transaction fee, at the moment of the charge, at cost.Changed
  • International cards: +1.5%, at cost. When a card was issued outside your payments account’s country, 1.5% of the payment is added to that payment’s fee. Cards issued in Puerto Rico and other US territories count as US cards.
  • Currency conversion: +1%, at cost. When an order is charged in a currency other than your account’s default currency, 1% of the payment is added to its fee.
  • Renewals and post-purchase offers are priced off the saved card, the same way.
  • Klarna and Afterpay carry their own processing rate. 5.99% + 30¢ for Klarna and 6% + 30¢ for Afterpay, plus your plan’s commission — 6.89% / 6.59% / 6.49% + 30¢ for Klarna and 6.9% / 6.6% / 6.5% + 30¢ for Afterpay on Basic / Pro / Enterprise.
  • What could not be priced at the charge goes on your next invoice. If a card’s issuing country was not available when the payment was made, the amount not collected appears as an itemised line on your next PlatformDTC invoice, with the number of payments, the volume and the rate.
Unchanged
  • Your domestic card rate. 3.8% + 30¢ on Basic, 3.5% + 30¢ on Pro, 3.4% + 30¢ on Enterprise.
  • No margin on either pass-through, and still no separate transaction fee.
  • Nothing charged before 09:00 UTC on September 11, 2026 is repriced or billed.
  • A rate card agreed in writing for your store still applies.
The full terms are in section 6.2 of the Terms of Service; every rate is on platformdtc.com/pricing.
Support shows the photos your customers send, and lets you send them back
Attachments arrived in the support inbox — in both directions.Customers have always been able to attach things to the emails they send you. Until today the inbox threw all of it away: the text of the message came through, and the photo of the crushed parcel, the screenshot of the order confirmation and the PDF invoice did not. A thread would say “photo attached” and there would be no photo, so answering it meant leaving the dashboard and opening the mailbox in another client. Replies had the same hole in the other direction — there was no way to send a shipping label or a replacement receipt from the reply box.New
  • Files a customer sends now appear in the thread. Pictures are shown at full width, and every file — image, PDF, spreadsheet, anything — is listed under the message with its name and size, one click to download. Click a picture to open it full-screen.
  • Attach files to a reply. A paperclip under the reply box, or drag files onto it, or paste a screenshot straight in. Images you attach are embedded in the email your customer receives, so they see the picture in the message rather than having to open an attachment.
  • Attach files when you write first, too. The same on New email.
  • A reply can be nothing but a file. “Here is your label” with the label attached and no words is a real answer, and Send now allows it.
  • Up to 20 files per message, 25 MB each — the same ceiling email itself has.
Unchanged
  • Nothing about how mail reaches you or leaves you. Same mailbox, same address, same threading.
  • Your customers’ files stay private. They are not on a public link. Only someone signed in to your store can open them, and every attachment is checked against its own fingerprint before it is handed over.
Your dashboard now says when your store has no way to pay you
A store with no payment account is told so, on every page, until it has one.A store is created without a payment account, and until today nothing in the product said that out loud. The storefront looked finished, orders could arrive, and the one setup step between having a store and being paid for it was a settings page nobody had a reason to open. Payments activation is now a first-class notice: it appears in the notification bell, and — while your store still has no way to be paid — as a banner across the dashboard.Changed
  • A payments notice on every dashboard page. It carries the reason it is there and a single button to Settings → PlatformDTC Payments. Once payments are set up it disappears on its own; there is nothing to acknowledge.
  • What it says depends on your store. If orders are already arriving and there is no payment account, the notice says how many, and it cannot be dismissed — money is being taken with nowhere to send it, and that is not something to hide behind a close button. If you have not sold yet, it is the ordinary setup nudge and closes for the day. If you run your own card processor, it is an offer rather than a warning, and it stays in the bell rather than taking a banner.
  • One thing at a time on a new account. While your confirmation email is still outstanding — the thing holding your storefront offline — the payments nudge waits its turn rather than stacking a second banner on the first.
  • Dismissing it anywhere dismisses it everywhere. The banner and the bell are the same notice, so closing one no longer leaves the other showing a badge for the same sentence.
  • Payment notices no longer name our processor. Every message about the PlatformDTC Payments rail now calls it PlatformDTC Payments, matching the order timeline and the payments settings page. Your own connected Stripe account is still called Stripe Card, because that is what it is.
Unchanged
  • Nothing about how you set payments up. Same page, same verification, same account.
  • Stores that already have payments set up see nothing new. The notice only exists while there is no payment account, and it is per store, not per account.
Public beta — sign-up is open to anyone
Anyone can now create an account and build a real store.Until today the way in was a conversation. Sign-up is open: you register, and at the end of it there is a real store on a subdomain with a default theme already seeded and ready to edit — no sales call, no invite code, no waitlist, nothing to wait for. Building it costs nothing; the storefront starts serving shoppers when you start a plan. Nothing about existing stores changes; this is a door being added, not a door being moved.Public beta is a statement about pace, not about quality. These are not sandboxes — a published store is a real store taking real payments. What it means is that behaviour we think is wrong gets fixed rather than preserved for compatibility, and that when a change is the kind a merchant would notice, it lands here first.Changed
  • Sign-up is self-serve. Register at platformdtc.com/register and the store exists when you finish, seeded and ready to edit.
  • Build free, pay to publish. The theme editor, catalog, checkout settings and the rest of the dashboard are open on the real product from the moment you register — not a demo of it. Serving shoppers is what a plan buys: until one starts, the storefront is not published.
  • Plans are priced per store, and the first month is $1. Basic $20/mo, Pro $200/mo, Enterprise $2,000/mo; each plan covers one store, so a second store is a second plan. The $1 first month applies once per account, to the first plan you start. There is no Free plan. Card processing is billed separately at 3.8% + 30¢ on Basic, 3.5% + 30¢ on Pro and 3.4% + 30¢ on Enterprise.
  • New accounts get a one-time grant of $100,000 in AI credits. The agent surface is the part worth trying, and it is metered — the grant is there so trying it is not a budget decision.
  • A page explaining what beta means for you. Public beta sets out what is covered, what may change under you, how to report something broken, and where to check whether it is us or you.
Kept working
  • Storefronts that are already live stay live. Pay-to-publish is a rule for stores that have not been published yet. Nothing that was already serving shoppers went dark, and nothing needs to be re-published to stay up.
  • Merchants already on a plan keep the price they are on. The catalogue above applies to plans started from today. Retired plans are deactivated, not deleted: a subscription still on one keeps its own price and its own card rate.
  • Nothing else changed for existing stores. Same dashboard, same API, same keys, same scopes. No migration, no re-authentication, no plan change.
  • Talk to sales is still the front door. If you are migrating a catalog or moving live subscriptions, that path is unchanged and is still the one we would point you at. Self-serve is an addition to it.
  • The Gateway contract is unchanged. Scopes, idempotency, jobs, approvals and webhooks behave exactly as documented. Opening sign-up did not loosen any gate.
Status for the surfaces we probe — storefronts, checkout, dashboard, Core API, notifications and these docs — with p50/p95 per component: status.platformdtc.com.
Checkout now runs on platformdtc.com
Your checkout has moved off a separate address and onto the main one.Shoppers used to be handed from your store to checkout.platformdtc.com — a hostname that matched neither your brand nor anything they had clicked. That hop cost a fresh DNS lookup and TLS handshake on the slowest possible moment in the funnel, and it showed buyers a domain name nobody chose. Checkout now runs at platformdtc.com/checkout/… instead, on the same address as everything else.Stores on their own custom domain are unaffected and remain the better setup: checkout there runs on yourbrand.com, where the shopper never leaves your brand at all.Changed
  • Checkout runs at platformdtc.com/checkout/<session>. One origin, one certificate, one connection — the checkout page now reuses the connection the shopper already has.
  • Buy-now permalinks read platformdtc.com/cart/<variant>:<qty>. The permalink keeps the same shape it has always had; only the domain changed. A permalink is the one checkout link a person reads and pastes, so its shape does not move when your store does.
  • Express wallets registered on the new address. Apple Pay, Google Pay, Link, Amazon Pay and Klarna are registered for the new host before any store is moved onto it. They only render on a registered hostname, and an unregistered one fails silently — so the move is gated on the registration, not on a checklist.
Kept working
  • Every link you have already sent still resolves. Permalinks running in live ad campaigns, recovery emails already in inboxes and links inside released mobile app builds keep working. They are forwarded to the new address with their query string intact, so payment returns and campaign attribution are unaffected.
  • Your shopper account area has not moved. Sign-in, orders, saved products, followed stores and the subscription portal stay exactly where they were.
  • Nothing about your checkout changed but the address. Same branding, same blocks, same payment providers, same settings.
New reference: Checkout URLs.
Removing a domain now frees its email too
A domain you remove is now genuinely free — including the email on it.Removing a custom domain used to release only half of it. If you had set email up on that domain, the mail side kept holding the name: one domain belongs to one account, permanently, because two accounts sharing a mail domain would be two accounts able to read each other’s mail. So the domain looked disconnected, and setting it up on another store answered “that domain is already served by another organisation” — with nothing you could do about it from your own dashboard.Added
  • Remove email from a domain. In Settings → Domains → Email from your domain, each configured domain now has a remove action. It asks first, and it says what goes: a sending domain stops sending as your address and falls back to [email protected]; a full-mailbox domain loses its mailboxes and the mail in them.
  • Removing the domain removes its email too. Disconnecting a custom domain now releases the matching mail setup automatically, so the name is immediately usable on another store or another account.
  • A confirmation before a domain is removed. Removing a domain was one unconfirmed click. It now asks, and when the domain carries your email it says so in the dialog, before anything is torn down.
Kept safe
  • Your other addresses are untouched. Email lives on the root domain, so if you have both brand.com and shop.brand.com connected, removing one of them leaves the email alone — it is only released when the last hostname on that domain goes.
  • Nothing is released while it might still be receiving. If the mail service cannot be reached, the removal reports a failure and changes nothing rather than freeing a name whose mailboxes are still live.
Every parcel tracked, and told to you when it stops moving
Your store now watches all 3,393 parcels it has shipped, not a sample of them — and emails you when a batch of them stops moving.Until now only the most recent shipments were registered with the carrier aggregator, because registration is metered and the backfill ran a seven-day window. That meant most tracking numbers had no scan data behind them: a shopper pasting theirs into your tracking page was told the order could not be found, which is the worst possible answer to give someone who is already anxious about a parcel.Added
  • Full tracking coverage. Every fulfilled order carrying a tracking number is now registered and syncing, so your tracking page answers for all of them.
  • Delivery alerts. One email per issue per day — never one per parcel — when enough of your shipments cross a line: the carrier has flagged them (held, returning, failed delivery), they have been silent for over a week, they are past the delivery date you promised, or they were marked shipped and never scanned at all. Each email says what the number means, names a few of the parcels, and links straight to them.
  • “Preparing to ship” now means what it says. Carriers report a printed label the same way they report a real shipment, and we were passing that through as Shipped — on 266 parcels, 109 of which had been sitting that way for over a week. Those now read “Preparing to ship” for your shopper, and get their own line on the delivery dashboard so you can see which supplier printed labels and dispatched nothing. Transit times were also being measured from the moment the label was printed rather than the first real carrier scan; they are now measured properly, which is why your average may have moved.
  • A reason for every hidden scan. The tracking page has always suppressed origin-country and non-English carrier lines so your brand story does not end on a foreign logistics portal. Now each hidden scan records which rule hid it, so the policy can be audited instead of trusted.
What Meta claims, and what the data can stand behind
A new report at Analytics → Advertising. It puts Meta’s reported ROAS beside a number built only from orders we can prove came from a Facebook ad click, and explains the difference.Ad platforms report their own contribution, and every platform takes full credit for every conversion it touched. Meta’s default counts a purchase up to seven days after a click and one day after a mere view, and fills the gaps it cannot observe with modelled estimates. On one live store over thirty days, Meta claimed more conversion value than the store took in revenue — including subscription renewals no advertisement drove.Added
  • The claim beside the floor. Meta’s ROAS and a click-only ROAS over the same spend. The second is deliberately conservative: it counts only orders carrying a real Facebook click identifier, so the true figure sits between the two.
  • Where the gap comes from, as arithmetic against your own books — how many more conversions Meta claims than you had orders, and what share of your total revenue its claim represents.
  • What the evidence supports, tier by tier, with unattributed revenue shown at full size as its own line. We never spread unknown revenue across channels; that is what makes a platform number look better than it is.
  • A per-campaign table, Meta’s claim next to ours. Campaigns we cannot measure show a dash and an unmatched badge — not a zero. “We could not measure this” and “this sold nothing” are different statements, and only one of them is true.
  • Coverage, stated plainly. Every figure carries the share of orders and spend it rests on.
Notes
  • Campaign-level figures depend on an ad’s destination naming the product it sells. Ads landing on a product page, or on a product-named domain, are matched automatically; the rest are reported as unmatched rather than guessed at.
  • Subscription renewals inherit the attribution of the order that acquired them. Renewals whose acquisition predates click-id capture stay unattributed, and the report says so instead of showing a zero.
Disputes answer themselves
Chargebacks can now be contested automatically. Turn it on at Orders → Disputes, on the switch above the table.A card dispute gives you roughly seven days to respond, and a deadline that passes in silence is scored as a loss — the money, the goods, and a mark against the dispute rate that card networks cap. Until now PlatformDTC could show you a chargeback but not answer one; answering meant logging into your payment provider before a deadline nobody was watching.Added
  • Automatic evidence submission, per store, off by default. When on, we build the response from the order’s own records — customer name and email, the IP the order was placed from, billing and shipping address, carrier and every tracking number on the order (including each leg of a split shipment), the line items, and your published refund policy — and submit it to the cardholder’s bank.
  • Timed to the deadline, not to the filing. Evidence goes about 48 hours before the deadline, because it can only be sent once: a delivery scan that lands on day five belongs in the response.
  • Reason-aware. A non-receipt dispute leads with delivery proof, a duplicate-charge dispute explains the difference between the two charges, and a cancelled-subscription dispute answers the cancellation claim.
  • An Evidence column on the disputes table — submitted (with the timestamp), queued, retrying, not contested, or deadline passed.
  • An alert when we answer for you, listing exactly which evidence fields were sent, and a matching entry on the order’s own timeline.
What it will not do
  • It never contests a refunded order. If you already refunded, the money is back with the cardholder; those are marked not contested and left alone.
  • It never fabricates. A fact the order cannot substantiate is left out rather than guessed — an issuer weighs a contradicted claim against you.
  • It does not cover PayPal disputes, which have their own evidence process.
Note. Evidence can be submitted to a bank exactly once and cannot be edited afterwards. Turning this on delegates that one response for every future dispute; the exact payload we sent is kept on the dispute so you can always see what was argued.
Traffic & Behaviour report
Analytics has a sixth report, and it is the first one that is not about orders. Open it at Analytics → Reports → Traffic & Behaviour.Every report until now answered a question about a purchase. This one answers the question underneath it: of everyone who arrived, how many got anywhere, and what stopped the rest. The on-site pixel has been recording that since it shipped — scroll depth, engaged time, rage and dead clicks, form abandonment, script errors, Core Web Vitals — and until now nothing read it back.Added
  • Traffic — sessions, visitors, pageviews, pages per session, bounce rate and returning-visit share.
  • Engagement — average engaged time (which accrues only while the tab is visible and the visitor is actually doing something, so a tab left open all afternoon counts for nothing), scroll depth, how many readers reached the bottom of the page, and what share of sessions reached a checkout step.
  • Friction — rage clicks, dead clicks, the share of sessions that hit a script error, frustrated sessions, and form abandonment. This is the part of the report that tells you where orders are being lost rather than that they were.
  • Site Speed — Largest Contentful Paint, Interaction to Next Paint, Cumulative Layout Shift and Time to First Byte, each at the 75th percentile, measured on your real visitors’ devices rather than in a lab.
  • Same date filter and same previous-period comparison as every other report, so the numbers here line up with the ones next to them.
Changed
  • A metric where a rise is bad now says so, and the dashboard colours it accordingly. Refunds, Returns, Disputes, Unsubscribes, Cancellations and Churn were all painted green when they grew. They are not.
Note on the numbers. Every tile in this report is marked best-effort. On-site telemetry is deliberately dropped rather than allowed to slow a page down, so these figures are right for spotting a change and wrong for reconciling against orders — use the Sales and Profit reports for anything that has to balance.
Primary domain and redirects
A store now has one primary domain, and every other domain either redirects to it or serves the storefront on its own address. See Domains.Until now every domain attached to a store served the same storefront. A merchant with four domains had four copies of their store competing with each other in search, and no way to say which one was real.Added
  • traffic_mode on every domain — primary, redirect or serve. Redirects are 301 by default, preserve the path and query, and are answered at the edge before any request reaches the storefront.
  • GET /domains, PATCH /domains/{id}, PATCH /domains/{id}/set-primary on the Agent Gateway, so an agent can read and change a store’s routing under store:read / store:publish.
  • redirect_others on set-primary — fold every other attached domain into the new primary in one call, for a store that has drifted into several copies of itself.
  • A canonical URL on the storefront. The compiled storefront now emits <link rel="canonical"> and og:url built from the primary domain. Neither existed before: social previews and search engines were pointed at the platform subdomain even for merchants on their own domain.
  • The domains screen in Settings shows what each domain actually does — “Primary”, “Redirects to acme.com”, “Serving separately” — and flags when several domains are serving duplicate copies of the store.
Changed
  • Newly attached domains default to redirecting to the primary, matching what merchants expect. Domains attached before this release keep serving and are not touched — nothing started redirecting on its own. Change them when you want to.
  • A store’s first verified domain is promoted to primary automatically, so links and emails stop pointing at the platform subdomain the moment a domain goes live.
  • www and its apex are always treated as one address: promoting either one makes the other redirect to it.
Fixed
  • Meta CAPI event_source_url was resolved from a database table that does not exist, silently falling back to a legacy field. Purchase and subscription-renewal events sent from the server could therefore report the wrong store address, which degrades Meta’s event matching. Every URL the platform generates now comes from one resolver.
Public status page
status.platformdtc.com is live. Live operational state for the surfaces we probe, a rolling uptime record, and the full incident history — with email, Slack, Teams, webhook, RSS and Atom subscriptions. See Platform Status.Added
  • Eight components, grouped by who feels the failure: Storefronts and Checkout (buyer-facing), Merchant Dashboard and Core API (merchant), and Notifications, Background Jobs & Fulfillment, Analytics & Reporting and Documentation (platform).
  • A JSON API implementing the Atlassian Statuspage v2 contract — /api/v2/summary.json, status.json, components.json, incidents.json, incidents/unresolved.json. Unauthenticated, CORS-open, cached 30s. Any existing Statuspage widget or uptime aggregator works against it with no adapter.
  • Response times, not just up/down. Every component publishes its p50, p95 and the tail ratio between them, alongside the exact thresholds we alert on. If you think a surface is slow you can cite the same number we do.
  • GET /api/v2/uptime.json — 90-day daily uptime history. A PlatformDTC extension; Statuspage keeps this private.
  • Signed webhooks using the same X-PlatformDTC-Signature HMAC-SHA256 scheme as platform webhooks, so existing verification code works unchanged.
Notes
  • The page has no origin server. It runs entirely on Cloudflare’s edge and shares no infrastructure with the systems it reports on, and its checks run from outside our network. A status page hosted on the thing it monitors goes dark exactly when you need it, so this one is verified the hard way: by cutting off every monitored service and confirming the page still loads and correctly reports a major outage.
  • Alerting keys on the tail, not the average. An internal investigation found individual API requests reaching 9.9s while the median held at a healthy 0.31s — every average-based dashboard was green for weeks. Thresholds are per-component because healthy baselines span two orders of magnitude across these surfaces, from ~12ms on cached checkout to ~1s on the server-rendered dashboard.
  • Feeds and webhooks emit one entry per incident update, not per incident, so subscribers hear about progress and resolution rather than only the opening.
  • Email is double opt-in. An unconfirmed address is never sent anything.
  • Individual stores are not modelled. Problems affecting a small number of specific stores may not appear — this reports platform-wide state. If your store is affected while the page is green, contact support rather than assuming it is you.
Import a product from a Shopify link
Import a product from its Shopify URL. Paste a link from any public Shopify storefront and get a real product in your store — title, sanitized description, images, options, and every variant with its own price, compare-at price and SKU. In the dashboard: My Products → Import Products → From a Shopify link.Added
  • POST /products/import/shopify/preview — reads the source store and returns exactly what would be created, writing nothing. Use it to show a confirmation step.
  • POST /products/import/shopify — creates a product per URL, up to 20 per call. One bad link never aborts the batch (207 Multi-Status on a mixed result).
  • Re-import is idempotent. A link whose source product the store already holds comes back as skipped with the existing product_id instead of creating a duplicate.
  • Both endpoints take the write_products scope. Preview needs it too, since it performs outbound fetches on your behalf.
Notes
  • Images are re-hosted on your own CDN, not hotlinked from the source store, so an imported product does not lose its photos when that store edits them.
  • Descriptions are sanitized — scripts, iframes and event handlers are stripped from the source body_html before it is stored.
  • Money is copied verbatim in the source store’s currency; no conversion is applied.
  • Inventory is not imported. Public storefronts expose whether a variant is in stock but never the count, so imported variants start untracked rather than with a made-up number.
  • Imports default to draft status so nothing reaches your storefront before you have reviewed the pricing.
  • Some storefronts block automated reads entirely. Those links report that plainly rather than failing silently or importing a partial product.
Products on the agent surface
Products is now a first-class agent API — the last core commerce object to reach the agent surface. /api/v1/products accepts X-Agent-Key: sq_agt_* alongside the dashboard’s user JWT, with the same audit log and Idempotency-Key semantics as the other resource APIs.Added
  • Full product surface — list (paged, searchable, sortable), get, create, partial update, soft delete, facets, duplicate, images, variants, bulk status/tags/delete, and the dropship catalog-link bind (POST/DELETE, previously read-only).
  • Writable fulfillment routing — supplier_id and fulfillment_rules are now settable through the API, so destination-based routing finally has a population path.
  • read_products / write_products scopes, matching the read_* / write_* naming the other resource APIs use.
Fixed
  • Commerce scopes were unmintable. read_inventory, write_inventory, read_discounts, write_discounts, read_gift_cards, write_gift_cards, read_metafields, write_metafields, read_returns, write_returns, read_draft_orders and write_draft_orders were enforced by the resource APIs but rejected at key creation, so no sq_agt_* key could hold them and those APIs were reachable only with a user JWT. All twelve are now grantable. Reissue any key that needs them — existing keys are unchanged.
  • offers:read / offers:write / offers:approve were unmintable too, for the same reason — and this was not theoretical: a key provisioned in production already carried all three and could never use them, because the scopes failed validation and the offers router was not mounted. All three are now grantable. offers:approve is deliberately not a spend scope — offer optimization gates its two dangerous calls in-band, at the call rather than the key.
  • write_gift_cards and write_discounts are now spend scopes. Both mint bearer value that is redeemable at checkout, so they belong behind the human-approval gate alongside ads:write and marketing:send.
Changed
  • catalog:read / catalog:write are now aliases of read_products / write_products. Already-issued keys keep working and either name authorizes either surface; no migration is required. New keys should use the *_products names.
  • GET /whoami gained an effective_scopes field. scopes continues to report the grant exactly as issued; effective_scopes shows it expanded through the aliases, so an agent debugging a 403 can see why a catalog:read key reaches a read_products route.
  • The tool catalog is generated from the MCP toolpack instead of hand-maintained. It had drifted to listing 23 of 78 tools.
Commerce resource APIs
Six new resource APIs are live under /api/v1, all on the scoped, idempotent, audited Agent Gateway:
  • Inventory & Locations — multi-location stock; set/adjust/move across quantity states.
  • Discounts — code & automatic discounts (DiscountNode model).
  • Gift Cards & Store Credit — issue/redeem gift cards, per-customer store credit.
  • Draft Orders — invoices/B2B/phone orders; calculate → invoice → complete.
  • Metafields — typed custom data on any resource + definitions.
  • Returns — RMA lifecycle + reverse logistics.
Plus platform hardening: a generalized Idempotency-Key middleware on every mutating group, reusable scope enforcement, and a centralized webhook topic catalog (products/*, inventory_levels/update, discounts/*, gift_cards/*, draft_orders/*, metafields/update, returns/*, refunds/disputes, GDPR compliance topics, bulk_operations/finish).
Fulfillment API
Supplier / 3PL fulfillment is live — /api/v1/fulfillment. A FulfillmentOrder API so third-party logistics and dropship suppliers can pull assigned orders, accept/reject, push tracking, and sync stock.Added
  • FulfillmentOrder model — orders split per assigned location; status × request_status state machine.
  • Supplier endpoints — register a fulfillment service (auto-provisions a location), /assigned_fulfillment_orders, accept/reject + cancellation handshake, create/update/cancel fulfillments (partials + multi-tracking), /inventory_levels/set & /adjust.
  • Scope enforcement — read/write_assigned_fulfillment_orders, write_fulfillments.
  • Webhooks — fulfillment_orders/*, fulfillments/*, orders/fulfilled + the fulfillment_order_notification service callback, HMAC-signed.
  • Auto-routing — paid-order line items routed to supplier locations by supplier id and auto-submitted so 3PLs are notified to ship immediately.
Agent Gateway
The Agent Gateway is live — /api/v1/agent/v1. PlatformDTC is now agent-native.Added
  • 36 REST endpoints across store, catalog, ads, marketing, analytics, orders, jobs, and admin.
  • 23 dtc_* MCP tools via the mcp-platformdtc server for OpenClaw agents.
  • Service-account keys (sq_agt_*) with fine-grained scopes, per-key rate limits, rotation, and revocation.
  • Async job model with one poll surface (/jobs, /jobs/{id}, /jobs/{id}/wait).
  • Idempotency on all mutations.
  • Human-approval gate for spend actions.
  • Signed webhooks (HMAC-SHA256) for job.*, deploy.*, order.created, roas.threshold, approval.requested.
  • Full audit log of every call (/audit).
  • Interactive API playground + this documentation.
Roadmap
  • dtc_create_automation (multi-step workflow builder).
  • Endpoints: /analytics/daily-summary, /campaigns/{id}/analytics, /orders/import, job SSE streaming (/jobs/{id}/stream).