Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add initial product documentation for end users #2723

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# Product properties

Product properties belong to the `Spree::ProductProperty` model. They track
individual attributes for a product that would not apply to all of your
products. Typically, product properties would be used for additional product
information.
individual attributes for a product, especially if the attributes only apply to
one specific product. Typically, product properties are used for technical
specifications or additional product information.

As an example, you might see a list of product properties for a limited edition
For example, you might see a list of product properties for a limited edition
t-shirt as a table on its product page:

| Property name | Property value |
Expand Down
21 changes: 21 additions & 0 deletions guides/source/users/products/option-types.html.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Option types

Each option type that you define for a product allows you to create multiple
variants of that type.

Once you have defined an option type, you can define option values that should
be used with it. Option types and option values also have a *presentation*
value, in case your store administrators and customers should see different
values.

See the table below for examples of typical option types, values, and how they
should be presented to customers:

| Option type | Presentation | Option values | Option value presentation |
|--------------|--------------|------------------------------|----------------------------------|
| `color` | Color | `red`, `green`, `blue` | Red, Green, Blue |
| `shirt-size` | Size | `s`, `m`, `l` | Small, Medium, Large |
| `shoe-size` | Size | `8`, `9`, `10`, `11`, `12` | 8, 9, 10, 11, 12 |
| `material` | Material | `paper`, `cotton`, `leather` | Paper, Cotton, Leather |
| `quantity` | Quantity | `100g`, `250g`, `1kg` | 100 grams, 250 grams, 1 kilogram |

69 changes: 69 additions & 0 deletions guides/source/users/products/overview.html.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
# Overview

You can create and manage products from the Solidus backend. From your `/admin`
homepage, navigate to the **Products** page from the store navigation to start
managing products.

## What is a product?

A product represents an item that you have for sale. A product stores general
information about the item. If you sell two items, a mug and a t-shirt, then
you need to create two products: "Mug" and "T-Shirt".

### Products define customer-facing information about items for sale

When you add or edit a product, you are providing information about the product.
Most of this information is viewable on your storefront, which means that
customers can see it.

See the [Product management](#product-management) section below for more
information about the what each product stores.

### Products can have multiple variants

You can sell multiple version of a product. For example, if you want to sell
your T-Shirt product in two colors, you do not need to create two separate
products. Instead, you can create two variants of the T-shirt product.

You need to set up product [option types][option-types] (like size or color)
before you can create variants.

[option-types]: option-types.md

## Search and filter products

From the main **Products** page, you can search for and filter down a list of
products that you want to edit or remove. You can also use the **New Product**
button to start creating a new product.

<!-- TODO: Add image of search UI and "New Product" button -->

## Product management

When you add or edit a product, you can provide a lot of information

Products track the general information about a product from a number of
sub-pages:

- **[Product details][product-details]**: This page allows you to manage how
both store administrators and customers see the product's essential
information.
- **Images**: This page manages the product images that are displayed on the
storefront.
- **Variants**: This page manages the variants of the product that customers can
purchase.
- **Prices**: This page manages the product's prices if you sell it in multiple
countries.
- **Product Properties**: This page manages the product's [product
properties][product-properties], which can be used to list a product's
specifications at a glance.
- **Product Stock**: This page manages the product's available stock and
inventory details.

<!-- TODO:
Provide links and descriptions above for each available view related to
adding/editing products.
-->

[product-details]: product-details.html
[product-properties]: product-properties.html
89 changes: 89 additions & 0 deletions guides/source/users/products/product-details.html.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
# Product details

When you add or edit a product, you can provide essential information by filling
in each product details field.

<!-- TODO: Add screenshot of the "Product details" page -->

## Basic information

- **Name**: The customer-facing name for the product.
- **Slug**: The slug[^slug] for the product. By default, Solidus creates a slug
based on the product's name. For example, a product called "Summer T-Shirt"
would have the slug `summer-t-shirt`.
- **Description**: A customer-facing description for the product. The
description can be any length.
- **Master Price**: This price represents the price you want to sell this
product for. (However, [products with multiple variants](#) can be
sold for other price values.)
- **Cost Price**: What the product costs you, the seller, to purchase or
produce. You may change the currency associated with the cost price.
- **Available On**: The date that this product is available to be sold. If this
date is not set, then the product is not shown to customers on the storefront.
- **Taxons**: This adds the product your store's taxons.
- **Option Types**: Add option types to your product if you want to offer
[multiple variants of the product](#). You need to define [option
types](#option-types) before you can use this field.

<!-- TODO:
Fill in (#) links to variants-related documentation.
-->

### Available On

Note that the **Available On** field should be filled if you want the product to
be displayed on the storefront.

If the **Available On** value is a date in the future, then the product is only
available after the date that has been set.

[^slug]: A slug is a part of a URL that identifies a page using human-readable
words. Most blogs and stores use slugs for SEO purposes. For example, in the
web address `https://example.com/store/summer-t-shirt`, the slug would be the
`summer-t-shirt` part.

## Inventory information

The following product information is used by Solidus's inventory and shipping
systems:

- **SKU**: A [stock keeping unit][sku] code that your store uses to identify
products.
- **Weight**: The product's weight.
- **Height**: The product's height.
- **Width**: The product's width.
- **Depth**: The product's depth.
- **Shipping Categories**: This sets the product's shipping category.
- **Tax Category**: This sets the products' tax category.

Solidus's product dimensions do not specify a unit of measurement. We recommend
that you use them consistently so that they can be used to calculate shipping
consistently across your store. Product dimensions round to two decimal points
(for example: `1.00`).


Note that the weight and dimensions of a product can be used to calculate an
order's shipment costs.

[sku]: https://en.wikipedia.org/wiki/Stock_keeping_unit

## SEO information

- **Meta Title**:
- **Meta Keywords**: Add a list of keywords that should be added to this
product's metadata. These meta keywords are used by search
engines.[^meta-keywords]
- **Meta Description**: The summary text that accompanies your page in search
engine results.[^meta-descriptions]

[^meta-keywords]: Meta keywords are used for SEO purposes. For more information
about meta keywords see the article [Meta Keywords: What They Are and How They
Work][meta-keywords] from WordStream.
[^meta-descriptions]: Meta descriptions are short descriptions that accompany a
link to your page in search engine results pages (SERPs). While each search
engine works differently, Google truncates meta descriptions after 300
characters. For more information, see the [Meta Description][meta-description]
article on Moz.com.

[meta-keywords]: https://www.wordstream.com/meta-keyword
[meta-description]: https://moz.com/learn/seo/meta-description
25 changes: 25 additions & 0 deletions guides/source/users/products/product-properties.html.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Product properties

Product properties track individual attributes for a product, especially if the
attributes only apply to one specific product. Typically, product properties
would be used for technical specifications or additional production information.

For example, you can list of product properties for a limited edition t-shirt as
a table on its product page:

| Property name | Property value |
|---------------|------------------|
| Fit | Tapered |
| Manufacturer | American Apparel |
| Material | 100% cotton |

## Product properties are not option types

A product property should not be confused with an [option type][option-types],
which is used to define variants for a product.

Use product properties to describe a product: "The t-shirt is 100% cotton." Use
option types to show how variants are distinct from each other: "The t-shirt can
be purchased in one of two colors: red or green."

[option-types]: option-types.html