Description
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:
- Product, Cart, and Checkout pages
- Secure payments by credit card and alternatives
- Configurable shipping options, including flat rates and label printing
- Integrate content and commerce across your site via modular blocks
- Automated tax calculations
- Google Analytics, MailChimp, and Facebook integration
- Central store dashboard with key metrics, and more.
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:
- Sell anything – Subscriptions, Memberships, Bookings, Product Bundles, and more.
- Make your store, your way – Product Add-Ons, Checkout Field Editor, Additional Variation Images, and more.
- Customize your shipping options – Table Rate Shipping, Shipment Tracking, live rates from top carriers, and more.
- Find your audience, market to them your way – Google Product Feed, LiveChat, Amazon/eBay marketplace integration, and more.
- Drive sales – Dynamic Pricing, Smart Coupons, Google Ads, and more.
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.
INTERESTED IN DEVELOPMENT?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Screenshots
Blocks
This plugin provides 9 blocks.
- woocommerce/handpicked-products
- Hand-picked Products
- woocommerce/product-categories
- Product Categories List
- woocommerce/product-category
- Products by Category
- woocommerce/featured-product
- Featured Product
- woocommerce/product-tag
- Products by Tag
- woocommerce/product-new
- Newest Products
- woocommerce/product-on-sale
- On Sale Products
- woocommerce/featured-category
- Featured Category
- woocommerce/product-best-sellers
- Best Selling Products
Installation
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.
Updating
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
FAQ
- 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.
Reviews
Contributors & Developers
“WooCommerce” is open source software. The following people have contributed to this plugin.
Contributors“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.
Changelog
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 thetag
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 thewp_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
andwoocommerce_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
toWC_Product_Data_Store_CPT::read()
. #23181 - Dev – Add new filter
woocommerce_admin_order_buyer_name
to theWC_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 changewoocommerce_helper_subscription_activate_success
,woocommerce_helper_subscription_activate_error
,woocommerce_helper_subscription_deactivate_success
, andwoocommerce_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 towoocommerce_new_x
andwoocommerce_update_x
actions. #23338 - Dev – Update customer order and lifetime spend totals in
wc_update_new_customer_past_orders()
to triggercustomer.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 inwc_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 methodWC_Abstract_Order::get_coupon_codes()
. #23689 - Dev – Add new
woocommerce_prices_include_tax
filter in thewc_prices_include_tax()
function. #23697 - Dev – Add new
woocommerce_admin_after_product_gallery_item
filter in theWC_Meta_Box_Product_Images::output()
method for adding additional markup after product gallery items. #23743 - Dev – Remove unused images
assets/images/klarna-white.png
andassets/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 theWC_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 theWC_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
andwoocommerce_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 thewoocommerce_ajax_order_item
filter inWC_Ajax::add_order_item()
. #24108 - Dev – Add new
woocommerce_product_import_image_separator
filter inWC_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 thewoocommerce_widget_shopping_cart_total
action to output the mini cart subtotal. #24145 - Dev – Deprecate the
woocommerce_before_cart_item_quantity_zero
action fromWC_Cart::restore_cart_item()
in favor of existingwoocommerce_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 callingWC_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 fromwp_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