Akinon Release Notes (05/12/2025) are now live! Click here to learn what's new.
LogoLogo
API Reference
  • Home
  • Quick Start
  • Tutorials
  • Technical Guides
  • Release Notes
  • Glossary
  • Welcome to Akinon Technical Guides
  • ACC
    • ACC CLI
    • Create Application via CLI
    • Deploy Environment Variables
    • App Store for Developers
  • Omnitron
    • Product Types
    • Product Categorization
    • Splitting a Merged Order Item
  • Commerce
    • Shipping Rules Calculator
    • Data Source Shipping Options
    • Attribute Based Shipping Options
    • Filtering Products
    • Conversation & Messages
    • Sitemap Configuration
    • Weight-Based Product Sales
    • Group Attribute Sets
    • Contract Management
    • Find in Store for Whippy Ware
    • Plugins
    • Remote Price
    • E-mail Templates
    • Loyalty Accounts
    • Search Structure
    • User Segmentation & Rules
    • Promotions
  • OMS
    • Getting Started with OMS
    • Basic Setup
    • Scenarios
    • Capacity Feature
    • Package Management
      • Packages
      • Transfer
      • States
    • Commands
      • Packages
        • Package Command Parameters
        • DeAllocate Package Reservations Command
        • Channel Based Complete Packaging without Shipment Command
        • Complete Packaging with Shipment Command
        • Complete Packaging without Shipment Command
        • Package Refuse with Denial Reason Command
        • Product Not Found & Wrong Product Command
        • Product Not Found & Wrong Product Command Advanced
        • Package Packed for Refund Command
        • Block The Package For Action Command
        • Unblock the Package For Action Command
        • Update The Package’s Invoice
        • Manual Planning Command
      • Transfer
        • Transfer Order Advanced Command
        • Product for Transfer Not Found & Wrong Product Command
        • Transfer Delivered Command
        • Transfer Dispatch Command
        • Transfer Ready for Dispatch Command
        • Transfer Out Of Stock
      • Shipment
        • Shipment Order Command
        • Package Advanced Shipment Command
        • Ship The Package Command
        • Ship The Package without Shipment Integration Command
        • Update The Package’s Shipment Status Command
        • Update Shipment Info of Package Command
    • Inventory Locations & Engine
      • Properties & Domain Relation
      • Customization
      • Inventory Engine
    • Fulfillment
      • Shipments
      • Invoice Integration
    • Webhooks
      • Webhook Examples
        • Order Webhook
        • Package Webhook
        • Shipment Webhook
        • Stock Location Webhook
        • Transfer Webhook
    • Integrating OMS with Seller Center
  • Instore
    • Getting Started
    • Cash Register Integration
    • OTP (One Time Password) Process
    • Services
      • Password Reset Services
  • Marketplace Dashboard
    • N11 Marketplace Setup Configurations
    • Trendyol Marketplace Setup Configurations
    • Walmart Marketplace Setup Configurations
    • Amazon Marketplace Setup Configurations
    • Hepsiburada Marketplace Setup Configurations
  • Project Zero
    • Django
      • Basic Setup
      • Project Structure
        • Templates & Components
        • Private Dependencies
        • Omnife Project Submodule
        • Webpack
        • ESLint Rules
        • Bundles
        • Multilanguage & Translation
        • Environmental File
        • Custom Error Pages
        • Icon Font
      • Page Types
        • Static Pages & Flatpages
        • Account Page
          • Template Rendering in Account Pages
          • Forms & Validation
        • Basket Page
          • Redux Basket State
          • Basket Page - View
        • Checkout
          • Redux Checkout State
          • View & Template Rendering
          • Masking & Validation
      • Theming & Styling
      • Widgets
      • SEO Management
      • Extending Project Zero
    • Next.js
      • Basic Setup
      • Deployment
      • Static Assets
      • Plugins
      • Widgets
      • Icons
      • Localization
      • SEO Management
      • Advanced Usage
      • Data Fetching
        • Client
          • Account
          • Address
          • Basket
          • Checkout
          • Misc
          • Product
          • User
          • Wishlist
        • Server
          • Category
          • Flat Page
          • List
          • Menu
          • Product
          • SEO
          • Special Page
          • Widget
  • App Maker
    • Setup Your Environment
    • Plugin Quickstart
    • Create Project
    • Setup Existing Project
    • Deploy Project
    • Users and Roles
    • Add Public Key
    • App Maker CLI
    • Create App on Stores
      • Creating App on Apple App Store
      • Creating App on Google Play Store
    • Mobile App Framework
      • Configuration
      • Framework
      • Project Structure
        • Structure
        • Data Containers
        • Pages
      • Dependency Integration
        • Plugins
        • Akinon Plugin Adapter
  • Akifast
    • HPP
      • Getting Started
      • Authorization
      • Payment Session Creation
        • Key Points Before Creating a Payment Session
        • Creating Payment Session
        • Redirecting to the Payment Page
        • Errors Encountered During Payment Session Creation
      • Merchant Services
        • Shipping Query URL
        • Agreement Query URL
        • Other URLs
  • B2B
    • Getting Started
    • B2B Setup
  • Adds-on
    • Invoicer
      • Introduction
      • Invoice & Pay On Delivery Service
  • Channel App Template
    • Introduction
    • Installation and Usage
    • Development Steps
      • Folder Structure
      • Starting Step
      • Encoding the Sales Channel
        • Introduction
        • Setup
        • Products
        • Product Price
        • Product Stock
        • Product Image
        • Orders
        • Product Data
      • Adding a New Command to Akinon
      • Listening for External Requests
    • Architecture
      • Introduction
      • Integration
      • Services (Flows)
        • Introduction
        • Product Service
        • Price Service
        • Stock Service
        • Image Service
        • Order Service
  • Multi Regional Settings
    • Multi Regional Settings
Powered by GitBook

© 2025 Akinon. All rights reserved.

On this page
  • Conversation
  • Order or Product Based Conversation
  • Conversation without Order or Product
  • Adding New Messages to Conversation
  • Listing and Filtering Conversations
  • Messages
  • Public Questions & Reviews

Was this helpful?

  1. Commerce

Conversation & Messages

This document provides a comprehensive guide to using the Message, Review, and Question features developed for the Akinon Seller Center. It includes request and response examples for Omnitron, Commerce, and Project Zero products.

Different endpoints are used depending on the platform. Below are the specific URLs for making requests from Omnitron, Commerce, and Project Zero. Requests sent from Omnitron are sent by sellers, while requests sent from Commerce and Project Zero are sent by users.

For requests made from Omnitron, use the following URLs:

  • https://{omnitron_url}/api/v1/remote/1/conversations/

  • https://{omnitron_url}/api/v1/remote/1/messages/

The number “1” that appears after remote in the URL represents the channel ID.

For requests made from Commerce, use the following URLs:

  • https://{commerce_url}/users/conversations/

For requests made from Project Zero, use the following URLs:

  • https://{storefront_url}/users/conversations/

  • https://{storefront_url}/users/messages/

Conversations created from Omnitron are used by sellers to inform users about various topics (e.g., when an ordered product is out of stock).

To delve into the concepts and methods more deeply:

Conversation

Conversation is the structure where communication between a user and a seller is established. For a message to be sent, the creation of a Conversation is initially expected. With conversation, messages between users and sellers can be created within this communication and these messages can be listed and filtered as desired.

Creating conversation objects allows for communication about products and orders—such as messages, questions, and reviews—as well as messaging and commenting independent of any specific product or order.

Different types of Conversations can be created, including:

  • Asking a question unrelated to a product or order,

  • Asking a question about a specific product or order,

  • Asking the status of an order,

  • Leaving a review on a purchased product or store, etc.

When creating a conversation object, the expected fields are as follows:

Required fields:

  • user

  • datasource

  • conversation_type

  • user_type

  • message_content

  • content_type

  • content_id

Optional fields:

  • subject

  • item_content

  • item_id

  • conversation

Briefly explaining these fields,

  • user and datasource are used to determine which user and seller (datasource) the conversation is between,

  • conversation_type indicates the type of communication (question, message, review),

  • message_content specifies the message content to be sent,

  • user_type distinguishes whether the user is registered in the system.

  • content_type tracks the sender of the message, which can either be a datasource (seller) or a user object, and content_id holds the ID of this object.

  • subject field, which is optional, serves as the subject heading.

  • item_content and item_id indicate which product or order item the communication relates to. item_content contains an object, while item_id holds the corresponding ID.

  • conversation field is used when adding a new message to an existing conversation by making a request to a previously created conversation. This field is relevant only when a new message is being added.

It's important to note that fields like user_type, content_type, content_id, and message_content are not stored within the conversation object itself. These fields are used when the conversation is created along with the initial message.

The following sections of this document provide examples of how to create Conversations and Messages for these various scenarios.

Order or Product Based Conversation

POST Create an Order/Product-Based Conversation

Path: /api/v1/remote/1/conversations/

To initiate conversation about a product;

  • item_content should be set to product, and item_id should be the ID of that object.

To initiate conversation about an order;

  • item_content should be set to orderitem, and item_id should be the ID of that object.

Example Request for Creating Product Based Conversation

curl --location 'https://{omnitron_url}/api/v1/remote/1/conversations/' \
--header 'Authorization: Token 500dd3a7fa57eaef2f7f5f4dcde4db1f15b20312e7' \
--header 'Content-Type: application/json' \
--header 'Cookie: csrftoken=zj1il0fna79t5ttgzWBGkAy7iItUAqpfc2wTAefcMcBTgi9VmsAfEwI92I8TqBkeDK' \
--data '{
	    "conversation_type": "message",
	    "user_type": "guest",
	    "message_content": "Hello, this is the first message.",
	    "datasource": "1",
	    "content_type": "user",
	    "content_id": "1",
	    "user": "545382",
	    "item_id": "1",
	    "item_content": "product"
}'

Example Request for Creating Order Based Conversation

curl --location 'https://{omnitron_url}/api/v1/remote/1/conversations/' \
--header 'Authorization: Token 500dd3a7fa57eaeff27f54dcde4db1f15b20312e7' \
--header 'Content-Type: application/json' \
--header 'Cookie: csrftoken=zj1il0fna79t5ttgzWBGkAy7iItUAqpc2wTdAecMcBTgi9VmsAfEwI92I8TqBkeDK' \
--data '{
	    "conversation_type": "message",
	    "user_type": "guest",
	    "message_content": "Hello, this is the first message.",
	    "datasource": "1",
	    "content_type": "user",
	    "content_id": "1",
	    "user": "545382",
	    "item_id": "1",
	    "item_content": "orderitem"
}'

Example Response (200 OK)

When a request is successful, the response will include details such as the conversation type, the users and sellers (datasource) involved, and the related object, as shown below:

{
"id": 1,
"datasource": 1,
"user": 545382,
"subject": null,
"item_content": "orderitem",
"item_id": 1,
"conversation_type": "message",
"message_content": "hello this is the first message",
"user_type": "guest",
"content_id": 1,
"content_type": "user"
}

Example Response (400 Bad Request)

If a conversation already exists, any further messages should be sent within that existing conversation. If an attempt is made to create a duplicate conversation, the following response will be returned:

["Conversation already exists"]

POST Create an Order/Product-Based Message

To send a message to the seller regarding a product or order, the conversation_type parameter value is set to message.

Additionally, the request body must include the item_id and item_content parameters of the relevant product or order.

Example Request

curl --location 'https://{omnitron_url}/api/v1/remote/1/conversations/' \
--header 'Authorization: Token 500dd3a7fa57eaef2f7f5f4dcde4db1f15b20312e7' \
--header 'Content-Type: application/json' \
--header 'Cookie: csrftoken=zj1il0fna79t5ttgzWBGkAy7iItUAqpfc2wTAefcMcBTgi9VmsAfEwI92I8TqBkeDK' \
--data '{
	    "conversation_type": "message",
	    "user_type": "guest",
	    "message_content": "Hello, this is the first message.",
	    "datasource": "1",
	    "content_type": "user",
	    "content_id": "1",
	    "user": "545382",
	    "item_id": "1",
	    "item_content": "product"
}'

Example Response

{
"id": 1,
"datasource": 1,
"user": 545382,
"subject": null,
"item_content": "product",
"item_id": 1,
"conversation_type": "message",
"message_content": "Hello, this is the first message.",
"user_type": "guest",
"content_id": 1,
"content_type": "user"
}

POST Create an Order/Product-Based Question

To ask a question regarding the product or order, the conversation_type parameter value is set to question.

Additionally, the request body must include the item_id and item_content parameters of the relevant product or order.

Example Request

curl --location 'https://{omnitron_url}/api/v1/remote/1/conversations/' \
--header 'Authorization: Token 500dd3a7fa57eaef2f7f5f4dcde4db1f15b20312e7' \
--header 'Content-Type: application/json' \
--header 'Cookie: csrftoken=zj1il0fna79t5ttgzWBGkAy7iItUAqpfc2wTAefcMcBTgi9VmsAfEwI92I8TqBkeDK' \
--data '{
	    "conversation_type": "question",
	    "user_type": "guest",
	    "message_content": "Hello, this is the first message.",
	    "datasource": "1",
	    "content_type": "user",
	    "content_id": "1",
	    "user": "545382",
	    "item_id": "1",
	    "item_content": "product"
}'

Example Response

{
"id": 1,
"datasource": 1,
"user": 545382,
"subject": null,
"item_content": "product",
"item_id": 1,
"conversation_type": "question",
"message_content": "Hello, this is the first message.",
"user_type": "guest",
"content_id": 1,
"content_type": "user"
}

POST Create an Order/Product-Based Review

To leave a review to the product or order, the conversation_type parameter value is set to review.

Additionally, the request body must include the item_id and item_content parameters of the relevant product or order.

Example Request

curl --location 'https://{omnitron_url}/api/v1/remote/1/conversations/' \
--header 'Authorization: Token 500dd3a7fa57eaef2f7f5f4dcde4db1f15b20312e7' \
--header 'Content-Type: application/json' \
--header 'Cookie: csrftoken=zj1il0fna79t5ttgzWBGkAy7iItUAqpfc2wTAefcMcBTgi9VmsAfEwI92I8TqBkeDK' \
--data '{
	    "conversation_type": "review",
	    "user_type": "guest",
	    "message_content": "Hello, this is the first message.",
	    "datasource": "1",
	    "content_type": "user",
	    "content_id": "1",
	    "user": "545382",
	    "item_id": "1",
	    "item_content": "product"
}'

Example Response

{
"id": 1,
"datasource": 1,
"user": 545382,
"subject": null,
"item_content": "product",
"item_id": 1,
"conversation_type": "review",
"message_content": "Hello, this is the first message.",
"user_type": "guest",
"content_id": 1,
"content_type": "user"
}

Conversation without Order or Product

In addition to the actions mentioned above, users can also communicate with the seller without referencing any specific product or order.

POST Create a Message without Order/Product

Path: /users/conversations/

To send a message directly to the store without referencing any product or order, conversation_type parameter value is set to message.

Example Request

curl --location 'https://{commerce_url}/users/conversations/' \
--header 'Authorization: Token 500dd3a7fa57eaef27f5ffdg4dcde4db1f15b20312e7' \
--header 'Content-Type: application/json' \
--header 'Cookie: csrftoken=zj1il0fna79t5ttgzWBGkAy7iItUAqpc2wTAdffecfMcBTgi9VmsAfEwI92I8TqBkeDK' \
--data '{
    "conversation_type": "message",
    "user_type": "registered",
    "message_content": "Hello, this is a message.",
    "datasource": "1",
    "content_type": "user",
    "content_id": "545383",
    "user": "545383"
}'

Example Response

{
"id": 1,
"datasource": 1,
"user": 545383,
"subject": null,
"conversation_type": "message",
"message_content": "Hello, this is a message.",
"user_type": "registered",
"content_id": 545383,
"content_type": "user"
}

POST Create a Question without Order/Product

Path: /users/conversations/

To ask a question directly to the store without referencing any product or order, conversation_type parameter value is set to question.

Example Request

curl --location 'https://{commerce_url}/users/conversations/' \
--header 'Authorization: Token 500dd3a7fa57eaef27f54dcde4db1f15b20312e7' \
--header 'Content-Type: application/json' \
--header 'Cookie: csrftoken=zj1il0fna79t5ttgzWBGkAy7iItUAqpc2wTAecMcBTgi9VmsAfEwI92I8TqBkeDK' \
--data '{
    "conversation_type": "question",
    "user_type": "registered",
    "message_content": "Hello, this is a question.",
    "datasource": "1",
    "content_type": "user",
    "content_id": "545383",
    "user": "545383"
}'

Example Response

{
"id": 1,
"conversation_type": "question",
"user_type": "registered",
"message_content": "Hello, this is a question.",
"datasource": "1",
"content_type": "user",
"content_id": "545383",
"user": "545383"
}

POST Create a Review without Order/Product

Path: /users/conversations/

Unlike the methods mentioned above, for type of conversations review, the path /users/conversations/ is used instead of /api/v1/remote/1/conversations/. Since sellers cannot reply to reviews on a product or order, it is expected that such requests will come only from the endpoint used by users.

To leave a review directly to the store without referencing any product or order, conversation_type parameter value is set to review.

Example Request

curl --location 'https://{commerce_url}/users/conversations/' \
--header 'Authorization: Token 500dd3a7fa57eaefh27f54dcde4db1f15b20312e7' \
--header 'Content-Type: application/json' \
--header 'Cookie: csrftoken=zj1il0fna79t5ttgzWBGkAy7iItUAqpc2wTAecMgcBTgi9VmsAfEwI92I8TqBkeDK' \
--data '{
    "conversation_type": "review",
    "user_type": "registered",
    "message_content": "Hello, this is a review.",
    "datasource": "1",
    "content_type": "user",
    "content_id": "545383",
    "user": "545383"
}'

Example Response

{
"id": 1,
"conversation_type": "review",
"user_type": "registered",
"message_content": "Hello, this is a review.",
"datasource": "1",
"content_type": "user",
"content_id": "545383",
"user": "545383"
}

If a request is sent from Omnitron to respond to a review with the conversation_type set to review, the following error message is received:

    {"non_field_errors": ["DataSource can't reply to a review."]}

Adding New Messages to Conversation

If a message needs to be added to an existing conversation, the “id” value from the response returned for all created conversations above should be set in the conversation parameter in the body of the request, as shown in the example request below. The endpoints and other body parameters vary according to the methods as given above.

Below is an example request and response for the second message added to a conversation with "id": 9 by the user.

Example Request

curl --location 'https://{commerce_url}/users/conversations/' \
--header 'Authorization: Token 500dd3a7fa57eaef2d7f54dcde4db1f15b20312e7' \
--header 'Content-Type: application/json' \
--header 'Cookie: csrftoken=zj1il0fna79t5ttgzWBGkAy7iItUAqpc2fwTAecMcBTgi9VmsAfEwI92I8TqBkeDK' \
--data '{
    "conversation_type": "review",
    "conversation": 9,
    "user_type": "registered",
    "message_content": “This is the second message.",
    "datasource": "1",
    "content_type": "user",
    "content_id": "545383",
    "user": "545383",
    "item_id": "1",
    "item_content": "product"
}'

Example Response

{
 "id": 9,
"datasource": 1,
"user": 545383,
"item_id": 1,
"conversation_type": "review",
"message_content": "This is the second message.",
"user_type": "registered",
"content_id": 545383
}

Listing and Filtering Conversations

There are two endpoints available for listing conversation objects, one for commerce users and another for sellers. Both endpoints use the same filtering options.

  • Commerce users should send their requests to /users/conversations/.

  • Sellers should access the endpoint through /api/v1/remote/1/conversations/ via Omnitron.

GET Listing All Conversations

Example Request (Commerce)

Here is an example request for a commerce user to list their messages:

curl --location 'https://{commerce_url}/users/conversations/' \
--header 'Authorization: Token b4a04e625f1f3eba3538d1fc19da9e8e8aeba285' \
--header 'Cookie: csrftoken=zj1il0fna79t5ttgzWBGkAy7iItUAqpc2wTAecMcBTgi9VmsAfEwI92I8TqBkeDK; sessionid=vhid5fk4in98xusm8ostv3s2d87cy19d'

Example Response

{
    "count": 5,
    "next": null,
    "previous": null,
    "results": [
        {
            "id": 1,
            "user": {
                "id": 545382,
                "first_name": "",
                "last_name": "",
                "email": "akinon@hotmail.com",
                "phone": null,
                "gender": null
            },
            "datasource": {
                "pk": 1,
                "name": "Test Shop",
                "slug": "test-shop",
                "title": "Test shopping",
                "supplier_code": "ard-123",
                "address": null,
                "email": null,
                "phone_number": null,
                "fax_number": null,
                "kep_address": null,
                "mersis_number": null,
                "trade_association": null,
                "extras": {},
                "price_list": 1,
                "stock_list": 1,
                "is_active": true
            },
            "item_object": {
                "pk": 1,
                "name": "Q800T QLED 8K Smart TV",
                "sku": "328187",
                "absolute_url": "/product/1/"
            },
            "message_set": [
                {
                    "id": 1,
                    "message_content": "hello this is the second message",
                    "user_type": "registered",
                    "content_object": {
                        "id": 545382,
                        "first_name": "",
                        "last_name": "",
                        "email": "akinon@hotmail.com",
                        "phone": null,
                        "gender": null
                    }
                },
               ...
            ],
            "conversation_type": "review",
            "last_message_date": "2023-07-19T10:25:40.208173Z"
        },
        ....
    ]
}

Example Request (Omnitron)

Here is an example request for a seller to list their messages via Omnitron:

curl --location 'https://{omnitron_url}/api/v1/remote/1/conversations/' \
--header 'Authorization: Token 500dd3a7fa57eaef27f54dcde4db1f15b20312e7' \
--header 'Cookie: csrftoken=zj1il0fna79t5ttgzWBGkAy7iItUAqpc2wTAecMcBTgi9VmsAfEwI92I8TqBkeDK; sessionid=vhid5fk4in98xusm8ostv3s2d87cy19d'

Example Response

{
    "count": 12,
    "next": "https://{omnitron_url}/api/v1/remote/1/conversations/?page=2",
    "previous": null,
    "results": [
        {
            "id": 2,
            "user": {
                "id": 545383,
                "first_name": "",
                "last_name": "",
                "email": "",
                "phone": null,
                "gender": null
            },
            "datasource": {
                "pk": 2,
                "name": "Sin's Shop",
                "slug": "sin-shop",
                "title": "Sin's shopping",
                "supplier_code": "sin-123",
                "address": null,
                "email": null,
                "phone_number": null,
                "fax_number": null,
                "kep_address": null,
                "mersis_number": null,
                "trade_association": null,
                "extras": {},
                "price_list": null,
                "stock_list": null,
                "is_active": true
            },
            "item_object": null,
            "message_set": [
                {
                    "id": 9,
                    "message_content": "hello this is the first message",
                    "user_type": "guest",
                    "content_object": {
                        "id": 545383,
                        "first_name": "",
                        "last_name": "",
                        "email": "",
                        "phone": null,
                        "gender": null
                    }
                },
               ...
    ]
}

GET Listing Specific Conversations

When listing specific conversations, you can use filter parameters to refine your search. The available filters are:

  • modified_date

  • created_date

  • user_id

  • product

  • order_item

  • item_type

  • data_source_id

  • data_source

  • product_base_code

  • conversation_type

  • user__first_name

  • user__last_name

  • order_number

Example Request (Commerce)

Below is an example request from a user for listing results filtered by the data_source_id parameter for a specific seller.

curl --location 'https://{commerce_url}/users/conversations/?data_source_id=1' \
--header 'Authorization: Token b4a04e625f1f3eba3538d1fc19da9e8e8aeba285' \
--header 'Cookie: csrftoken=zj1il0fna79t5ttgzWBGkAy7iItUAqpc2wTAecMcBTgi9VmsAfEwI92I8TqBkeDK; sessionid=vhid5fk4in98xusm8ostv3s2d87cy19d'

Example Response

{
    "count": 5,
    "next": null,
    "previous": null,
    "results": [
        {
            "id": 1,
            "user": {
                "id": 545382,
                "first_name": "",
                "last_name": "",
                "email": "akinon@akinon.com",
                "phone": null,
                "gender": null
            },
            "datasource": {
                "pk": 1,
                "name": Test Shop",
                "slug": "test-shop",
                "title": "Test shopping",
                "supplier_code": "ard-123",
                "address": null,
                "email": null,
                "phone_number": null,
                "fax_number": null,
                "kep_address": null,
                "mersis_number": null,
                "trade_association": null,
                "extras": {},
                "price_list": 1,
                "stock_list": 1,
                "is_active": true
            },
            "item_object": {
                "pk": 1,
                "name": "Q800T QLED 8K Smart TV",
                "sku": "328187",
                "absolute_url": "/product/1/"
            },
            "message_set": [
                {
                    "id": 1,
                    "message_content": "hello this is the second message",
                    "user_type": "registered",
                    "content_object": {
                        "id": 545382,
                        "first_name": "",
                        "last_name": "",
                        "email": "akinon@akinon.com",
                        "phone": null,
                        "gender": null
                    }
                },
               ...
            ],
            "conversation_type": "review",
            "last_message_date": "2023-07-19T10:25:40.208173Z"
        },
        ....
    ]
}

Example Request - 2 (Commerce)

Below is an example request from a user for listing results filtered by both the data_source_id and conversation_type parameters for a specific seller, with conversation_type set to question.

curl --location 'https://{commerce_url}/users/conversations/?data_source_id=1&conversation_type=question' \
--header 'Authorization: Token b4a04e625f1f3eba3538d1fc19da9e8e8aeba285' \
--header 'Cookie: csrftoken=zj1il0fna79t5ttgzWBGkAy7iItUAqpc2wTAecMcBTgi9VmsAfEwI92I8TqBkeDK; sessionid=vhid5fk4in98xusm8ostv3s2d87cy19d'

Example Request - 3 (Omnitron)

Below is an example request from a seller for listing results filtered by both the data_source_id and conversation_type parameters for a specific seller, with conversation_type set to question.

curl --location 'https://{omnitron_url}/api/v1/remote/1/conversations/?data_source_id=1&conversation_type=question' \
--header 'Authorization: Token 500dd3a7fa57eaef27f54dcde4db1f15b20312e7' \
--header 'Cookie: csrftoken=zj1il0fna79t5ttgzWBGkAy7iItUAqpc2wTAecMcBTgi9VmsAfEwI92I8TqBkeDK; sessionid=vhid5fk4in98xusm8ostv3s2d87cy19d'

Apart from these actions for conversations, there are no other actions such as deletion.

Messages

Messages are the entities contained within conversations. As noted in the conversation section, a message cannot be created without first creating a conversation object.

While there are two distinct endpoints for creating conversations, only one endpoint is used for creating messages: /api/v1/remote/1/messages/. It is also possible to send messages through conversation endpoints, as illustrated in the conversation section.

When sending a request to the endpoint, the following mandatory fields must be included:

  • message_content

  • conversation

  • content_type

  • content_id

  • user_type

Example Request

curl --location 'https://{omnitron_url}/api/v1/remote/1/messages/' \
--header 'Authorization: Token 500dd3a7fa57eaef27f54dcde4db1f15b20312e7' \
--header 'Content-Type: application/json' \
--header 'Cookie: csrftoken=zj1il0fna79t5ttgzWBGkAy7iItUAqpc2wTAecMcBTgi9VmsAfEwI92I8TqBkeDK' \
--data '{
    "conversation_type": "question",
    "user_type": "guest",
    "message_content": "Your question has been answered by the seller.",
    "datasource": "1",
    "content_type": "user",
    "content_id": "545383",
    "user": "545383",
    "conversation": "9"
}'

Example Response

{
    "conversation": 9,
    "message_content": "hello this is the first question",
    "user_type": "guest",
    "content_id": 545383,
    "content_type": "user"
}

If content_type is set to datasource, a notification email will be sent to the user.

If a commerce user who is not found within the conversation attempts to request a conversation unrelated to them, the response returned will be as follows:

{"detail": "Bu işlemi yapmak için izniniz bulunmuyor."}

Public Questions & Reviews

This section contains the endpoints where content such as questions or reviews for sellers or products can be publicly published.

The following filters can be used to obtain more specific results when filtering conversations.

  • modified_date

  • created_date

  • user_id

  • product

  • order_item

  • item_type

  • data_source_id

  • data_source

  • product_base_code

GET Listing Public Questions

Example Request

curl --location 'https://{storefront_url}/public-questions/' \
--header 'Cookie: csrftoken=nHG4iaHFpqXhMiIY0wUXAQupLFeKdCQrqE326dImB2QAV06Ua7E6kZrj29tYdLvM; osessionid=ve00sgs86u7xyydyxcorgvx4slrpok5l; sessionid=9hvt8kjd1pw4kktspyqaye3zp44bjzlu'

Example Response

{
    "count": 1,
    "next": null,
    "previous": null,
    "results": [
        {
            "id": 11,
            "user": 1,
            "datasource": {
                "pk": 1,
                "name": "Test Shop",
                "slug": "test-shop",
                ...
            },
            "item_object": null,
            "message_set": [
                {
                    "id": 7,
                    "message_content": "hello this is the first question",
                    "user_type": "registered",
                    "content_object": {
                        "id": 1,
                        ...
                    }
                }
            ],
            "conversation_type": "question",
            "last_message_date": null
        }
    ]
}

GETListing Public Reviews

Example Request

curl --location 'https://{storefront_url}/public-reviews/' \
--header 'Cookie: csrftoken=nHG4iaHFpqXhMiIY0wUXAQupLFeKdCQrqE326dImB2QAV06Ua7E6kZrj29tYdLvM; osessionid=ve00sgs86u7xyydyxcorgvx4slrpok5l; sessionid=9hvt8kjd1pw4kktspyqaye3zp44bjzlu'

Example Response

{
    "count": 1,
    "next": null,
    "previous": null,
    "results": [
        {
            "id": 12,
            "user": 2,
            "datasource": {
                "pk": 1,
                "name": "Test Shop",
                "slug": "test-shop",
                ...
            },
            "item_object": null,
            "message_set": [
                {
                    "id": 10,
                    "message_content": "this is the first review from commerce",
                    "user_type": "registered",
                    "content_object": {
                        "id": 2,
                        ...
                    }
                },
                {
                    "id": 17,
                    "message_content": "this is the second review",
                    "user_type": "registered",
                    "content_object": {
                        "id": 2,
                        ...
                    }
                },
            ],
            "conversation_type": "review",
            "last_message_date": null
        }
    ]
}
PreviousFiltering ProductsNextSitemap Configuration

Last updated 1 month ago

Was this helpful?