Kaizen #53 - Sales Orders #API

Kaizen #53 - Sales Orders #API

Hello everyone!
Welcome back to another week of Kaizen.
In this post, we will discuss inserting, updating, and deleting a Sales Order via an API.

What is a Sales Order?
A Sales Order is a document sent to your customers to confirm the items and prices of a sale. It is usually created after a quote is accepted by your customers, and your items are ready to be shipped or delivered to them.

Getting a Sales Order
Use the Get Records API to get the record(s) from the Sales Order module.

Request URL: {api-domain}/crm/v2/Sales_Orders (or)
                        {api-domain}/crm/v2/Sales_Orders/ {record_id}
Request Method: GET

Sample Response



Creating a Sales Order
Use the Insert Records API to insert a record in the Sales Order module.

Request URL: {api-domain}/crm/v2/Sales_Orders
Request Method: POST

Sample Input

{
    "data": [
        {
            "Account_Name": {
                "id": "3652397000000624046"
            },
            "Subject": "SO Kaizen 53",
            "Product_Details": [
                {
                    "product": {
                        "id": "3652397000000416001"
                    },
                    "quantity": 10,
                    "Discount": 20,
                    "Unit Price": 1000,
                    "line_tax": [
                        {
                            "percentage": 10,
                            "name": "Sales Tax"
                        },
                        {
                            "percentage": 1,
                            "name": "VAT"
                        }
                    ]
                }
            ]
        }
    ]
}

Request JSON

Key 
Description
Account_Name
Mandatory, JSON object
The record ID of the account you want to associate the sales order with. Use the Get Records API to fetch the Account_Name.
Subject
Mandatory, string
The subject line of your sales order.
Product_Details
Mandatory, JSON array
An array of details of the product you want to generate the sales order for. For more details on the keys inside this array, refer to our post on Handling product line items in the inventory modules.
Owner
Optional, JSON object
The record ID of the owner you want to assign this sales order record to. Use the Get Users API to fetch the owner's details.
Deal_Name
Optional, JSON object
The record ID of the deal you want to associate with this sales order. Use the Get Records API to fetch the Deal_Name.
Quote_Name
Optional, JSON object
The record ID of the quote that is associated with the sales order.
Contact_Name
Optional, JSON object
The record ID of the contact you want to associate with the sales order. Use the Get Records API to fetch the Contact_Name.
Discount
Optional, integer
The discount you want to offer on the sales order.
Description
Optional, string
A description of the sales order.
Customer_No
Optional, string
The customer number that you are generating the sales order for. This is for your own internal reference.
Tax
Optional, integer
The tax you want to apply for the sales order (this is different from the tax inside the product details section, which pertains to the taxes levied on that product).
Carrier
Optional, string
The name of the carrier that will ship the sales order. You can get the possible values through the Fields Metadata API.
Sales_Commission
Optional, integer
The commission that is applicable for the sale.
Due_Date
Optional, string
The date in the yyyy-mm-dd format on which the sales order is due.
Adjustment
Optional, integer
The adjustment in the sale, if any, that is added to the grand total of that product.
Terms_and_Conditions
Optional, string
The terms and conditions of the sales order, if any.
Excise_Duty
Optional, integer
The excise duty levied on the sale of the product, if any.
$line_tax
Optional, JSON array
The tax that you want to apply to the Sub Total of the line items while generating the sales order. For more details,  refer to Handling product line items in the inventory modules.
Status
Optional, string
The status of the sales order. You can get the possible values through the Fields Metadata API.

Apart from the above keys, you can also specify the keys about the billing and shipping details. Go to Setup > Developer Space > APIs > API Names > Sales Orders to know the API names of these fields. You can also use the Fields Metadata API.

Sample Response



Note
  • You can insert a maximum of 100 sales orders in an API call.
  • You can associate up to 200 products with a sales order. Add a JSON object for each product in the Product_Details section.

Updating a Sales Order
Use the Update Records API to update the record(s) in the Sales Order module.

Request URL: {api-domain}/crm/v2/Sales_Orders/record_id (or)
{api-domain}/crm/v2/Sales_Orders (with record IDs in the input body)
Request Method: PUT

Sample Input
In this example, we have updated the product associated with the sales order.



Sample Response



Note
  • You can update a maximum of 100 sales orders in an API call. 
  • When you update multiple sales orders in a single call, pass the record ID of each sales order in the JSON object under the root key "data". Example:
    {
        "data": [
            {
    "id":"3652397000002791035",
            },
            {
    "id":"3652397000002791004",
            }
        ]
    }

Deleting a Sales Order
Use the Delete Records API to delete the record(s) in the Sales Order module.

Request URL: {api-domain}/crm/v2/Sales_Orders/{record_id} (or)
                         {api-domain}/crm/v2/Sales_Orders?ids=record_id1,record_id2
Request Method: DELETE

Sample Response



Note
You can delete a maximum of 100 sales orders in a single API call.


We hope you found this post useful. Let us know your questions and feedback in the comments section, or write to us at support@zohocrm.com.

Cheers!





    • Sticky Posts

    • Kaizen #197: Frequently Asked Questions on GraphQL APIs

      🎊 Nearing 200th Kaizen Post – We want to hear from you! Do you have any questions, suggestions, or topics you would like us to cover in future posts? Your insights and suggestions help us shape future content and make this series better for everyone.
    • Kaizen #198: Using Client Script for Custom Validation in Blueprint

      Nearing 200th Kaizen Post – 1 More to the Big Two-Oh-Oh! Do you have any questions, suggestions, or topics you would like us to cover in future posts? Your insights and suggestions help us shape future content and make this series better for everyone.
    • Celebrating 200 posts of Kaizen! Share your ideas for the milestone post

      Hello Developers, We launched the Kaizen series in 2019 to share helpful content to support your Zoho CRM development journey. Staying true to its spirit—Kaizen Series: Continuous Improvement for Developer Experience—we've shared everything from FAQs
    • Kaizen #193: Creating different fields in Zoho CRM through API

      🎊 Nearing 200th Kaizen Post – We want to hear from you! Do you have any questions, suggestions, or topics you would like us to cover in future posts? Your insights and suggestions help us shape future content and make this series better for everyone.
    • Client Script | Update - Introducing Commands in Client Script!

      Have you ever wished you could trigger Client Script from contexts other than just the supported pages and events? Have you ever wanted to leverage the advantage of Client Script at your finger tip? Discover the power of Client Script - Commands! Commands
    • Recent Topics

    • Zoho CRM Client Script - SetCriteria in lookup Field

      Hello All One More Zoho CRM Client Script Tips & Trick. Now you can Set the Criteria on Your lookup in zoho CRM, It Comes With a Create Page, Edit Page, and Details Page (Standard). Example:- We have a Room Module that includes Room Name, Status, Campus,
    • Introducing Profile Summary: Faster Candidate Insights with Zia

      We’re excited to launch Profile Summary, a powerful new feature in Zoho Recruit that transforms how you review candidate profiles. What used to take minutes of resume scanning can now be assessed in seconds—thanks to Zia. A Quick Example Say you’re hiring
    • How to get the call recording external ID via desk API

      I have enabled phonbridge integration with Zoom Call. I am trying to access the call recording in Zoom by calling Zoom API. I have built a Desk workflow to trigger on a new call, to call a custom function. when calling the API, the response doesn't contain
    • How do you print a refund check to customer?

      Maybe this is a dumb question, but how does anyone print a refund check to a customer? We cant find anywhere to either just print a check and pick a customer, or where to do so from a credit note.
    • Notebook

      I have purchased the monthly pro subscription of Notebook. But it does not support my XP-Pen to write something in it. So it is not useful to me. Hence I am requesting you to help me to discontinue this subscription.
    • Domain Mapping & Image Publishing Issues on Zoho Sites

      Hello, I am facing two issues with my Zoho Sites account: 1. Images not visible after publishing. 2. Domain mapping error: "Domain already exists". I am a paid customer. Please connect me with Live Chat Support or Zoho Assist so I can show my issue
    • Prevent duplicate with custom fields?

      I was wondering something about custom field/custom modules in Zoho Desk. For some reason you can make a custom field mandatory but not unique? For example, if I create a custom module to manage equipment and renewal and make a field serial number no
    • Round robin

      Hi, I'm trying to set up a round robin to automatically distribute tickets between agents in my team but only those tickets that are not otherwise distributed by other workflows or direct assignments. Is that possible and if so which criteria should I
    • "Is Zoho CRM customer" vs "Is linked with Zoho CRM"

      Recently while building a Flow, I was setting up a Decision action following a Zoho Invoice Fetch record action. There were 2 choices that I had not seen as something I could manually action in Zoho Invoice: "Is Zoho CRM customer" and "Is linked with
    • Two currencies

      More and more I am finding that internattional payments' fees are unpredictable. I would like, on my invoices that are in a foreign currency (eg. USD$ or EUR€) for there to be a GBP£ TOTAL display alongside the invoice's currency total. This would make
    • Automatic Matching from Bank Statements / Feeds

      Is it possible to have transactions from a feed or bank statement automatically match when certain criteria are met? My use case, which is pretty broadly applicable, is e-commerce transactions for merchant services accounts (clearing accounts). In these
    • Generate leads from instagram

      hello i have question. If connect instagram using zoho social, it is possible to get lead from instagram? example if someone send me direct message or comment on my post and then they generate to lead
    • Kaizen #71 - Client Script ZDKs for Detail (Canvas) Page

      Hello everyone! Welcome back to another interesting Kaizen post. In this post, we can discuss Client Script ZDKs support for Detail (Canvas) Page. What is Detail (Canvas) Page? A Detail(Canvas) Page allows you to customize the record detail page to your
    • Zoho PDF editor has a lot of issues.

      Zoho PDF editor needs a lot of work. It hangs and glitches a lot. Deletes annotations and clearings randomly.
    • Where is the desktop app for Zoho Projects???

      As a project manager, I need a desktop app for the projects I manage. Yes, there's the web app, which is AWESOME for cross browser and platform compatibility... but I need a real desktop app for Projects that allow me to enter offline information where
    • How to Automate Monthly PDF Reports with Filters in Zoho Creator

      Hi everyone, I’m trying to build an automated monthly reporting process in Zoho Creator and would appreciate suggestions or best practices from anyone who has done something similar. What I’m trying to do: I have a form called New_Customer with fields
    • Feedback: Streamlining Note Management in Zoho Notebook

      Dear Team/Support, I would like to share some feedback regarding the note management system that could help improve usability and accessibility for users like myself. Notebook 1 (screenshot attached): Currently, the system does not allow selecting and
    • showing Limit exceeded

      Good afternoon...trust you're good. I've been having issues working with but it's not responding. it's showing Limit exceeded, sorry it seems like too many people are working on the sheet right now please try again later. meanwhile no one is working on
    • Converting Sales Order to Invoice via API; Problem with decimal places tax

      We are having problems converting a Sales Order to an Invoice via API Call. The cause of the issue is, that the Tax value in a Sales Order is sometimes calculated with up to 16 decimal places (e.g. 0.8730000000000001). The max decimal places allowed in
    • Sorting columns in Zoho Projects

      Hi, In project management best practice, sorting columns (ascending, descending) is an important tool. Sorting dates to see the order of tasks starting, sorting on priority or even on planned hours is a must for an efficient project control. Currently,
    • CRM : Function to add user name to text field

      I have a lookup field in a module that is linked to the CRM users so we can assign a Project Lead to the customer. Sadly Zoho Marketing Automation doesn't sync Lookup fields so I need to extract information from the lookup to text fields: Lookup field
    • Upload API

      I'm trying to use the Upload API to upload some images and attach them to comments (https://desk.zoho.com/DeskAPIDocument#Uploads#Uploads_Uploadfile) - however I can only ever get a 401 or bad request back. I'm using an OAuth token with the Desk.tickets.ALL
    • Losing description after merging tickets

      Hello, We merge tickets when they are about the same topic from the same client. It happens sometimes. We recently noticed that after the merger only the description from the master ticket is left in a thread. And the slave-ticket description is erased.
    • Option to Empty Entire Mailbox or Folder in Zoho Mail

      Hello Zoho Mail Team, How are you? We would like to request an enhancement to Zoho Mail that would allow administrators and users to quickly clear out entire folders or mailboxes, including shared mailboxes. Current Limitation: At present, Zoho Mail only
    • update linked contacts when update happens in account

      Hi, I have a custom field called Licence in the Accounts module. When someone buys a licence, I’d like to update a custom field in the related Contacts. How can I achieve this? I noticed that workflows triggered on Accounts only allow me to update fields
    • Problem Management Module

      I am looking for a Problem Management module within Zoho Desk. I saw in some training videos that this is available, and some even provided an annual price for it. I want an official confirmation on whether this is indeed available. This is not a particularly
    • Deluge sendmail in Zoho Desk schedule can't send email from a verified email address

      I am trying to add a scheduled action with ZDesk using a Deluge function that sends a weekly email to specific ticket client contacts I've already verified the email address for use in ZDesk, but sendmail won't allow it in its "from:" clause. I've attached
    • Unable to explore desk.zoho.com

      Greetings, I have an account with zoho which already has a survey subscription. I would like to explore desk.zoho.com, but when I visit it while logged in (https://desk.zoho.com/agent?action=CreatePortal) I just get a blank page. I have tried different
    • Offline support for mobile app

      Accessing your files and folders from your mobile devices is now quicker and simpler, thanks to the power of offline support. Whether on an Android or iOS device, you can use the Offline function to save files and folders, so you can review them even
    • Zoho Desk KB article embedded on another site.

      We embed KB articles from Zoho Desk on another site (our application). When opening the article in a new tab, there is no issue, but if we choose lightbox, we are getting an error "To protect your security, help.ourdomain.com will not allow Firefox to
    • Transitioning to API Credits in Zoho Desk

      At Zoho Desk, we’re always looking for ways to help keep your business operations running smoothly. This includes empowering teams that rely on APIs for essential integrations, functions and extensions. We’ve reimagined how API usage is measured to give
    • List of packaged components and if they are upgradable

      Hello, In reference to the article Components and Packaging in Zoho Vertical Studio, can you provide an overview of what these are. Can you also please provide a list of of components that are considered Packaged and also whether they are Upgradable?
    • Does Attari Messaging app have Bot option and APIB

      Hi, Does Attari also have Bot and API as we use in WhatsApp??
    • how to use validation rules in subform

      Is it possible to use validation rules for subforms? I tried the following code: entityMap = crmAPIRequest.toMap().get("record"); sum = 0; direct_billing = entityMap.get("direct_billing_details"); response = Map(); for each i in direct_billing { if(i.get("type")
    • How to add application logo

      I'm creating an application which i do not want it to show my organization logo so i have changed the setting but i cannot find where to upload/select the logo i wish to use for my application. I have seen something online about using Deluge and writing
    • Introducing Keyboard Shortcuts for Zoho CRM

      Dear Customers, We're happy to introduce keyboard shortcuts for Zoho CRM features! Until now, you might have been navigating to modules manually using the mouse, and at times, it could be tedious, especially when you had to search for specific modules
    • Empowered Custom Views: Cross-Module Criteria Now Supported in Zoho CRM

      Hello everyone, We’re excited to introduce cross-module criteria support in custom views! Custom views provide personalized perspectives on your data and that you can save for future use. You can share these views with all users or specific individuals
    • Send Automated WhatsApp Messages and Leverage the Improved WhatsApp Templates

      Greetings, I hope all of you are doing well. We're excited to announce a major upgrade to Bigin's WhatsApp integration that brings more flexibility, interactivity, and automation to your customer messaging. WhatsApp message automation You can now use
    • Verifying Zoho Mail Functionality After Switching DNS from Cloudflare to Hosting Provider

      I initially configured my domain's (https://roblaxmod.com/) email with Zoho Mail while using Cloudflare to manage my DNS records (MX, SPF, etc.). All services were working correctly. Recently, I have removed my site from Cloudflare and switched my domain's
    • Zoho Analytics Regex Support

      When can we expect full regex support in Zoho Analytics SQL such as REGEXP_REPLACE? Sometimes I need to clean the data and using regex functions is the easiest way to achieve this.
    • Next Page