Product
Information
A product
is any "primary" type of good produced by a brand
. Each product
is always assigned a unique Weedmaps Standard Identification Number, or WMSIN. Two main types of products exist: Master and Custom.
Master Product
Weedmaps provides the opportunity for organizations that own a brand
to provide curated product
content. Weedmaps may also curate content for a product
that is common in the industry. A curated product
is called a "Master" product
and is designated by the attribute is_master: true
.
A Master product
is discoverable by any integration and can help reduce the burden of data upload when used as a reference. Referencing a Master product
may also help improve search results. For more information on linking your information to a Master product
, see Catalog Item.
Below are Master product
examples:
- Concentrates Products listed on this page
- Flower Products listed on this page
- Edibles Products listed on this page
Custom Product
Although a Master product
provides a great way to get curated content through referencing instead of data upload, not every product
will already exist on Weedmaps. When a dispensary or other retail seller needs to add product
content that doesn't already exist, a Custom (non-master) product
can be created and is designated by the attribute is_master: false
. Resources referencing a Custom product
must be created on behalf of the same organization for which the Custom product
was created.
Below are Custom product
examples:
- Sally’s Wicked House of Wax > Sour Diesel Shatter
- Green MJ Wellness Products > Sativa Topical Lotion
- My Dispenary's Prerolls > Sativa Blend
API Requests
Master Product
The request types and routes available for this resource as well as details on how to structure your requests are below. See API Reference - Product for examples on how the requests might look in various languages and to test the requests in the browser.
A previous version of this information referenced "Verified"
products
. Backward compatibility is maintained as a Masterproduct
is a superset of what is still considered a Verifiedproduct
.
Switching API usage from "Verified" to "Master" is strongly recommended but not required.
When fetching a Master
product
via the API, we do not return the full description or images. However, these will be displayed on Weedmaps when posted to a Listing's Menu.
Master GET Index
To fetch all Master Products, send a request to
/catalog/v1/products?scope_by[organization_id]=ORGANIZATION_ID&filter[is_master]=true
. By default, we only return the first 10 results from the request. You can adjust the number of returned results with page[size]
, or adjust the returned page with page[page]
.
Path
scope_by[organization_id] string
Required. Organization UUID.
page[size] int32
Optional. Number of elements per page.
page[page] int32
Optional. Number of the page.
filter[is_master] string
Required. Filters by is_master
value. Set to true
to return only Master Products.
filter[discontinued] string
Optional. Filters by whether a Product is discontinued or not. Set to true
or false
.
filter[name] string
Optional. Filters by Product name.
filter[name][search] string
Optional. Allows for searching by Product name.
filter[wmsin] string
Optional. Filters by wmsin
.
filter[brand_id] string
Optional. Filters by brand_id
.
filter[organization_id] string
Optional. Filters by organization_id
.
Master GET Show
To fetch a Master Product, send a request to
/catalog/v1/products/PRODUCT_ID?scope_by[organization_id]=ORGANIZATION_ID
.
Path
scope_by[organization_id] string
Required. Organization UUID.
product_id string
Required. Master Product UUID you want to fetch.
Custom Product
The request types and routes available for this resource as well as details on how to structure your requests are below. See API Reference - Product for examples on how the requests might look in various languages and to test the requests in the browser.
Request | Route | Description |
---|---|---|
POST | /catalog/v1/products | Create a new Custom product (see Note 2 below) |
GET | /catalog/v1/products | Request the information for all Custom products |
GET | /catalog/v1/products/:id | Request the information for a particular Custom product |
PATCH | /catalog/v1/products/:id | Update the information for an existing Custom product |
DELETE | /catalog/v1/products/:id | Discontinue an existing Custom product (see Note 3 below) |
After creating a Custom
product
, associate the appropriate Category Tags to it; otherwise, the Customproduct
will not display on the UI. See Making Products Discoverable for more information.
The DELETE endpoint is deprecated and will not be supported after Aug. 10, 2020.
Products can no longer be deleted as it can cause problems for historical data. Instead, when sending a DELETE request, the Product will have its
discontinued_at
field set to the current timestamp. You can "un-delete" a Product by sending a PATCH request and settingdiscontinued_at
tonil
.After August 10, 2020, you will need to send a PATCH request to set a
discontinued_at
timestamp to designate a Custom Product resource as no longer active.
Custom POST
To create a Product, send a payload with the below structure to
/catalog/v1/products?scope_by[organization_id]=ORGANIZATION_ID&filter[is_master]=false
. By default, we only return the first 10 results from the request. You can increase this number with page[size]
.
{
"data": {
"type": "products",
"attributes": {
"description": "The hottest of weed.",
"name": "420 Fire"
},
"relationships": {
"brand": {
"data": {
"type": "brands",
"id": "BRAND_ID"
}
},
"organization": {
"data": {
"type": "organizations",
"id": "ORGANIZATION_ID"
}
}
}
}
}
Path
scope_by[organization_id] string
Required. Organization UUID.
Attributes
id string
Optional. UUID for the resource.
name string
Required. The human-readable name of the Product.
is_master boolean
Required. Defaults to false. Designates whether it is a Master or Custom Product. Not updateable directly.
description string
Optional. The marketing description of the Product.
last_sellable_at string
Optional. When the Product is last sellable (ISO-8601).
type string
Required. Must be products
.
Relationships
Organization
organization_id string
Required. Related Organization UUID.
type string
Required. Must be organizations
.
Brand
brand_id string
Required. Related Brand UUID.
type string
Required. Must be brands
.
Custom GET Index
To fetch all Custom Products, send a request to
/catalog/v1/products?scope_by[organization_id]=ORGANIZATION_ID
.
Path
scope_by[organization_id] string
Required. Organization UUID.
page[size] int32
Optional. Number of elements per page.
page[page] int32
Optional. Number of the page.
filter[is_master] string
Required. Filters by is_master
value. Set to false
to return only Custom Products.
filter[discontinued] string
Optional. Filters by whether a Product is discontinued or not. Set to true
or false
.
filter[name] string
Optional. Filters by Product name.
filter[name][search] string
Optional. Allows for searching by Product name.
filter[wmsin] string
Optional. Filters by wmsin
.
filter[brand_id] string
Optional. Filters by brand_id
.
filter[organization_id] string
Optional. Filters by organization_id
.
Custom GET Show
To fetch a Custom Product, send a request to
/catalog/v1/products/PRODUCT_ID?scope_by[organization_id]=ORGANIZATION_ID
.
Path
scope_by[organization_id] string
Required. Organization UUID.
product_id string
Required. Custom Product UUID you want to fetch.
Custom PATCH
To update a Custom Product, send a payload with the below structure to
/catalog/v1/products/PRODUCT_ID?scope_by[organization_id]=ORGANIZATION_ID
.
{
"data": {
"type": "products",
"attributes": {
"description": "Pretty good weed."
},
"relationships": {
"brand": {
"data": {
"type": "brands",
"id": "BRAND_ID"
}
},
"organization": {
"data": {
"type": "organizations",
"id": "ORGANIZATION_ID"
}
}
}
}
}
Path
scope_by[organization_id] string
Required. Organization UUID.
product_id string
Required. Product UUID you want to update.
Attributes
name string
Optional. The human-readable name of the Product.
description string
Optional. The marketing description of the Product.
discontinued_at string
Optional. When the Product will be discontinued. Timestamp must be set to now or in the future (ISO-8601).
last_sellable_at string
Optional. When the Product is last sellable (ISO-8601).
type string
Required. Must be products
.
Relationships
Organization
organization_id string
Required. Related Organization UUID.
type string
Required. Must be organizations
.
Brand
brand_id string
Required. Related Brand UUID.
type string
Required. Must be brands
.
Custom DELETE
To delete a Product, send a request to
/catalog/v1/products/PRODUCT_ID?scope_by[organization_id]=ORGANIZATION_ID
.
Path
scope_by[organization_id] string
Required. Organization UUID.
product_id string
Required. Product UUID you want to delete.
Updated 11 months ago