WordPress Create Post from front-end

I like mrwweb’s suggestion, but if you are trying to do it yourself / for free, you will have to do a few things:

1) Make a new template PHP file with the forms you will need to create a new product, create a new page and assign it the template you created

2) Create your custom post type or decide to use post meta instead for your extra fields

3) In your template, use PHP to process the form and do something like this to insert it as a post in the WordPress database:

$new_post = array(
    'post_title' => $post_title,
    'post_content' => $post_content,
    'post_status' => $post_type,
    'post_author' => $author_id,
    'post_category' => $category,
);
$new_post_id = wp_insert_post($new_post);
add_post_meta($new_post_id, "product_type", "tshirt");

It’s a lot more work than just that code above of course, just a starting point if you were going to write the solution yourself.