medusa-plugin-blog
Provides a basic blog backend for Medusa.
If you are not familiar with Medusa, you can learn more on the project web site.
Medusa is a set of commerce modules and tools that allow you to build rich, reliable, and performant commerce applications without reinventing core commerce logic. The modules can be customized and used to build advanced ecommerce stores, marketplaces, or any product that needs foundational commerce primitives. All modules are open-source and freely available on npm.
This plugin is under development and should be considered experimental.
Breaking changes are very likely to occur.
Features
- Posts can be tagged with products, collections, and/or custom tag values.
- Posts can be queried by tag, category, product, or collection.
Installation
1yarn add medusa-plugin-blog
Configuration
1234const plugins = [`medusa-plugin-blog`,...]
API Endpoints
Copy to clipboardGET /store/blog/posts
return jsons object containing an array of all blog post objects
Copy to clipboardGET /store/blog/posts/:handle
return json object containing a single blog post object
Copy to clipboardGET /store/blog/categories
return json object containing an array of all blog category objects
Copy to clipboardGET /store/blog/categories/:handle
return json object containing a single blog category object
Copy to clipboardGET /store/blog/categories/:handle/posts
return json object containing an array of all blog post objects for a given category
Copy to clipboardGET /store/blog/tags
return json object containing an array of all blog tag objects
Copy to clipboardGET /store/blog/tags/posts
return json object containing an array of all blog post objects for a given tag or array of tags
Example: Copy to clipboard
/store/blog/tags/posts?tag=tag1&tag=tag2&tag=tag3
etcCopy to clipboardGET /store/blog/products/:id
return json object containing an array of all blog post objects for a product with given id
Copy to clipboardGET /store/blog/collections/:id
return json object containing an array of all blog post objects for a collection with given id
Copy to clipboardPOST /admin/blog/categories
create a new blog category object
Expects body with:
1234567{handle: string!,title: string!,description: string,keywords: string[],metadata: jsonb}
Copy to clipboardPOST /admin/blog/categories/:id
update an existing blog category object with given id
Expects body with:
1234567{handle: string!,title: string!,description: string,keywords: string[],metadata: jsonb}
Copy to clipboardDELETE /admin/blog/categories/:id
delete an existing blog category object with given id
Copy to clipboardPOST /admin/blog/posts
create a new blog post object
Expects body with:
1234567891011121314{handle: string!,title: string!,author: string,published: boolean,content: string,description: string,keywords: string[],category_id: string,tag_ids: string[],product_ids: string[],collection_ids: string[],metadata: jsonb}
Copy to clipboardPOST /admin/blog/posts/:id
update an existing blog post object with given id
Expects body with:
1234567891011121314{handle: string!,title: string!,author: string,published: boolean,content: string,description: string,keywords: string[],category_id: string,tag_ids: string[],product_ids: string[],collection_ids: string[],metadata: jsonb}
Copy to clipboardDELETE /admin/blog/posts/:id
delete an existing blog post object with given id
Copy to clipboardPOST /admin/blog/tags
create a new blog tag object
Expects body with:
123{value: string!}
Copy to clipboardPOST /admin/blog/tags/:id
update an existing blog tag object with given id
Expects body with:
123{value: string!}
Copy to clipboardDELETE /admin/blog/tags/:id
delete an existing blog tag object with given id
Objects
BlogPost
123456789101112131415161718{id: string!,handle: string!,title: string!,author: string,published: string!,content: string,description: string,keywords: string[],category_id: string,category: Category,tags: BlogTag[],products: Product[],collections: Collection[],metadata: jsonb,created_at: DateTime!,updated_at: DateTime!}
BlogTag
1234{id: string!,value: string!}
BlogCategory
123456789{id: string!,handle: string!,title: string!,description: string,keywords: string[],metadata: jsonb,posts: BlogPost[]}
Product
Default Medusa Product object
Collection
Default Medusa Collection object