{"id":354788,"date":"2026-08-27T13:20:17","date_gmt":"2026-08-27T13:20:17","guid":{"rendered":"https:\/\/en-gb.wordpress.org\/plugins\/dude-products\/"},"modified":"2026-08-27T13:20:10","modified_gmt":"2026-08-27T13:20:10","slug":"dude-commerce","status":"publish","type":"plugin","link":"https:\/\/fy.wordpress.org\/plugins\/dude-commerce\/","author":23541766,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.13","stable_tag":"1.0.13","tested":"7.1","requires":"6.5","requires_php":"8.1","requires_plugins":null,"header_name":"Dude Commerce","header_author":"wpdude","header_description":"Sell physical products from WordPress using Stripe Checkout.","assets_banners_color":"","last_updated":"2026-08-27 13:20:10","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wpdude.com\/dude-commerce\/","header_author_uri":"https:\/\/wpdude.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":74,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.13":{"tag":"1.0.13","author":"wpdudeplugins","date":"2026-08-27 13:20:10","revision":3668909}},"upgrade_notice":{"1.0.13":"<p>Checkout return pages and order status require the Stripe return token. A UUID alone is not enough.<\/p>","1.0.12":"<p>Checkout return URLs stay on this site. Order status is no longer readable from a UUID alone.<\/p>","1.0.10":"<p>Author URI updated for WordPress.org header validation (distinct from Plugin URI).<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.13"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Products overview in the admin.","2":"Edit a standard or options product (price, stock, shipping, combinations).","3":"Stripe settings (Test \/ Live keys, webhooks, Stripe Tax).","4":"Front-end product embed with Buy Now.","5":"Orders list and fulfilment.","6":"Picking workflow, packing slip, and shipping label."}},"plugin_section":[],"plugin_tags":[282,277882,3546,12448,5349],"plugin_category":[45],"plugin_contributors":[78154,274320],"plugin_business_model":[],"class_list":["post-354788","plugin","type-plugin","status-publish","hentry","plugin_tags-ecommerce","plugin_tags-physical-products","plugin_tags-shipping","plugin_tags-stock","plugin_tags-stripe","plugin_category-ecommerce","plugin_contributors-freemius","plugin_contributors-wpdudeplugins","plugin_committers-wpdudeplugins"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/dude-commerce.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Dude Commerce is a lightweight WordPress plugin that lets you sell physical products using Stripe Checkout.<\/p>\n\n<p>Create a product (standard or with options), set price and stock, publish it, and embed it anywhere using a Gutenberg block or shortcode. After payment, customers receive a passwordless magic link to view their order. You fulfil from Orders and Picking \u2014 packing slips and shipping labels included.<\/p>\n\n<p>Dude Commerce follows the WPDude philosophy:<\/p>\n\n<p>One plugin. One job.<\/p>\n\n<p>No shopping cart. No customer accounts. No unnecessary eCommerce complexity \u2014 just everything you need to sell shippable products.<\/p>\n\n<p>Watch the complete getting started guide<\/p>\n\n<p>Learn how to create products, connect Stripe, publish your products and start selling in minutes.<\/p>\n\n<p>https:\/\/youtu.be\/sEI0Gw-yTnM<\/p>\n\n<p>Documentation<\/p>\n\n<p>https:\/\/wpdude.com\/wp-dude-plugin-documentation\/dude-commerce-documentation\/<\/p>\n\n<p>Perfect for:<\/p>\n\n<ul>\n<li>Makers<\/li>\n<li>Artists<\/li>\n<li>Photographers selling prints<\/li>\n<li>Small shops<\/li>\n<li>Apparel and merch sellers<\/li>\n<li>Craft and handmade businesses<\/li>\n<li>Content creators selling physical goods<\/li>\n<li>Anyone who wants simple product checkout without WooCommerce<\/li>\n<\/ul>\n\n<h4>Free Features<\/h4>\n\n<ul>\n<li>Unlimited standard products<\/li>\n<li>Unlimited options products (up to five options with generated combinations)<\/li>\n<li>Stock management and SKUs<\/li>\n<li>Product categories<\/li>\n<li>Featured image, gallery, and combination images<\/li>\n<li>Sale prices and front-end \u201cOn sale\u201d badge<\/li>\n<li>Flat shipping amount per product<\/li>\n<li>Stripe Checkout (Test and Live)<\/li>\n<li>Stripe webhooks<\/li>\n<li>Stripe Tax (optional)<\/li>\n<li>Sell-to country selection for shipping addresses<\/li>\n<li>Orders list and detail<\/li>\n<li>Picking workflow<\/li>\n<li>Packing slips and shipping labels<\/li>\n<li>Customer emails (default templates)<\/li>\n<li>Magic links to view orders<\/li>\n<li>Gutenberg blocks (Product, Images, Price, Buy)<\/li>\n<li>Shortcode support<\/li>\n<\/ul>\n\n<h4>Pro Features<\/h4>\n\n<p>The Pro version adds business integrations including:<\/p>\n\n<ul>\n<li>Outgoing webhooks (n8n \/ Make \/ custom URL)<\/li>\n<li>CSV export<\/li>\n<li>Sales reports (Dude Commerce \u2192 Reports: revenue by day\/product\/customer, customer history, CSV export)<\/li>\n<li>Admin REST API for reading plugin data<\/li>\n<li>Admin sale notifications<\/li>\n<li>Custom customer email templates (with placeholders)<\/li>\n<\/ul>\n\n<h4>Stripe<\/h4>\n\n<p>Paid checkouts are securely processed by Stripe Checkout.<\/p>\n\n<p>Stripe also collects tax (when Stripe Tax is enabled) and shipping addresses. No payment card data is ever stored on your WordPress website.<\/p>\n\n<ul>\n<li>Stripe Terms: https:\/\/stripe.com\/legal<\/li>\n<li>Stripe Privacy: https:\/\/stripe.com\/privacy<\/li>\n<\/ul>\n\n<h4>Freemius<\/h4>\n\n<p>Optional licensing and update delivery for the Pro package is provided by Freemius. The free WordPress.org build works without a Freemius licence. Freemius may phone home for licence validation and updates when you use Pro.<\/p>\n\n<ul>\n<li>Freemius Terms: https:\/\/freemius.com\/terms\/<\/li>\n<li>Freemius Privacy: https:\/\/freemius.com\/privacy\/<\/li>\n<\/ul>\n\n<h4>Local payment confirm (test only)<\/h4>\n\n<p>When Stripe Test mode and Local payment confirm are enabled, the checkout return page can confirm a payment by talking to Stripe directly. This is for local development when webhooks cannot reach your site. It is not intended for production Live mode.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate Dude Commerce.<\/li>\n<li>Open Dude Commerce \u2192 Settings.<\/li>\n<li>Enter your Stripe API keys, choose currency and sell-to countries, and configure the webhook endpoint.<\/li>\n<li>Create a product under Dude Commerce \u2192 Products and publish it.<\/li>\n<li>Add a Gutenberg block or shortcode (for example <code>[dude_commerce id=\"123\"]<\/code>) to any page.<\/li>\n<li>Place a test order with Stripe Test mode, then start selling.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20woocommerce%3F\"><h3>Do I need WooCommerce?<\/h3><\/dt>\n<dd><p>No. Dude Commerce is a standalone plugin built specifically for selling physical products.<\/p><\/dd>\n<dt id=\"can%20i%20use%20dude%20commerce%20alongside%20woocommerce%3F\"><h3>Can I use Dude Commerce alongside WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. Dude Commerce works independently and can run alongside WooCommerce.<\/p><\/dd>\n<dt id=\"what%20payment%20gateway%20is%20supported%3F\"><h3>What payment gateway is supported?<\/h3><\/dt>\n<dd><p>Stripe Checkout.<\/p><\/dd>\n<dt id=\"can%20i%20use%20stripe%20test%20mode%3F\"><h3>Can I use Stripe Test Mode?<\/h3><\/dt>\n<dd><p>Yes. Test and Live modes are both supported.<\/p><\/dd>\n<dt id=\"is%20there%20a%20shopping%20cart%3F\"><h3>Is there a shopping cart?<\/h3><\/dt>\n<dd><p>No. Each purchase is a single-product Stripe Checkout \u2014 one product (and its options) at a time.<\/p><\/dd>\n<dt id=\"do%20customers%20need%20a%20wordpress%20account%3F\"><h3>Do customers need a WordPress account?<\/h3><\/dt>\n<dd><p>No. Customers view orders using secure passwordless magic links.<\/p><\/dd>\n<dt id=\"does%20it%20support%20options%20products%20%28size%2C%20colour%2C%20etc.%29%3F\"><h3>Does it support options products (size, colour, etc.)?<\/h3><\/dt>\n<dd><p>Yes. Define up to five options; combinations are generated automatically with per-combination price, sale price, stock, SKU, and optional image.<\/p><\/dd>\n<dt id=\"can%20i%20sell%20free%20%28zero-price%29%20products%3F\"><h3>Can I sell free (zero-price) products?<\/h3><\/dt>\n<dd><p>No. Dude Commerce is for paid physical products. Prices must be greater than zero.<\/p><\/dd>\n<dt id=\"how%20does%20shipping%20work%3F\"><h3>How does shipping work?<\/h3><\/dt>\n<dd><p>You set a flat shipping amount on each product. Stripe Checkout collects the customer\u2019s shipping address. The plugin does not calculate carrier rates or shipping zones.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20calculate%20vat%20or%20sales%20tax%3F\"><h3>Does the plugin calculate VAT or sales tax?<\/h3><\/dt>\n<dd><p>No. Optionally enable Stripe Tax so Stripe calculates and collects tax from the buyer\u2019s location. Register your jurisdictions in the Stripe Tax dashboard.<\/p><\/dd>\n<dt id=\"where%20is%20card%20data%20stored%3F\"><h3>Where is card data stored?<\/h3><\/dt>\n<dd><p>On Stripe\u2019s servers only \u2014 never in WordPress.<\/p><\/dd>\n<dt id=\"how%20is%20this%20different%20from%20dude%20downloads%20or%20dude%20paywall%3F\"><h3>How is this different from Dude Downloads or Dude Paywall?<\/h3><\/dt>\n<dd><p>Dude Downloads sells digital files. Dude Paywall sells access to posts and pages. Dude Commerce sells physical goods with stock and fulfilment. Each plugin uses its own Stripe webhook URL.<\/p><\/dd>\n<dt id=\"is%20there%20a%20pro%20version%3F\"><h3>Is there a Pro version?<\/h3><\/dt>\n<dd><p>Yes. Dude Commerce Pro adds business integrations (webhooks, reports, CSV, custom emails, and more) while keeping core checkout and fulfilment available in the free plugin.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.13<\/h4>\n\n<ul>\n<li>Checkout return and order-status REST require a secret return token from the Stripe redirect, not a UUID or a nonce minted on a UUID-only URL.<\/li>\n<\/ul>\n\n<h4>1.0.12<\/h4>\n\n<ul>\n<li>Order status REST requires an order-bound nonce (UUID alone is not enough).<\/li>\n<li>Checkout return URLs must match this site\u2019s literal host (no www rewrite).<\/li>\n<li>Freemius accessor renamed to wpdude_dc_fs().<\/li>\n<\/ul>\n\n<h4>1.0.11<\/h4>\n\n<ul>\n<li>Rename: Dude Commerce \/ dude-commerce (trademark).<\/li>\n<li>Guideline 5: Pro sales reports and admin sale emails live only in the premium package.<\/li>\n<li>Checkout return URLs must match this site\u2019s host, scheme, and port.<\/li>\n<li>Plugin URI: https:\/\/wpdude.com\/dude-commerce\/<\/li>\n<\/ul>\n\n<h4>1.0.10<\/h4>\n\n<ul>\n<li>Headers: Author URI set to https:\/\/wpdude.com (must differ from Plugin URI for WordPress.org).<\/li>\n<\/ul>\n\n<h4>1.0.9<\/h4>\n\n<ul>\n<li>Pro emails: expanded placeholders (product URL, description, options, quantity, shipping address) with clearer settings help.<\/li>\n<li>WordPress 7.1: Tested up to 7.1.<\/li>\n<li>Admin: More WP Dude Plugins catalogue aligned with Downloads \/ Paywall (screen-hook styles).<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Admin: More WP Dude Plugins catalogue (Downloads parity).<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>WordPress.org readiness: order-bound local confirm nonce; packing slip \/ shipping label assets enqueued via files (no inline script\/style).<\/li>\n<li>readme: Freemius external-service disclosure; document local payment confirm (test only).<\/li>\n<li>Plugin URI aligned to marketing page pattern (Paywall).<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Tools: verify nonce when prefilling the webhook test event dropdown (Plugin Check).<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Frontend \"On sale\" badge next to the price (follows selected option combination).<\/li>\n<li>Options editor: bulk defaults for price, sale, stock, and SKU generation.<\/li>\n<li>Tools: pick which outgoing webhook event to send when testing.<\/li>\n<li>Pro: sales reports (Paywall-style revenue summary).<\/li>\n<li>Hardened Stripe Radar risk and processing fee capture on orders.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First stable release.<\/li>\n<li>Standard and options products with Stripe Checkout, tax, and shipping address collection.<\/li>\n<li>Orders, picking workflow, packing slips, shipping labels.<\/li>\n<li>Customer emails, magic-link order view, Radar risk and Stripe fee on order detail.<\/li>\n<li>Pro: outgoing webhooks, CSV export, REST API, admin notifications, custom emails.<\/li>\n<\/ul>\n\n<h4>0.4.0<\/h4>\n\n<ul>\n<li>Gutenberg blocks and shortcodes: Product, Images, Price, Buy Now.<\/li>\n<\/ul>\n\n<h4>0.3.0<\/h4>\n\n<ul>\n<li>Orders admin list, detail view, and status actions (Shipped \/ Returned \/ Refunded).<\/li>\n<\/ul>\n\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>Stripe Checkout sessions for standard and options products.<\/li>\n<li>Webhooks, local payment confirm (test mode), orders data layer, and stock decrement on payment.<\/li>\n<li>Buy Now shortcode <code>[dude_commerce_buy id=\"\"]<\/code> for testing checkout.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial development release \u2014 core product model.<\/li>\n<\/ul>","raw_excerpt":"Sell physical products directly from WordPress using Stripe Checkout \u2014 no WooCommerce required.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/fy.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/354788","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fy.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/fy.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/fy.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=354788"}],"author":[{"embeddable":true,"href":"https:\/\/fy.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/wpdudeplugins"}],"wp:attachment":[{"href":"https:\/\/fy.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=354788"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/fy.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=354788"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/fy.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=354788"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/fy.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=354788"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/fy.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=354788"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/fy.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=354788"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}