wallyfoo

wallyfoo

Multi-warehouse Inventory Management with Ash

I’m rebuilding an aging node online store with a mongo backend into an Elixir project with Postgres for the data layer. Since I can’t do anything the easy way, I’ve also decided to eschew my own patterns and use Ash to manage the framework stuff. NGL, I have been seduced by Ash conceptually, and I’m going to put it to the test with my company’s main means of making money.

One of the core problems of an online store that sells physical product is making sure you’re tracking that physical product accurately. We have multiple inventory locations that service different parts of the world. As such, these different warehouses have different quantities, constraints on amounts, buffers for oversell, that sort of thing.

I’ve been doing my research and have found what appears to be a reasonably robust inventory accounting method that can track all the stuff I need to track, lock availability when things are added to carts, the works.

I also don’t want to reinvent the wheel. I’m looking at the available extensions for Ash that are already out there, and I’m not seeing anything that really fits the bill. I could maybe make the Double Entry Accounting extension bend to my will, but I’m not super stoked about trying that angle. Do the seasoned Ash developers on the forum know of any off-the-shelf inventory systems?

Most Liked

carlgleisner

carlgleisner

Hey @wallyfoo,

While it’s not off-the-shelf – and perhaps too domain-specific for your use-case – maybe you’d want to check out this repo:

garrison

garrison

This is only tangentially related but I came across this blog post recently which is about using double-entry accounting for inventory management. Specifically using the Tigerbeetle database (which implements double-entry accounting) to manage ticket sales. Maybe you’ll find it interesting :slight_smile:

wallyfoo

wallyfoo

Very cool. Maybe double entry isn’t as wild an idea as I thought.

Where Next?

Popular in Questions Top

vertexbuffer
Hello, can anybody help here..? I have a list of players and I what to delete an element, but every for loop the list is reverting to ori...
New
skosch
To my knowledge, put_in, Map.update etc. all have the one limitation of not automatically creating intermediate keys when needed (for exa...
New
fireproofsocks
I’m working on defining a simple Ecto schema for a table (in PostGres), but I don’t see where I can define a column as NOT NULL. Conside...
New
Emily
I have VueJS GUIs with the project generated using Webpack. I have Elixir modules that will need to be used by the VueJS GUIs. I forese...
New
belgoros
I’m not a pro in using Regex and can’t figure out why the following behaviour happens, especially if we take into account the difference ...
New
bsollish-terakeet
Credo is smart enough to check for (something like) this: assert length(the_list) == 0 with this response: Checking if an enum is empt...
New
ashish173
I am using Ecto timestamps with postgres, I can see the timestamps() use the :naive_dateime but for my use case I wanted to store the ti...
New
jason.o
In the code below, if the create action is not set to accept “extra_key” as an input, it errors out with a message shown above. Is there ...
New
dblack
I’ve got an issue with an app and I’ve no idea of how to troubleshoot it. I’m hoping someone here might have seen something similar. I p...
New
WestKeys
Currently suffering from paralysis by [HTTP client] analysis. This is rather unusual in Elixirland as there tends to be consensus on the ...
New

Other popular topics Top

aadeshere1
I have a another noob question about loop. Since elixir is immutable, while loop is not directly possible. total = 10 while total != 0 ...
New
9mm
I am constructing a JSON object (map) and I need to conditionally set a field. I’m trying to write proper elixir-way code… and I’m at a l...
New
albydarned
Hello all! I am typing this post from my new MacBook Pro with the M1 chip. I’m loving it so far, and will probably use it as my daily dr...
New
jononomo
I am trying to figure out how Mix knows whether the environment is test, dev, or prod – where is this set? Thanks.
New
jerry
Good day to you all. I have been struggling to get a query involving like and ilike to work. Can anyone assist me on this, please? pro...
New
hariharasudhan94
lets say i have a sample like a = 20; b = 10; if (a > b) do {:ok, "a"} end if (a < b) do {:ok, b} end if (a == b) do {:ok, "equa...
New
jay1
Why is it that the mnesia database isn’t the most preferred database for use in Elixir/Phoenix?
New
shijith.k
I am trying to start a new phoenix project with elixir 1.9, but mix phx.new does not work. It says that ** (Mix) The task "phx.new" could...
New
Qqwy
Update: How to use the Blogs & Podcasts section You can post links to your blog posts or podcasts either in one of the Official Blog...
3271 126479 1222
New
sergio
Kind of like when jquery came out, it was super necessary. Existing drag and drop libraries have a bunch of baggage to support old browse...
New

We're in Beta

About us Mission Statement