WooCommerce is a flexible, open-source eCommerce solution built on WordPress. Whether you’re launching a business, taking an existing brick and mortar store online, or designing sites for clients you can get started quickly and build exactly the store you want.

Activate the free WooCommerce plugin on a new or existing WordPress site, follow the optional guided tour, and set up a new store in minutes with:

Beyond the basics, WooCommerce is fully customizable and extendable:

  • Choose a design to suit your brand and industry.
  • Enhance your store with free and paid extensions: add features and integrate with local and global eCommerce web services.
  • Inspect and modify any aspect of the core plugin code.
  • Leverage hooks and filters to modify functions.
  • Build on top of the REST API and webhooks.

Open-source freedoms mean full ownership of content and data forever – plus the expertise of a friendly global community.

WooCommerce is built to allow store managers to run an eCommerce site themselves, no web developer needed. There is also a free WooCommerce mobile app (Android and iOS) for store management on the go.

WooCommerce is developed and supported by Automattic, the creators of Jetpack and WordPress.com, along with independent contributors. The official extension marketplace is on WooCommerce.com.

From subscriptions to gym classes to luxury cars

With WooCommerce, you can sell both physical and digital goods in all shapes and sizes, offer product variations, complex configurations, and instant downloads to shoppers; and even sell affiliate goods from online marketplaces.

And those are just the out-of-the-box options. With paid extensions, you can extend your WooCommerce store to take bookings, offer memberships, set up recurring payments by subscription, create dynamic pricing rules, and much more.

Start a monthly wine subscription box, offer a discount on yoga mats to members who’ve attended 10+ classes, offer configurable hampers or personalized jewelry – it’s all possible with WooCommerce.

Comprehensive payment options

WooCommerce comes bundled with the ability to accept major credit cards, alternative payment methods, BACS (bank transfers), and cash on delivery.

For additional options, WooCommerce also integrates with more than 140 region-specific gateways including popular choices like Stripe, PayPal, Square and Amazon Pay. Apple Pay and Google Pay are also supported.

Search for your payment service provider of choice on the official marketplace.

Ship locally and globally

Shipping with WooCommerce is highly configurable. Adjust the built-in settings to offer free shipping or flat rate shipping, limit your shipments to specific countries by setting up shipping zones, or open your store up to the world.

Official extensions connect you with hundreds of local and international carriers – including Royal Mail, FedEx, and Australia Post – and let you integrate with inventory management and fulfilment providers.

There are also extensions available to add delivery and shipping options and support strategies like buy-one-get-one free, free gifts, and add-ons. WooCommerce Shipping supports real-time calculations and printing labels at home.

Design your store with themes and blocks

WooCommerce store design starts with a theme of your choice. There are hundreds of free and paid themes available, including Storefront by Automattic — it’s free to all stores and you can choose to have it installed for you during the guided setup.

Storefront offers deep WooCommerce integration and prioritizes speed and uptime. You can add your brand and define your style by customizing Storefront yourself or adding one of several industry-themed Storefront child themes.

Personalize your store’s design even more with WooCommerce Blocks (available in WooCommerce 3.6 and above) — use them to add selections of or single products to any page, for a seamless blending of commerce into content.

Customize your store with extensions

The easiest way to add features and functionality to a WooCommerce store is with an extension:

There are hundreds of official extensions reviewed by WooCommerce developers available on the WooCommerce.com marketplace, and many in the WordPress.org repository and on the wider web.

Control your data forever

WooCommerce gives you complete control – from taxes to stock levels to customer accounts. Add and remove extensions, change your store’s design, and switch themes or hosts or payment service providers, all as you please.

In a world increasingly aware of the importance of data protection, WooCommerce gives you full ownership over what is tracked and stored. If you opt to share usage data with us, your data is anonymized and kept secure. At any stage, you can opt out of all forms of tracking while still enjoying all of WooCommerce’s capabilities.

With WooCommerce, your data belongs to you. One of the risks of using a hosted eCommerce platform the risk of losing your store if the provider closes. WooCommerce store data is future-proof — you’re are free to export all your content and take your site wherever you choose.

Why developers like WooCommerce

WooCommerce was originally created with developers in mind. Built with a REST API, it integrates with virtually any service. Store data can be accessed anywhere, anytime, 100% securely.

WooCommerce allows developers to easily create, modify, and scale a store that meets client’s specifications, and to make enhancements either with extensions or with customs solution.

No matter the size of the store you want to build, WooCommerce has a robust framework that supports stores from basic to enterprise – with content and commerce in a single, central location.

WooCommerce is audited by a dedicated team of developers who work across time zones to identify and patch any and all discovered bugs. There is comprehensive, easily-accessible documentation that is updated with each release. With our docs, you’ll learn how to create the site your client needs.

Join our growing community

WooCommerce is one of the fastest-growing eCommerce communities. We’re proud that the helpfulness of the community and wealth of resources available online are frequently cited as reasons our users love it.

There are 80+ WooCommerce Meetups taking place in cities across the world that you can attend for free and even get involved in running. WooCommerce also has a regular presence at WordCamps across the globe – and we’d love to meet you.

If you’re interested in contributing to WooCommerce we’ve got more than 350 contributors, and there’s always room for more. Head to the WooCommerce GitHub Repository to find out how you can pitch in.

WooCommerce is currently 100% translated into 24 languages, including Danish, Ukrainian, and Persian. If you’re interested in helping to localize WooCommerce by adding your local language, visit translate.wordpress.org.

Contributors & Developers

“WooCommerce” has been translated into 55 locales. Thank you to the translators for their contributions. Translate “WooCommerce” into your language.

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.



This plugin provides 9 blocks.

Featured Category
Product Categories List
Hand-picked Products
Products by Category
Best Selling Products
Products by Tag
Featured Product
On Sale Products
Newest Products


Minimum Requirements

  • PHP 7.2 or greater is recommended
  • MySQL 5.6 or greater is recommended

Visit the WooCommerce server requirements documentation for a detailed list of server requirements.

Automatic installation

Automatic installation is the easiest option — WordPress will handles the file transfer, and you won’t need to leave your web browser. To do an automatic install of WooCommerce, log in to your WordPress dashboard, navigate to the Plugins menu, and click “Add New.”

In the search field type “WooCommerce,” then click “Search Plugins.” Once you’ve found us, you can view details about it such as the point release, rating, and description. Most importantly of course, you can install it by! Click “Install Now,” and WordPress will take it from there.

Manual installation

Manual installation method requires downloading the WooCommerce plugin and uploading it to your web server via your favorite FTP application. The WordPress codex contains instructions on how to do this here.


Automatic updates should work smoothly, but we still recommend you back up your site.

If you encounter issues with the shop/category pages after an update, flush the permalinks by going to WordPress > Settings > Permalinks and hitting “Save.” That should return things to normal.

Sample data

WooCommerce comes with some sample data you can use to see how products look; import sample_products.xml via the WordPress importer. You can also use the core CSV importer or our CSV Import Suite extension to import sample_products.csv


Where can I find WooCommerce documentation and user guides?

For help setting up and configuring WooCommerce please refer to our user guide

For extending or theming WooCommerce, see our codex.

Where can I get support or talk to other users?

If you get stuck, you can ask for help in the WooCommerce Plugin Forum.

For help with paid extensions from WooCommerce.com, use our helpdesk.

Will WooCommerce work with my theme?

Yes! WooCommerce will work with any theme, but may require some styling. Please see our codex for help. If you’re looking for a theme with built in WooCommerce integration we recommend Storefront.

Where can I request new features, eCommerce themes, and extensions?

You can vote on and request new features and extensions on our WooIdeas board

Where can I report bugs or contribute to the project?

Report bugs on the WooCommerce GitHub repository. You can also report them in our support forum.

Where can I find the REST API documentation?

You can find the documentation of our REST API on the WooCommerce REST API Docs.

WooCommerce is awesome! Can I contribute?

Yes you can! Join in on our GitHub repository.


5. Oktober 2019
Sometimes it is hard to find where a feature is but, like WordPress itself, WooCommerce "just works".
1. Oktober 2019
Really best ecommerce plugin that made my life by selling my products on it. Thank you WooCommerce community.
1. Oktober 2019
My checkout to Paypal no longer works. 3 days talking to Paypal are now blaming WooCommerce. I can't even find a support link for WooCommerce that goes to any actual help. The amount of time wasted on this is a joke. Poor on everylevel.
Read all 3'402 reviews

Contributors & Developers

“WooCommerce” is open source software. The following people have contributed to this plugin.


“WooCommerce” has been translated into 59 locales. Thank you to the translators for their contributions.

Translate “WooCommerce” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.


3.7.1 – 2019-10-09

  • Security – Add an exit after the redirect when checking author archive capabilities for customers.
  • Security – Ensure 404 pages with single product urls cannot be exploited using Open Redirect.

3.7.0 – 2019-08-12

  • Enhancement – Added table ENGINE to system status report for debugging purposes. #23101
  • Enhancement – Format empty cart message as information notice. #23152
  • Enhancement – Add taxonomy-specific classes to active filters widget. #23122
  • Enhancement – Allow emails Thanks wording to be modified via the email settings. #22927
  • Enhancement – Move tax classes from WordPress Options to a new wc_tax_rate_classes table. #23093
  • Enhancement – Make WooCommerce shop roles translatable. #23150
  • Enhancement – Prevent the Cart, Checkout and My Account pages from being set to the same pages. #23479
  • Enhancement – New coupon code generate button on the coupon page. #24069
  • Enhancement – Add tag_operator paramater to the [products] shortcode for use with the tag paramater ie. [products tag='tag1,tag2' tag_operator='AND']. #24111
  • Tweak – When cleaning up variations due to product type change, force delete them instead of trashing. #23478
  • Tweak – Change wording on the link to change the address so reflect if an address is already present or not. #23532
  • Tweak – If variations are missing prices, show a notice in the product data panel. #23133
  • Tweak – Use determine_locale() to properly load custom translation files. #23785
  • Tweak – OBW: Switch shipping labels and shipping zones placement. #23781
  • Tweak – Show the quantity refunded on customer facing order screens. #23038
  • Tweak – CSV product import now allows true/false values for the published field, as well as the original 0 (private), -1 (draft), 1 (publish) values. #23207
  • Tweak – Update product attribute sorting tooltip to clarify usage. #23222
  • Tweak – Store tax rate percentage in the tax line items on orders. #23268
  • Tweak – Remove the left and right margin from the logo in emails. #23360
  • Tweak – Use the high res version of the WP spinner in the coupon Block UI. #23364
  • Tweak – Improve user registration validation messages. #23468
  • Tweak – Auto generate a new username when a username is blacklisted by WordPress. #23672
  • Tweak – Guest cart sessions now gets deleted when a user logs in, preventing duplicate cart sessions. #23687
  • Tweak – Include the store’s base postcode and city when calculating order taxes. #23695
  • Tweak – Update the generate username setting description label to reflect how the username is actually generated. #23911
  • Tweak – OBW: Adjust plugin highlight container sizes to avoid overlap. #23997
  • Tweak – Round tax amounts late when the round at subtotal level setting is enabled to reduce rounding errors. #24024
  • Tweak – OBW: Now includes WooCommerce Admin as a recommended plugin. #24058
  • Template – Review and update all template files escaping. #23460
  • Template – Remove mention of shipping section from the checkout/form-login.php template as shipping is not always a requirement for an order. #23941
  • Template – Add new filter woocommerce_before_thankyou to the checkout/thankyou.php template. #23538
  • Template – Add new woocommerce_widget_shopping_cart_total hook to replace hardcoded subtotal in cart/mini-cart.php template. #24145
  • Template – Add new woocommerce_widget_shopping_cart_after_buttons hook in cart/mini-cart.php template. #24145
  • Template – Add new woocommerce_before_cart_collaterals hook in cart/cart.php template. #24145
  • Template – Correct the plural forms usage in loop/result-count.php template. #24005
  • Dev – Introduce new PHP 5.6 minimum requirement. #23924
  • Dev – Introduce new WordPress 4.9 minimum requirement. #24156
  • Dev – Move the settings save functionality from the settings_page_init function to the wp_loaded action so it is not saved after the settings page renders. #23091
  • Dev – Add quantity input action hooks woocommerce_before_add_to_cart_quantity and woocommerce_after_add_to_cart_quantity. #23166
  • Dev – Add $this parameter to email class filters. #23250
  • Dev – Add new WC_Abstract_Order::get_coupons() method for returning all coupon line item objects on an order. #23663
  • Dev – Added new action woocommerce_product_read to WC_Product_Data_Store_CPT::read(). #23181
  • Dev – Add new filter woocommerce_admin_order_buyer_name to the WC_Admin_List_Table_Orders::render_order_number_column() method to change the buyer name in orders list screen. #23741
  • Dev – Add new actions to WC_Helper class for when WooCommerce.com Product Subscription statuses change woocommerce_helper_subscription_activate_success, woocommerce_helper_subscription_activate_error, woocommerce_helper_subscription_deactivate_success, and woocommerce_helper_subscription_deactivate_error. #23041
  • Dev – Extend usage and event tracking (if opted in) to system status, admin order and admin coupon pages. #23190 #23189 #23883
  • Dev – Add woocommerce_after_X_object_save actions, and passed objects to woocommerce_new_x and woocommerce_update_x actions. #23338
  • Dev – Update customer order and lifetime spend totals in wc_update_new_customer_past_orders() to trigger customer.updated webhooks for paid orders. #23402
  • Dev – Preserve the State field’s custom css classes when selecting an option from the Country dropdown. #23433
  • Dev – Add new woocommerce_product_related_posts_shuffle filter in wc_get_related_products() to enable/disable related product shuffling, defaults to true. #23562
  • Dev – Deprecate the WC_Abstract_Order::get_used_coupons() method and replace it with a new method WC_Abstract_Order::get_coupon_codes(). #23689
  • Dev – Add new woocommerce_prices_include_tax filter in the wc_prices_include_tax() function. #23697
  • Dev – Add new woocommerce_admin_after_product_gallery_item filter in the WC_Meta_Box_Product_Images::output() method for adding additional markup after product gallery items. #23743
  • Dev – Remove unused images assets/images/klarna-white.png and assets/images/square-white.png. #23748
  • Dev – Move Free Shipping method JavaScript code from outputting on all shipping setting pages to just the Free Shipping page using the admin_footer hook. #23776
  • Dev – Prevent PHP fatal error while throwing exceptions in woocommerce_rest_insert_{post_type}_object hooks. #23793
  • Dev – Add new woocommerce_enforce_password_strength_meter_on_checkout filter in the WC_Frontend_Scripts::get_script_data() method to allow enforcing the password strength meter on checkout. #23811
  • Dev – Add new woocommerce_search_products_post_statuses filter in the WC_Product_Data_Store_CPT::search_products() method for controlling what post statuses to include in product searches. #23838
  • Dev – Allow filtering woocommerce_order_formatted_shipping_address even when no shipping address is defined. #23859
  • Dev – Change the query in the WC_Product_Data_Store::find_matching_product_variation() method to always respect the ordering of variations. #23881
  • Dev – Move all feature plugin features out from the WooCommerce codebase and utilize composer and an autoloader for including it in WooCommerce core, affects WC REST API and WC Blocks. #23957
  • Dev – Allow displaying multiple error messages through the registration validation. #23968
  • Dev – Add new woocommerce_cart_item_removed_notice_type, woocommerce_cart_updated_notice_type and woocommerce_add_to_cart_notice_type filters for changing the default notice types for cart notices. #24021
  • Dev – Add namespaced support for Jetpack 7.5 tracking library. #24140
  • Dev – Add support for an improved WooCommerce.com Marketplace browse and purchase experience (in progress). #24075 #24123
  • Dev – Added $order and $product as parameters to the woocommerce_ajax_order_item filter in WC_Ajax::add_order_item(). #24108
  • Dev – Add new woocommerce_product_import_image_separator filter in WC_Product_CSV_Importer::parse_images_field() for adjusting the product images seperator. #24120
  • Dev – Add new woocommerce_widget_shopping_cart_subtotal() template function that hooks into the woocommerce_widget_shopping_cart_total action to output the mini cart subtotal. #24145
  • Dev – Deprecate the woocommerce_before_cart_item_quantity_zero action from WC_Cart::restore_cart_item() in favor of existing woocommerce_cart_item_removed action. #23112
  • Dev – Deprecate WC_Tax::maybe_remove_tax_class_rates which hooked into the WP Options update hook for taxes in favor of new function WC_Tax::delete_tax_class_by which works on the new tax classes table. #24213
  • Fix – Use version_compare for determining the maximum WooCommerce database version number. #23092
  • Fix – Missing space and closing <strong> tag in WooCommerce.com disconnect message. #24073
  • Fix – CSV Importer – Skip rows during update if a SKU column exists, but the value is empty. #23262
  • Fix – Allow matching Any attributes when calling WC_Product_Data_Store::find_matching_product_variation(). #23067
  • Fix – Switch coupon amount validation based on decimal seperator setting. #23137
  • Fix – Show the correct results for shortcodes on static homepages when sorting. #23159
  • Fix – Queue AJAX add to cart events to avoid overwriting session data. #23293
  • Fix – Wrong subtotals when changing tax classes via the woocommerce_product_get_tax_class filter. #23344
  • Fix – Fatal error on plain text order emails where products were deleted. #23754
  • Fix – Do not pass the no_shipping argument to PayPal when the order contains shippable items. #23773
  • Fix – Product review form does respects the require_name_email WordPress core option. #23786
  • Fix – Do not cache expired sessions, negative expiry causes errors in some caching modules. #23863
  • Fix – WC_Log_Handler_DB logs now uses the same timestamp format as text logs, Y-m-d H:i:s. #23863
  • Fix – Display line breaks for customer notes in emails, and order details. #23969
  • Fix – Correct plural forms usage in WC_Admin_Report class. #24020
  • Fix – System status database info section throwing a PHP notice on some DB environments. #24023
  • Fix – On the system status database info section display a message informing users that WooCommerce was unable to get database information instead of an error, when a database sharding plugin is active. #24034
  • Fix – Usage and event tracking (if opted in) was not working correctly in the OBW. #24056
  • Fix – Fatal error on downloads report when some download files were missing. #24118
  • Fix – Prevents the taxes columns from being removed when the order is no longer editable in admin. #23884
  • Fix – State field overwritten with blank value when saving orders via wp-admin. #24301
  • Performance – Improve the speed of the admin dashboard by only updating transients once per class. #23011
  • Performance – Reduce number of queries needed to populate variations data by priming post caches. #23272
  • Performance – Persistant cart improvements, only update the persistent cart if the cart items actually change. #23112
  • Performance – Exclude action_log comment types from wp_count_comments. #24071
  • Localization – Added validation for Italian postcodes. #23269
  • Localization – Remove unused tax locale defaults since we now promote auto tax services instead. #23431
  • Localization – Define correct address format for Uganda. #23178
  • Localization – Hide the postcode and update the state label to „Province“ for Mozambique. #23764
  • Localization – OBW: Make postal code optional based on locale data. #23915
  • Localization – Add new currency for São Tomé, Príncipe dobra and Mauritanian ouguiya. #23950
  • Localization – Change Canada poscode label to Postal code. #23740

See changelog for all versions.