
“October – January are our biggest months, and they ended up getting 3 or 4 months behind because there were so many orders. ... It was so overwhelming getting more behind by the day.” - Jamie Davison, Altus Brands
The accountant at Altus Brands sighed as he faced yet another Wednesday morning of endless clicking to process more ecommerce orders through NetSuite. The same as Tuesday, the same as Monday. Groundhog Day, but without the charming antics of Bill Murray.
"Better pour another cup of coffee," he thought, stretching his wrists to ward off impending carpal tunnel.
Jamie Davison, the Operations Manager at Altus, was sympathetic to her accountant’s pain. "There's got to be a better way. This isn't what running a business is supposed to be like!"
Many ecommerce website owners know the feeling. The integration between your website and your ERP technically “works,” but it is off by just enough to cause you regular headaches.
And clicking. So. Many. Clicks.
The Context: Half-integrated Transactions
Altus Brands sells outdoor sporting equipment, especially specialized hearing protection and rifle accessories. The majority of their sales flow through the Amazon and Walmart online storefronts.
For years, Altus Brands has relied on an EDI integration to bring hundreds of orders a week from their Amazon and Walmart storefronts into NetSuite. Their EDI integration (TrueCommerce) would bring the orders into NetSuite, but then abandon the transaction halfway through, leaving significant manual work for their accounts receivable employee just to keep the system flowing:
“We had our Accounts Receivable employee processing all of our Seller Central FBA and Walmart WFS orders.” - Jamie Davison, Altus Brands
The problem was that TrueCommerce wasn’t able to pass along shipment updates from Amazon and Walmart or create the corresponding item fulfillment and invoice records. That is, the integration failed to finish the order-to-cash process in NetSuite. Without the item fulfillment and invoice, the sales order is really only the promise of an order, and doesn’t do the real, GL-impacting work needed to account for the order on their books.
It was as if NetSuite heard the first half of a conversation, but never the second half:
Integration: “Hey Mark, good to see you!”
NetSuite: “Great, Bill! How was your weekend?”
Integration: …
NetSuite: “Bill? Are you still there? Bill?”
Certainly not ideal.
The way Jamie had been handling these incomplete transactions was to have her accounts receivable employee sit at a computer and almost full-time manually create an Item Fulfillment and Invoice for each Sales Order that comes in from TrueCommerce. That is, Altus was dedicating a huge part of an employee’s time just finishing every single conversation for the integration.
Integration: “Hey, here’s your order from Amazon.”
NetSuite: “Great, thanks. What about the rest of it?”
Integration: …
Employee: “Fine, I’ll just type it in for you. Give me a few minutes.”
Employee: “Ok, I’m back. Here is the IF and the Invoice. Oh, wait – let me double check to make sure there isn’t a mistake on this one.”
Employee: “I’m pretty sure it’s right.”
Not only was helping the robots out not exactly exciting work, but the humans simply couldn’t keep up with the volume. As Jamie put it, “It was so overwhelming getting more behind by the day.”
Potential Solutions for Fixing TrueCommerce
When Jamie first brought up this problem to Anchor Group and asked for help, a few paths jumped out as being worth exploration.
Firstly, confirm with TrueCommerce that they weren’t able to create the Item Fulfillment and Invoice in response to a shipment update from Amazon.
TrueCommerce can’t do it, nor do they have a plan to add that feature.
Secondly, explore whether TrueCommerce could make a Cash Sale instead of a Sales Order. Cash Sales don’t need separate Item Fulfillments and Invoices; they are all in one. A whole conversation in one sentence.
TrueCommerce can’t do that either.
Thirdly, consider switching to a more capable integration, perhaps the NetSuite Connector (originally built by FarApp), which already supports shipment update flows from Amazon and Walmart.
At present, the other integration options worth considering cost too much to be worth it to Altus, given their order volume.
After the first three doors closed in our face, Jamie turned to Anchor Group with a simple question: "What if we could just teach NetSuite to finish the conversation itself?"
It was time to open a new door.
The Solution: Automate away the NetSuite clicks
We decided to automate the conversation completion process using a custom script.
That is, why not use NetSuite’s ability to run custom code to do the exact same thing that the AR employee is doing?
Except way cheaper, faster, and with fewer mistakes.
Obstacle: What about out-of-stock items?
This new door wasn’t perfectly clear, either, though. We realized that we had to consider inventory availability.
We knew we would be creating item fulfillment records to account for the way each order reduces the inventory on hand.
The products are stored at Amazon and Walmart warehouses prior to fulfillment, but they are still owned by Altus Brands until it is shipped, so Altus Brands is tracking the inventory quantity associated with Amazon and Walmart locations in NetSuite. Therefore, each shipment needs to decrease the inventory quantity on hand of the appropriate item in NetSuite – this is a key function of an Item Fulfillment record.
Although in a perfect world the inventory shouldn’t be marked as fulfilled until it is actually shipped out to the end customer, there is such a small delay between the order being placed and the Amazon or Walmart warehouse shipping the order that marking the order as fulfilled immediately was a “close enough” kind of solution. It got the books right.
But what should happen if an order comes in for more than the available inventory?
The way Altus Brands decided to handle this edge case is to have the script check for availability first. Orders for unavailable inventory are flagged by the script and set aside for a quick manual review—a minor hassle compared to manual processing every order.
“And I love the fact that you were able to set it up that if there was no stock in the warehouse, it leaves the SO pending fulfillment. Makes it an easy double check for inventory of both those warehouses!” - Jamie, Altus Brands
So, the inventory availability question is now dealt with. Nice.
Solution details: an automated conversation-finisher
Jamie wanted real-time order processing—no delays, no batches, just instant completion. We designed a userEvent script that would spring into action the moment a new Amazon or Walmart order arrived, automatically creating the necessary Item Fulfillment and Invoice records faster than any human fingers could click.
But what about those 1,000+ historical orders languishing in the system?
We were able to repurpose the userEvent code into a Map/Reduce script that could process all the old orders in one fell swoop.
Imagine a throbbing headache. Now imagine swallowing a magically effective aspirin. Now imagine the headache is instantly, totally gone. That's what it felt like when those 1,000+ orders were cleaned up before you even got back from the breakroom with fresh coffee.
“So excited that they didn’t have to be manually processed!” - Jamie
Historic record handling is a step that’s easy to miss in custom development; you can get distracted by the shiny new process and forget about the clean-up effort needed to align the existing system with the new way. Don’t ask me how I know that.
The result: slick NetSuite order processing
At last, relief.
“The way we have it set up now,” exclaims Jamie, “Accounts Receivable can do their actual job.”
Freedom like that is magic. Software really is a powerful tool to improve human work, and the NetSuite ecosystem is no exception.
“Anchor Group is an awesome company to use for NetSuite development,” shares Jamie. “I had the pleasure to work with Grant Steele and his team on setting us some automation projects and they were great!” - Jamie
Easy ROI math: totally worth it, NetSuite automation
According to Jamie, this little project is now easily saving Altus Brands $30-40k a year. Every year.
Even better news: these cost savings will scale as Altus’s transaction volume grows. At twice their current size, the savings would be twice as much. Plus, they eliminated a possible bottleneck to being able to handle that revenue growth. What a great position for Altus to be in!
Takeaways from this NetSuite automation project
- If repetitive processes are draining your team's energy, there's almost certainly a better way.
- The ROI on smart automation can be felt immediately, and it scales with your business growth.
- If you can’t easily automate 100% of cases, don’t let the complexity of that last 1% hold you back from automating 99%. Take the wins you can get.
- NetSuite customization doesn't have to be intimidating to deliver dramatic results. We did this with just two simple scripts, and the second one was half-copied from the first one.
- Magic is real. (At least, that's what our clients tell us.)
Conclusion
Altus’ old NetSuite solution just wasn’t working. Half-integrated Amazon and Walmart ecommerce orders required nearly half an FTE just to process in NetSuite. And beyond monetary costs (to the tune of $30-40k per year), the accounting team simply couldn’t keep up and fell several months behind.
With two custom scripts deployed, Jamie (Operations Manager at Altus Brands) could breathe a sigh of relief. All the orders – old and new – are now processed automatically. No more getting months behind. No more tedious and error-prone manual processing.
Their NetSuite solution now works the way it should: smooth and automated.
Is someone at your company stuck in a NetSuite Groundhog Day? Anchor Group can help break the cycle. Contact our team to share your pain and find a solution together.
