Tip #1 Automating online sales order to invoice conversions in Zoho Inventory

Tip #1 Automating online sales order to invoice conversions in Zoho Inventory


Hello,
 
Hope the day is treating you well.
We've been getting more than a few requests from online sellers who use Zoho Inventory to help them automate invoice generation for all online orders that drop into Zoho Inventory automatically from a sales channel or a shopping cart that they have integrated. Are you an online seller like them? Then we've got some exciting news for you. You can do it with the help of a few simple things that we'll see here today.

So how do we go about this?
If you have integrated online sales channels like Amazon, Etsy and Ebay or a shopping cart like Shopify to Zoho Inventory, then you will be aware of sales orders being automatically generated inside of Zoho Inventory whenever your online customers buy something from you through these integrated channels. Since invoices are generated and automatically sent to your clients by the channel, you have little need of the invoices inside of Zoho Inventory apart from accounting purposes. Depending on the amount of online orders you get per day, it can get tricky to convert these orders into invoices manually. So we are going to automate this part for you with the help of a simple custom function. 
 
Wondering what custom functions are? They are one of the automation tools at your disposal inside of Zoho Inventory and can be accessed inside of Settings. To know more about custom functions in general, please refer to our help document.
 
Now let's see how we can write one to automatically convert all online sales orders into invoices as soon as they are generated within Zoho Inventory. 
 
Log in to your Zoho account and click on this link to generate an Auth Token which is required to make this work.
 
1) Open your Zoho Inventory organization.
2) Navigate to Settings using the gear icon from the top-right corner.
3) Select Automation from the sidebar. Click on the +New Workflow Rule button that is found at the top-right corner.
4) Out of the four tabs within Automation, select Custom Functions.
5) Now let's add a name for this workflow rule. (Note: Name cannot contain spaces)
6) The module to be chosen is Sales Orders.
7) Add a description if you need one.
8) Now, the workflow type is going to be Event Based.
9) And for the trigger, choose the option - "When a Sales Order is" "Created".
10) In the deluge pane, copy and paste the following code snippet:
 
salesorderID = salesorder.get("salesorder_id");
salesorderdate = salesorder.get("date").toDate();
organizationID = organization.get("organization_id");
authtoken = "
Copy and Paste your auth token in place of this text";
sal = invokeurl
[
url :"
https://inventory.zoho.com/api/v1/salesorders/" + salesorderID + "?authtoken=" + authtoken + "&organization_id=" + organizationID
type :GET
];
temp = sal.get("salesorder");
// info temp;
new = temp.get("sales_channel");
if(!new.equalsIgnoreCase("direct_sales"))
{
bson = Map();
customerID = salesorder.get("customer_id").toString();
salesoderdate = salesorder.get("date").toDate();
//invoice_number = salesorder.get("salesorder_number").replaceFirst("SO","INV");
//bson.put("invoice_number",);
bson.put("customer_id",customerID);
bson.put("date",salesorder.get("date"));
lineItems = salesorder.get("line_items").toList();
newLineItems = List();
for each lineItem in lineItems
{
lineItemMap = Map();
solineitemID = lineItem.get("line_item_id");
lineItemMap.put("salesorder_item_id",solineitemID);
id = lineItem.get("item_id");
lineItemMap.put("item_id",id);
des = lineItem.get("description");
lineItemMap.put("description",des);
wh = lineItem.get("warehouse_id");
lineItemMap.put("warehouse_id",wh);
quantity = lineItem.get("quantity");
lineItemMap.put("quantity",quantity);
r = lineItem.get("rate");
lineItemMap.put("rate",r);
d = lineItem.get("discount");
lineItemMap.put("discount",d);
tidd = lineItem.get("tax_id");
lineItemMap.put("tax_id",tidd);
tex = lineItem.get("tax_exemption_code");
lineItemMap.put("tax_exemption_code",tex);
newLineItems.add(lineItemMap);
}
bson.put("line_items",newLineItems);
if(temp.get("is_taxable").equalsIgnoreCase("true"))
{
bson.put("tax_id",temp.get("tax_id"));
}
else
{
bson.put("tax_exemption_id",temp.get("tax_exemption_id"));
bson.put("tax_authority_id",temp.get("tax_authority_id"));
}
response = zoho.inventory.createRecord("Invoices",organizationID,bson);
info bson;
info response.toMap().get("message");
inv = response.get("invoice");
info inv.get("invoice_id");
//marking as sent//
invoiceID = inv.get("invoice_id");
invoicedate = inv.get("date").toDate();
respond = invokeurl
[
url :"
https://inventory.zoho.com/api/v1/invoices/" + invoiceID + "/status/sent?authtoken=" + authtoken + "&organization_id=" + organizationID
type :POST
];
info respond.toMap().get("message");
}
else
{
info "Order is not from a Marketplace";
}
 
11) Before you save, you are required to copy and paste your auth token inside the quotes in the 4th line that says: authtoken = "Copy and Paste your auth token in place of this text";
Note: The auth token is a critical piece of information that helps the system identify you, so keep yours safe and confidential. Do not share it with anyone, not even with folks from Zoho.
12) Now, hit Save to finish.
 
Henceforth, all your online sales orders that are auto-generated from Amazon, Etsy, Ebay or Shopify will be automatically converted to invoices. And the status of these invoices inside of Zoho Inventory will be Sent. If you wish to auto-generate invoices of Paid status, then it can be made possible with a few changes. You can either experiment that part by yourself or contact us at support@zoho-inventory.com
 
Note: If you need this automation only for one channel, say for Shopify alone and not other channels, then you need to make a few changes to line 13 that originally says - if(!new.equalsIgnoreCase("direct_sales")) to if(new.equalsIgnoreCase("shopify"))
 
Hope this helps you in your online selling endeavors. Oh and by the way, have you ever dabbled with the custom functions module by yourself? You can share your discoveries, questions and suggestions with us anytime. We look forward to hearing from you. (Email us: support@zoho-inventory.com)
 
Until next time.
 
Your everyday end user,
Ajay Aadhithya Chandrasekaran
Zoho Inventory



      Zoho Campaigns Resources


        • Desk Community Learning Series


        • Digest


        • Functions


        • Meetups


        • Kbase


        • Resources


        • Glossary


        • Desk Marketplace


        • MVP Corner


        • Word of the Day


        • Ask the Experts


          Zoho CRM Plus Resources

            Zoho Books Resources


              Zoho Subscriptions Resources

                Zoho Projects Resources


                  Zoho Sprints Resources


                    Zoho Orchestly Resources


                      Zoho Creator Resources


                        Zoho WorkDrive Resources



                          Zoho CRM Resources

                          • CRM Community Learning Series

                            CRM Community Learning Series


                          • Tips

                            Tips

                          • Functions

                            Functions

                          • Meetups

                            Meetups

                          • Kbase

                            Kbase

                          • Resources

                            Resources

                          • Digest

                            Digest

                          • CRM Marketplace

                            CRM Marketplace

                          • MVP Corner

                            MVP Corner




                            Zoho Writer Writer

                            Get Started. Write Away!

                            Writer is a powerful online word processor, designed for collaborative work.

                              Zoho CRM コンテンツ






                                ご検討中の方

                                  • Recent Topics

                                  • Set Custom Icon for Custom Modules in new Zoho CRM UI

                                  • Live Webinar: Getting Started with Zoho WorkDrive - A Complete Overview

                                    Hello everyone, We’re excited to invite you to our upcoming live webinar! Discover how to set up your team, bring in your data, and make the most of WorkDrive’s collaboration, organization, AI, and security capabilities. This session is perfect for anyone
                                  • Marketing Tip #4: Build your email list early

                                    Email marketing has one of the highest returns on investment. Don’t wait until later; start collecting subscribers now. When you've got their attention, you can send them emails about offers, new product launches, seasonal greetings, and more. Try this
                                  • Is anyone else having trouble saving a custom image in their email signature, or is it just me?

                                    When I try to save the image I get an error that says "Operation Failed" I opened a support ticket two weeks ago and received a response that it would be debugged, but it still isn’t working
                                  • Unify Overlapping Functionalities Across Zoho Products

                                    Hi Zoho One Team, We would like to raise a concern about the current overlap of core functionalities across various Zoho applications. While Zoho offers a rich suite of tools, many applications include similar or identical features—such as shift management,
                                  • Zoho Desk Domain mapping / Cloudflare CNAME not recognized

                                    Hello, my website is behind Cloudflare and SSL. From the Cloudflare control panel I added a CNAME record such as support.mydomain.com pointing to desk.cs.zohohost.com but I'm stuck with the message "Make sure you've mapped the CNAME entry..."
                                  • Create an Eye-Catching Announcement Widget for Your Help Center

                                    Hello Everyone! In this week’s edition, let’s explore how to keep your customers updated with exciting news in the Help Center. See how ZylkerMobile wowed their customers by bringing updates right to their portal. ZylkerMobile, the renowned brand for
                                  • I want to add my other zoho account in same pc

                                    why does zoho restrict me doing many things as i also want to add my second mail account bit its not allowing me to do that
                                  • Search in Zoho Community Not Working

                                    I realize this is a bit of a meta topic, but the search for the various Zoho Communities appears to not be working. I'm under the impression that they run on some version of the Zoho Desk platform, so I'm posting this here.
                                  • Capture Stripe’s Customer ID

                                    Does anyone know of a way to capture Stripe’s customer ID that is created when the form/payment is processed? I would like to have the customer ID stored in our CRM so we could utilize in some custom functions down the road.
                                  • Custom Modules - Where are Comments??

                                    In the standard ticket module and in the tasks module, we have an interactive comment box that we can post important details/notes and can tag others if needed. Where is this functionality for Custom Modules? Ideally, custom modules would have very similar,
                                  • Dynamic Signature - Record owner

                                    Hi everyone, I’m using Zoho Writer merge templates from Zoho CRM and have two questions: Owner signature: How can I automatically insert the CRM record owner’s signature in the merged document? I’m not sure where this signature is stored or how to reference
                                  • PUNJAB NATIONAL BANK (CORPORATE) INDIA - NOT AVAILABLE IN BANKING

                                    Dear sir, Kindly fix it. PUNJAB NATIONAL BANK (INDIA) is available but PUNJAB NATIONAL BANK (CORPORATE) is not available. Kindly enable this banking since we need to categorize the entries. Regards, Sanjay Jena email id/ user id : travewithmerchant@
                                  • Amazon invoice in Zoho Books

                                    I have just made my first few sales on Amazon India. Amazon Seller account generates invoices for the sales made on Amazon. These invoices are sent to customers also. Now when I was only making offline sales, I used to create Invoices in Zoho Book. Now
                                  • CUSTOM FUNCTION GIVE ERROR #EVAL!

                                    CUSTEM FUNCTION CREATE KYA ZOHOSHEET ME US FUNCTION KO USE KIYA LEKIN DATA TO SAHI HAI LAKIN DATA SHEET ME NAHI LAG LAHA HAI KRUPYA SOLVE KARE MY CODE IS float ADDTWO_TWO(float NO1, float NO2) { ADD = NO1 + NO2; return ADD; }
                                  • Zoho ShowTime: Certificates of Completion - Award your learners with a sense of achievement

                                    In our increasingly competitive market, professional trainers need to differentiate themselves if they are to survive. One way to do this is to focus on innovation and deliver an ideal learning experience. By developing a renowned certificate program that provides learners with a specialized skill set for a particular industry, both trainees and future prospects will recognize the trainer's leadership in that field. This can help with long-term growth, revenue generation, and even marketing and branding.
                                  • IMAP Migration from Gmail

                                    I have been trying to import my email from a Gmail server and keep receiving the following error. I have reduced the security, activated imap and no improvement. The link to the Google support item has not helped. Unable to connect to your account. Please
                                  • Your Incoming has been blocked and the emails will not be fetched in your Zoho account and POP Accounts Click here to get unblocked.

                                    When entering my account, this error is thrown at me, and I deleted a good part of my deleted messages, but I still can not unblock it, I would appreciate your help. reservas@lineasperutravel.com
                                  • Request for Creating Multiple Email Accounts on One Mobile Number

                                    Dear Zoho Team, I am planning to shift all my work-related communication to Zoho Mail because of its reliability and features. For my work, I need to create 3–4 separate email accounts for different purposes. Could you please confirm if it is possible
                                  • Signature issue

                                    Problem: The signature does not appear when replying or forwarding an email. solve issue: settintgs/Signature Check option place a signature above the content with quotation marks
                                  • mail admin not loading

                                    i am trying to login to mailadmin ... gears keeps rotating forever... its not a password issue whats so ever ... not cookies issues whatsoever from android app i can login but there so few things to do from there .. i changed ip address the same... i
                                  • Unify All Zoho Video Meeting Experiences into One Standardized Platform

                                    Hi Zoho Team, We would like to share an important user experience concern regarding the current state of video meeting functionality across the Zoho ecosystem. The Problem Within Zoho, there are multiple ways to initiate or schedule a video meeting: Zoho
                                  • Changing Account in Quote form does not update address information.

                                    I am trying to update the address information in a quote I've created. I corrected the address in the "Account" but that did not change in the quote. If I re-enter the Account Name in the Quote form, nothing updates. How do I fix this?
                                  • Zoho One Backup of entire account

                                    Hello, When using Zoho one is there a way to backup your entire account of all apps that you are using \ activively using in a single step or do you have to backup each applications data individually? Thanks,
                                  • ZIA in Zoho Cliq

                                    Is It possible to use the ZIA feature from Zoho Analytics in the Zoho Cliq?
                                  • Issue with “CC” and “Subject Details” of the initial mail when reply / replied all / forward using Zoho Mail Client (Desktop / Web Mail / Mobile App)

                                    It is observed that when I reply / reply all / forward a mail using Zoho Mail Client (Desktop / Web Mail / Mobile App), the “CC” and “Subject Details” are omitted from the mail which was replied/forwarded. However this is not the case with outlook mail
                                  • Unable to send Emails - 452 4.3.1 Temporary System Error

                                    Whene ever i request smtp server to send the email (without attachment). i recieve error "452 4.3.1 Temporary System Error"
                                  • I can't receive email

                                    I cannot receive any email sent to my Zoho email after the free upgrade plan trial is finished.
                                  • Help for the alisa adding

                                    Sorry, I would like to add a paypal alias on my domain email address. However, the system blocked it. How can I do it?
                                  • Problem with Writer and Workdrive

                                    Hi team, I’m the super admin for our Zoho One org. WorkDrive is active, and Zoho Docs is deprecated for our org. However, Zoho Writer cannot connect to WorkDrive at all — we’ve cleared cache, tried incognito, and restarted several times. I was able to
                                  • Lite plan attachment said 250mb but actually 25mb ?

                                    Lite plan attachment said 250mb but actually 25mb ? I can't attach over 25mb files, and can't receive mails has attached files over 25mb too
                                  • Zoho Books | Product updates | August 2025

                                    Hello users, We’ve rolled out new features and enhancements in Zoho Books. From the right sidebar where you can manage all your widgets, to integrating Zoho Payments feeds in Zoho Books, explore the updates designed to enhance your bookkeeping experience.
                                  • Constant color of a legend value

                                    It would be nice if we can set a constant color/pattern to a value when creating a chart. We would often use the same value in different graph options and I always have to copy the color that we've set to a certain value from a previous graph to make
                                  • Can no longer export as pdf

                                    In NOTEBOOK I am no longer able to export notes to pdfs as I used to be able to. When I hit that command it asks where I want to send it, but no matter what I chose there is no pdf attachment that shows up in order to send. Nothing happens.
                                  • Option to Customize Career Site URL Without “/jobs/Careers”

                                    Dear Zoho Recruit Team, I hope you are doing well. We would like to request an enhancement to the Career Site URL structure in Zoho Recruit. In the old version of the career site, our URL was simply: 👉 https://jobs.domain.com However, after moving to
                                  • Old vs New Value for Deleted Lookup Values

                                    Suppose the following scenario, where a value in a lookup is deleted: 1. User has countries form 2. Form A has a lookup to countries form 3. User selects Italy in Form A and saves it with the Italy ID 4. Form A report shows Italy 5. Italy is inadvertently
                                  • Desktop app doesn't support notecards created on Android

                                    Hi, Does anybody have same problem? Some of last notecards created on Android app (v. 6.6) doesn't show in desktop app (v. 3.5.5). I see these note cards but whith they appear with exclamation mark in yellow triangle (see screenshot) and when I try to
                                  • customize payment page

                                    Is there a way to customize, other than the theme colour, the payment page that customers are taken to from invoices? I can't seem to find a way. I just don't like the formatting of the current page and would like to make it look better. I've looked at
                                  • Are Environments Worth It?

                                    In concept, Environments in ZC is a great idea. I think the flow is pretty smart when you compare it to GitHub, especially for a low code audience. However, in practice, I've found it to be unpredictable, and I've only used it a few times. Aside from
                                  • Enhanced duplicate check for Leads in CRM

                                    Hello Everyone, We are excited to announce that you can now check for duplicate entries in leads by comparing them with similar records in the Contacts Module. Previously, when you added a lead, only the converted leads were checked for duplicates. This
                                  • Next Page