WooCommerce B2B Warehouses

Current version: 1.1.4



# Introduction
Get started with WooCommerce B2B Warehouses, the best seller WordPress plugin for your inventory management needs.

WooCommerce B2B Warehouses is a WordPress/WooCommerce extension that solves all the different challenges of a shop with multiple warehouses.

In a single suite, all the features that an e-commerce can require to gain the ability to easily organize and track inventory levels, ensuring accurate stock availability for your customers.

You can find an always updated version of this documentation here.

# Requirements
Before starting, check that you have the minimum characteristics to ensure the correct functioning of WooCommerce B2B Warehouses.

  • WordPress: version 5.0 or above
  • WooCommerce: version 4.0 or above
  • PHP: version 5.6 or above
# Installation
There are multiple ways to install WooCommerce B2B Warehouses, here is a quick step-by-step guide to do this.

Classic WordPress mode
  1. Login to your WordPress Dashboard
  2. Go to "Plugins > Add New" page
  3. Click "Upload Plugin" button at the top
  4. Select "woocommerce-b2b-warehouses.zip" file and click "Install now" button
  5. Once installed, click "Activate" link
Manual mode
  1. Unzip "woocommerce-b2b-warehouses.zip" file
  2. Login in your FTP area
  3. Upload the entire "woocommerce-b2b-warehouses" folder to the "/wp-content/plugins/" directory
  4. Login in your WordPress site
  5. Go to "Plugins > Installed Plugins" page
  6. Click "Activate" link at WooCommerce B2B Warehouses

Update

You can update WooCommerce B2B Warehouses in several ways:

  • Classic WordPress mode: follow all steps described in previous paragraph relative to "Installation". After upload, please follow screen instuctions.
  • Manual mode: follow all steps described in previous paragraph relative to "Installation" and replace previous WooCommerce B2B Warehouses plugin folder.
  • Envato Market mode: please look for third part plugin "Envato Market", download, install and configure it as described in its own page.

More informations in our FAQ "How do I update the plugin?".

Note: Don't uninstall the previous version! By uninstalling you will lose all plugin related settings.
Note: Before to update, please read carefully changelog and this documentation, to verify the changes of new release.
Note: Before to update to latest version, please be sure to have a complete backup (filesystem and database) to avoid any problems or errors.

Update database process

By updating the plugin to a new release, you will be prompted to perform a database update.
This update is necessary for the correct functioning of the new release, so it is strongly recommended to do it.

All processes to be performed for the update are performed in the background and can be viewed in the WordPress section dedicated to scheduled actions:

Tools -> Scheduled Actions

and associated with the hook wcb2bw_run_update_callback.


Note: Actions are added to the WordPress scheduler and run on a scheduled basis, depending on your cron settings, if any, so they may take some time to fully run. It is possible to force execution by clicking on the "Run" link next to each action.
# Quick start
Get started by using WooCommerce B2B Warehouses by configuring your context.

  1. Configure general plugin options

    Define your store's behavior and rules by configuring WooCommerce B2B Warehouses to your specific needs:

    WooCommerce -> Settings -> {Warehouses tab}
    You can find more information on each individual option below in this documentation, in Plugin options section.
  2. BREAKPOINT
  3. Create warehouses you need

    Create one or more warehouses, depending on your project, useful for managing your inventories.

    WooCommerce -> Warehouses -> Add new
    By default, WooCommerce B2B generates a special warehouse called DEFAULT, useful for identifying base warehouse. Do not delete this warehouse.
  4. Configure products

    For each product, you can apply warehouse-specific stock. You can do this in several ways:


    • By individually settings each single product in product edit page

      Products -> All Products -> {Edit product}

    • By massively updating products using Import/Export tools

      Products -> All Products -> {Import/Export button}

    To know more about WooCommerce Import/Export tools, please read Official documentation.
# Troubles and malfunctions
In case of malfunctions it is advisable to check the real cause of the problem.

How to debug in right way

Often any malfunctions or problems appear to be caused by a plugin, but in reality the source of the problem is another interfering plugin.

It is very important to understand the source of a malfunction in order to direct support requests to the right team, avoiding delays and frustration.

WordPress debug mode

First of all, please be sure to enable WordPress debug mode, to have a log with detailed errors, as described in WordPress official documentation

Take a look to debug.log file in wp-content folder to discover the file that caused the issue.

WordPress best practice

When you have several plugins and you don't know the precise cause of a problem, WordPress best practices suggest an effective method to limit the cause of a possible problem, which consists in disabling all plugins and testing by progressively re-enabling them. Here is a schematic step by step list, to test whether a possible malfunction comes from WooCommerce B2B Warehouses:

  1. Disable all plugins, except WooCommerce and WooCommerce B2B Warehouses
  2. Make a test
    • If the problem persists, the cause is WooCommerce B2B Warehouses
      Only in this case, contact WooCommerce B2B Warehouses support
    • If the problem is solved, enable one of the previously disabled plugins and repeat from point (2), until you find plugin that causing it
      In this case, contact that plugin support

But in some cases, your site may be live (although it is always recommended to have a testing or staging copy) and this approach is difficult.

WooCommerce B2B Warehouses debug mode

Our team has implemented a solution for this! It is possible to enable a special debug mode, which disables all plugins except WooCommerce and WooCommerce B2B Warehouses, but only for the IP address of the user who enables it.

In this way, all other users and customers will continue to use the site in its entirety without problems or inconveniences.

This allows you to work calmly and find out if the problem you are experiencing is caused by WooCommerce B2B Warehouses.

Enable debug mode
  1. Login to your WordPress Dashboard
  2. Go to "WooCommerce > Settings > Warehouses > Tools" tab
  3. Read instructions carefully
  4. Click "Enable" button
  5. Perform your tests to check if the problem persists
WooCommerce > Settings > Warehouses > Tools tab
# Plugin options
WooCommerce B2B Warehouses introduces a large number of features, here a complete list with description to guide you in the configuration.

Settings page Settings
WooCommerce > Settings > Warehouses > Settings tab

Default warehouse
Description

Decide on the default warehouse, which cannot be deleted and which is considered your starting main warehouse.

Disable picking split
Description

If the quantity required by the order exceeds the quantity available in the warehouses, WooCommerce B2B Warehouses by default reduces the stock progressively from the subsequent warehouses in order of priority.

You can disable this behavior to allow stock reduction only until a warehouse with sufficient stock is found.

Settings page Tools
WooCommerce > Settings > Warehouses > Tools tab

Debug mode
Description

Debug mode is a very useful feature that disables all plugins except WooCommerce and WooCommerce B2B Warehouses only for your IP address. It allows you to test and verify any malfunctions without any interference, to understand if they are caused by WooCommerce B2B Warehouses and save you debugging time.

Note: this feature is experimental, enable it at your own risk!
Customization

You can customize default always enabled plugins by using dedicated hooks:

Screenshots

  • Tools tab

Warehouses options
WooCommerce > Warehouses > {Warehouse}

Address fields
Description

Set the fields relating to the warehouse address, to have a precise location reference.

Customization

You can customize redirect by using dedicated hooks:

Screenshots

  • Warehouse page

Product options
Products > All Products > {Product}

Set stock on single product/variation by warehouse
Description

This option allows you to manage the stock for each individual product or variation by specific warehouse and drag/drop warehouses to set their priority for current product.

Note: by default, global stock field will be disabled and it will be the sum of all product warehouses stocks.
Screenshots

  • Admin product page

Import/Export tools
Products > All Products

Product Import/Export tools
Description

Bulk update warehouses product informations. WooCommerce B2B Warehouses extends default WooCommerce Import/Export tools to allow to fast manage its custom data.

Here a list of product fields managed by WooCommerce B2B Warehouses you can bulk manage in Import/Export tools:

  • Warehouses stock quantity
  • Warehouses priority
Note: to know more about WooCommerce Import/Export tools, please read Official documentation.
Screenshots

  • Admin products page
  • Import page

WordPress Export tools
Tools > Export

Warehouses export
Description

Allow to export warehouses list in CSV file to statistics purposes.

Screenshots

  • Admin export tools page
# How to translate
Translate WooCommerce B2B Warehouses is very simple.

WooCommerce B2B Warehouses is already provided in two language: English and Italian.

All plugin strings have been localized using the GNU gettex framework to make it completely "translation ready", so it can be easly translated in the same way that other WordPress plugins.

Find out if WooCommerce B2B Warehouses is available in your desired language, thanks to the collaboration of our fantastic users: Language packs.

You can translate WooCommerce B2B Warehouses using special translation plugins, such as WPML for example. To know more about WPML configuration, take a look to: WooCommerce B2B Warehouses compatibility with wpml.

This is a simple guide to translate WooCommerce B2B Warehouses in the language of your choice without plugins.


Get a useful software: POEDIT

WordPress, with all its themes and plugins, based translations on GNU gettex framework, that use three types of files:

  • PO (Portable Object) files
  • MO (Machine Object) files
  • POT (Portable Object Template) files

The first step is to get a translation tool able to manage this kind of files; there are many ones available, but I suggest without doubt Poedit.

Poedit is a free open source software, easy to use and available for MacOSX, Windows, Linux and you can download it from here: https://poedit.net/download.


Translating with POEDIT

Create a new translation with Poedit is very simple, here a step-by-step guide to help you to make it.

  1. Install Poedit
  2. Open Poedit and go to:
    File -> New from POT/PO file
  3. In the popup box that appears, navigate into WooCommerce B2B Warehouses folder and select the file:
    woocommerce-b2b/i18n/woocommerce-b2b.pot
  4. When the file is loaded, another box will pop up asking for the language you want to translate:
    Choose your language
  5. String by string, enter your translation in the Translate box at bottom.

When finished, validate your translation and save the file, named as: woocommerce-b2b-warehouses-it_IT. The name pattern is composed by:

  • woocommerce-b2b-warehouses: the plugin domain name, usually the plugin folder name (as described in WordPress i18n standards)
  • it: the GNU language code
  • IT: the GNU country code

Use your translation

After saving, Poedit will create two files:

  • woocommerce-b2b-warehouses-it_IT.po
  • woocommerce-b2b-warehouses-it_IT.mo

Your translations are ready! To use them, you just have to move them into the folder:

  • wp-content/languages/plugins/

Now, go to your website and WooCommerce B2B Warehouses is finally translated in your language!


More informations

For more informations about language and country codes, please refer to:

For more informations about GNU gettex utilities and WordPress i18n, please refer to:

Note: if you want to contribute to WooCommerce B2B Warehouses internationalization, please send your PO file to: support@woocommerce-b2b.com.
# Plugin Hooks
WooCommerce B2B Warehouses provide large number of hooks to allow developers to extends or customize default behaviour.

If you are a developer, WooCommerce B2B Warehouses give you many possible customizations by using the hooks. To know more about WordPress hooks working, please read Plugin API/Hooks WordPress Codex.

As WordPress best practice, we suggesto to make use of a WordPress Child Theme to avoid losing customizations in case of theme update. To know more about WordPress Child Theme, take a look to Child Themes WordPress Codex.

CLICK HERE to quick look hooks list

Here the full list of WooCommerce B2B Warehouses hooks:

Address format
Description

WooCommerce B2B Warehouses has a function that format full address with a defined pattern. With this hook you can customize address format.

Definition
apply_filters( 'wcb2bw_warehouse_address_format', string $format );
Defaults
$format = '{street} - {zip} {city} {state} {country}';
Example

To change WooCommerce B2B Warehouses address format, you can add this code to your functions.php file:

add_filter( 'wcb2bw_warehouse_address_format', 'fn_wcb2bw_warehouse_address_format' );
function fn_wcb2bw_warehouse_address_format( $format ) {
    $format = '{country} - {zip} {city} {state}, {street}';
    return $format;
}
Inventory export default columns
Description

In each warehouse edit page, you can quick export inventory for current warehouse. If you want to customize default exported columns, you can use this hook.

Definition
apply_filters( 'wcb2bw_export_columns', array $columns );
Defaults
$columns = array(
    'id',
    'sku',
    sprintf( 'wcb2bw_product_warehouses_stock_%d', $_GET['warehouse'] )
);
Example

To add product type, you can add this code to your functions.php file:

add_filter( 'wcb2bw_export_columns', 'fn_wcb2bw_export_columns' );
function fn_wcb2bw_export_columns( $columns ) {
    $columns[] = 'type';
    return $columns;
}
Settings extra fields
Description

Change, add or delete extra fields or WooCommerce B2B Warehouses settings in admin.

Definition
apply_filters( 'wcb2bw_general_settings', array $settings );
Example

To add your custom setting, you can add this code to your functions.php file:

add_filter( 'wcb2bw_general_settings', 'fn_wcb2bw_general_settings' );
function fn_wcb2bw_general_settings( $settings ) {
    $settings += array(
        'section_title-wcb2bw_custom_section' => array(
            'name'     => __( 'Custom option section title', 'woocommerce-b2b-warehouses' ),
            'type'     => 'title',
            'desc'     => __( 'Custom option section description', 'woocommerce-b2b-warehouses' )
        ),
        'option-wcb2bw_custom' => array(
            'name' => __( 'Custom option', 'woocommerce-b2b-warehouses' ),
            'type' => 'text',
            'desc' => __( 'Custom option description', 'woocommerce-b2b-warehouses' ),
            'id'   => 'custom'
        ),
        'section_end-wcb2bw_custom_section' => array(
             'type' => 'sectionend'
        )
    );
    return $settings;
}
Debug mode always enabled plugins
Description

List of always enabled plugins, also in debug mode.

Definition
apply_filters( 'wcb2bw_debug_muplugins', array $plugins );
Defaults
$plugins = array(
    'woocommerce/woocommerce.php',
    'woocommerce-b2b-warehouses/woocommerce-b2b-warehouses.php'
);
Example

To add a new plugin to consider always enabled, you can add this code to your functions.php file:

add_filter( 'wcb2bw_debug_muplugins', 'fn_wcb2bw_debug_muplugins' );
function fn_wcb2bw_debug_muplugins( $plugins ) {
    $plugins[] = 'your-plugin-folder/your-plugin-file.php';
    return $plugins;
}
WooCommerce B2B Warehouses generator tag
Description

Output generator tag in website head to aid debugging.

Definition
apply_filters( 'wcb2bw_show_generator_tag', boolean $show );
Defaults
$show = true;
Example

To remove generator tag, you can add this code to your functions.php file:

add_filter( 'wcb2bw_show_generator_tag', 'fn_wcb2bw_show_generator_tag' );
function fn_wcb2bw_show_generator_tag( $show ) {
    return false;
}

Or, alternatively:

add_filter( 'wcb2bw_show_generator_tag', '__return_false' );
WooCommerce B2B Warehouses before init
Description

Triggered when WordPress initialises.

Definition
do_action( 'wcb2bw_before_init' );
Example

To add a new callback, you can add this code to your functions.php file:

add_action( 'wcb2bw_before_init', 'fn_wcb2bw_before_init' );
function fn_wcb2bw_before_init() {
    // Make action magic happen here...
}
WooCommerce B2B Warehouses init
Description

Triggered after plugin has initialized.

Definition
do_action( 'wcb2bw_init' );
Example

To add a new callback, you can add this code to your functions.php file:

add_action( 'wcb2bw_init', 'fn_wcb2bw_init' );
function fn_wcb2bw_init() {
    // Make action magic happen here...
}
WooCommerce B2B Warehouses loaded
Description

Triggered when plugin has loaded.

Definition
do_action( 'wcb2bw_loaded' );
Example

To add a new callback, you can add this code to your functions.php file:

add_action( 'wcb2bw_loaded', 'fn_wcb2bw_loaded' );
function fn_wcb2bw_loaded() {
    // Make action magic happen here...
}
# REST API support
Manage WooCommerce B2B Warehouses data with extended REST API.

WooCommerce B2B Warehouses is perfect integrated and extends default WooCommerce REST API to manage its own custom fields.

For more informations, please visit: WordPress Official documentation

Note: alias fields are provided only in GET response, to manage WooCommerce B2B Warehouses additional data in PUT or POST methods please refer to default meta data management as described in WooCommerce official documentation


Warehouses API
Description

This API lets you retrieve and view all warehouses or a specific warehouse by ID.

WooCommerce B2B Warehouses available meta fields:

  • wcb2bw_warehouse_street_name: contains warehouse street name
    Value is a string
    In API GET response, has also a dedicated field alias named "wcb2bw_warehouse_street_name"
  • wcb2bw_warehouse_street_number: contains warehouse street number
    Value is a string
    In API GET response, has also a dedicated field alias named "wcb2bw_warehouse_street_number"
  • wcb2bw_warehouse_country: contains warehouse country
    Value is a string
    In API GET response, has also a dedicated field alias named "wcb2bw_warehouse_country"
  • wcb2bw_warehouse_city: contains warehouse city
    Value is a string
    In API GET response, has also a dedicated field alias named "wcb2bw_warehouse_city"
  • wcb2bw_warehouse_state: contains warehouse state
    Value is a string
    In API GET response, has also a dedicated field alias named "wcb2bw_warehouse_state"
  • wcb2bw_warehouse_zip: contains warehouse zip code
    Value is a string
    In API GET response, has also a dedicated field alias named "wcb2bw_warehouse_zip"
  • wcb2bw_warehouse_person: contains warehouse person reference name
    Value is a string
    In API GET response, has also a dedicated field alias named "wcb2bw_warehouse_person"
  • wcb2bw_warehouse_email: contains warehouse email address
    Value is a string
    In API GET response, has also a dedicated field alias named "wcb2bw_warehouse_email"
  • wcb2bw_warehouse_phone: contains warehouse phone number
    Value is a string
    In API GET response, has also a dedicated field alias named "wcb2bw_warehouse_phone"

Note: WooCommerce B2B Warehouses extends default WordPress posts REST API with own custom meta fields. For more informations, please visit: WordPress Official documentation


HTTP request (all warehouses)
get
/wp-json/wc/v3/warehouses

Available parameters
int|string$authorAuthor ID, or comma-separated list of IDs
string$author_nameUser 'user_nicename'
array$author__inAn array of author IDs to query from
array$author__not_inAn array of author IDs not to query from
array$date_queryAn associative array of WP_Date_Query arguments. See WP_Date_Query::__construct()
bool$exactWhether to search by exact keyword. Default false
array$meta_queryAn associative array of WP_Meta_Query arguments. See WP_Meta_Query
int$menu_orderThe menu order of the posts
string$namePost slug
bool$nopagingShow all posts (true) or paginate (false). Default false
bool$no_found_rowsWhether to skip counting the total rows found. Enabling can improve performance. Default false
int$offsetThe number of posts to offset before retrieval
string$orderDesignates ascending or descending order of posts. Default 'DESC'. Accepts 'ASC', 'DESC'
string|array$orderbySort retrieved posts by parameter
int$pageShow the number of posts that would show up on page X of a static front page
int$pagedThe number of the current page
string$pagenamePage slug
string$permShow posts if user has the appropriate capability
array$post__inAn array of post IDs to retrieve, sticky posts will be included
array$post__not_inAn array of post IDs not to retrieve. Note: a string of comma-separated IDs will NOT work
string|array$post_statusA post status (string) or array of post statuses
int$posts_per_pageThe number of posts to query for. Use -1 to request all posts
array$post_name__inAn array of post slugs that results must match
string$sSearch keyword(s). Prepending a term with a hyphen will exclude posts matching that term
string$titlePost title

Note: This parameters are WordPress WP_Query defaults. For more informations, please visit: WordPress Official documentation


HTTP request (single warehouse)
get
/wp-json/wc/v3/warehouses/{ID}

Example response
{
    "ID": 1157,
    "post_author": "1",
    "post_date": "2023-06-02 20:48:31",
    "post_date_gmt": "2023-06-02 18:48:31",
    "post_content": "",
    "post_title": "WH-1",
    "post_excerpt": "",
    "post_status": "publish",
    "comment_status": "closed",
    "ping_status": "closed",
    "post_password": "",
    "post_name": "wh-1",
    "to_ping": "",
    "pinged": "",
    "post_modified": "2023-06-04 20:11:20",
    "post_modified_gmt": "2023-06-04 18:11:20",
    "post_content_filtered": "",
    "post_parent": 0,
    "guid": "https://demo.woocommerce-b2b.com/warehouses/?post_type=wcb2bw_warehouse&p=1157",
    "menu_order": 0,
    "post_type": "wcb2bw_warehouse",
    "post_mime_type": "",
    "comment_count": "0",
    "filter": "raw",
    "wcb2bw_warehouse_street_name": "Lincoln Ave",
    "wcb2bw_warehouse_street_number": "163",
    "wcb2bw_warehouse_coutry": "USA",
    "wcb2bw_warehouse_city": "Roosevelt",
    "wcb2bw_warehouse_state": "New York",
    "wcb2bw_warehouse_zip": "11575",
    "wcb2bw_warehouse_person": "John Doe",
    "wcb2bw_warehouse_email": "john.doe@example.com",
    "wcb2bw_warehouse_phone": "+1-202-555-0129"
}
HTTP request (create warehouse)
post
/wp-json/wc/v3/warehouses/

Example data
{"name": "Warehouse-1", "wcb2bw_warehouse_street_name": "Lincoln Ave", "wcb2bw_warehouse_street_number", "13"}
                                    

HTTP request (update warehouse)
put
/wp-json/wc/v3/warehouses/{ID}

Example data
{"wcb2bw_warehouse_street_number": "4"}
                                    

HTTP request (delete warehouse)
delete
/wp-json/wc/v3/warehouses/{ID}
Product API
Description

This API lets you retrieve and view all products or a specific product by ID.

WooCommerce B2B Warehouses available meta fields:

  • _wcb2bw_product_warehouses: contains dedicated stocks by warehouse.
    Value is a multidimensional array with WAREHOUSE ID as key and associative subarray:
    • stock: dedicated warehouse stock. It's an integer number
    • priority: warehouse sorting priority to reduce quantity in case of order. It's an integer number

    In API GET response, has also a dedicated field alias named "wcb2bw_warehouse_stocks"

Note: WooCommerce B2B Warehouses extends default WooCommerce products REST API with own custom meta fields. For more informations, please visit: WooCommerce Official documentation


HTTP request (all products)
get
/wp-json/wc/v3/products

HTTP request (single product)
get
/wp-json/wc/v3/products/{ID}

Example response
{
    "id": 60,
    "name": "T-Shirt with Logo",
    "slug": "t-shirt-with-logo",
    "permalink": "https://demo.woocommerce-b2b.com/product/t-shirt-with-logo/",
    "date_created": "2020-06-13 00:00:00",
    "date_created_gmt": "2020-06-13 00:00:00",
    "date_modified": "2020-06-13 00:00:00",
    "date_modified_gmt": "2020-06-13 00:00:00",
    "type": "simple",
    "status": "publish",
    "featured": false,
    "catalog_visibility": "visible",
    "description": "<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p>\n",
    "short_description": "<p>This is a simple product.</p>\n",
    "sku": "Woo-tshirt-logo",
    "price": "98",
    "regular_price": "100",
    "sale_price": "98",
    "date_on_sale_from": null,
    "date_on_sale_from_gmt": null,
    "date_on_sale_to": null,
    "date_on_sale_to_gmt": null,
    "price_html": "<del><span class=\"woocommerce-Price-amount amount\"><span class=\"woocommerce-Price-currencySymbol\">$</span>100.00</span></del> <ins><span class=\"woocommerce-Price-amount amount\"><span class=\"woocommerce-Price-currencySymbol\">$</span>98.00</span></ins>",
    "on_sale": true,
    "purchasable": true,
    "total_sales": 0,
    "virtual": false,
    "downloadable": false,
    "downloads": [],
    "download_limit": 0,
    "download_expiry": 0,
    "external_url": "",
    "button_text": "",
    "tax_status": "taxable",
    "tax_class": "",
    "manage_stock": false,
    "stock_quantity": null,
    "stock_status": "instock",
    "backorders": "no",
    "backorders_allowed": false,
    "backordered": false,
    "sold_individually": false,
    "weight": "",
    "dimensions": {
        "length": "10",
        "width": "12",
        "height": "0.5"
    },
    "shipping_required": true,
    "shipping_taxable": true,
    "shipping_class": "",
    "shipping_class_id": 0,
    "reviews_allowed": true,
    "average_rating": "0.00",
    "rating_count": 0,
    "related_ids": [
        50,
        40,
        43,
        51
    ],
    "upsell_ids": [],
    "cross_sell_ids": [],
    "parent_id": 0,
    "purchase_note": "",
    "categories": [
        {
            "id": 20,
            "name": "Tshirts",
            "slug": "tshirts-clothing"
        }
    ],
    "tags": [],
    "images": [
        {
            "id": 83,
            "date_created": "2020-06-13 00:00:00",
            "date_created_gmt": "2020-06-13 00:00:00",
            "date_modified": "2020-06-13 00:00:00",
            "date_modified_gmt": "2020-06-13 00:00:00",
            "src": "https://demo.woocommerce-b2b.com/wp-content/uploads/2020/06/t-shirt-with-logo-1.jpg",
            "name": "t-shirt-with-logo-1.jpg",
            "alt": ""
        }
    ],
    "attributes": [
        {
            "id": 1,
            "name": "Color",
            "position": 0,
            "visible": true,
            "variation": false,
            "options": [
            "Gray"
            ]
        }
    ],
    "default_attributes": [],
    "variations": [],
    "grouped_products": [],
    "menu_order": 0,
    "meta_data": [
        {
            "id": 967,
            "key": "_wpcom_is_markdown",
            "value": "1"
        },
        {
            "id": 263305,
            "key": "_wcb2bw_product_warehouses",
            "value": {
                "1157": {
                    "priority": 0,
                    "stock": 10
                },
                "1159": {
                    "priority": 2,
                    "stock": 20
                },
                    "1161": {
                    "priority": 1,
                    "stock": 5
                }
            }
        }
    ],
    "wcb2bw_warehouse_stocks": [
        {
            "1157": {
                "priority": 0,
                "stock": 10
            },
            "1159": {
                "priority": 2,
                "stock": 20
            },
            "1161": {
                "priority": 1,
                "stock": 5
            }
        }
    ],
    "_links": {
        "self": [
            {
                "href": "https://demo.woocommerce-b2b.com/wp-json/wc/v3/products/60"
            }
        ],
        "collection": [
            {
                "href": "https://demo.woocommerce-b2b.com/wp-json/wc/v3/products"
            }
        ]
    }
}

For more informations about REST API, please take a look to WooCommerce Official documentation.

# Pluggable functions
WooCommerce B2B Warehouses provide large number of pluggable functions to allow developers to extends or customize default behavior.

If you are a developer, WooCommerce B2B Warehouses give you many possible customizations by using the pluggable functions. To know more about WordPress pluggable functions working, please read Pluggable Functions WordPress Codex.

As WordPress best practice, we suggesto to make use of a WordPress Child Theme to avoid losing customizations in case of theme update. To know more about WordPress Child Theme, take alook to Child Themes WordPress Codex.

All WooCommerce B2B Warehouses pluggable functions are contained into the file:

  • wp-content/plugins/woocommerce-b2b-warehouses/includes/wcb2bw-functions.php
# Compatibility
Take a look to most common compatibility adjusts about WooCommerce B2B Warehouses with other plugins or themes.

WooCommerce B2B Warehouses make use of standard WooCommerce hooks and best practice to warranty a great compatibility with themes or third part plugins.

However, in some cases, there may be minor incompatibilities that need minor adjustments.

As WordPress best practice, we suggesto to make use of a WordPress Child Theme to avoid losing customizations in case of theme update. To know more about WordPress Child Theme, take alook to Child Themes WordPress Codex.

Here are the known ones.


WPML plugin
Description

To know more about WPML configuration, take a look to: WooCommerce B2B Warehouses compatibility with wpml.

This is a simple guide to configure WooCommerce B2B Warehouses and WPML to work in the best way.

# Frequently Asked Questions
Take a look to users most common questions and learn more about WooCommerce B2B Warehouses.

Take advantage of other users experience, by reading our FAQs

# Changelog
What's new in latest WooCommerce B2B Warehouses version?

Here all the versions of WooCommerce B2B Warehouses: Changelog

# Support
Need help with WooCommerce B2B and you cannot find the solution in documentation?

Thanks for purchasing WooCommerce B2B Warehouses plugin for WordPress/WooCommerce, proudly developed by @code4life, visit the author website.

If you have any kind of question or doubt, please visit new WooCommerce B2B Support Center, we'll do our best to assist you.

WooCommerce B2B support team