<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="60172" data-post-id="60172">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="TdXiong" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  TdXiong
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>In java world, there is <a href="http://ofbiz.apache.org" rel="noopener nofollow ugc">ofbiz.apache.org</a> and <a href="http://moqui.org" rel="noopener nofollow ugc">moqui.org</a> available, for building ecommerce and erp.<br>
Is it possible to build something like them in elixir? What is the advantage and shortage by doing it in elixir?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="60172" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/resources-for-building-an-e-commerce-store-in-phoenix/1813/33">Post #32</a>
	                </div>
	            </div>
              <div id="likers-container-60172" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="60172"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #32"></div>
  </section>
</div>
    <div class="postbit" id="60197" data-post-id="60197">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="acrolink" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/acrolink/120/8985_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  acrolink
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="TdXiong" data-post="33" data-topic="1813">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/t/d9b06d/48.png" class="avatar"> TdXiong:</div>
<blockquote>
<p>What is the advantage and shortage by doing it in elixir?</p>
</blockquote>
</aside>
<p>Takes less time to compile and run an Elixir code compared to Java. So, faster development.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="60197" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/resources-for-building-an-e-commerce-store-in-phoenix/1813/34">Post #33</a>
	                </div>
	            </div>
              <div id="likers-container-60197" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="60197"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #33"></div>
  </section>
</div>
    <div class="postbit" id="60353" data-post-id="60353">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="abitdodgy" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/abitdodgy/120/24328_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  abitdodgy
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I don’t have anything concrete in mind yet, but I want to experiment with a couple of things. Initially, I want to broadcast offers in real-time.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="60353" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/resources-for-building-an-e-commerce-store-in-phoenix/1813/35">Post #34</a>
	                </div>
	            </div>
              <div id="likers-container-60353" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="60353"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #34"></div>
  </section>
</div>
    <div class="postbit" id="60356" data-post-id="60356">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="abitdodgy" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/abitdodgy/120/24328_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  abitdodgy
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Thanks. I did build some functionality in React, then <a href="https://codesandbox.io/s/j4vylzv9x5" rel="noopener nofollow ugc">React and Redux</a>, and then I went back to Phoenix HTML when it got painful to make progress. I ditched React and Redux because of the overhead. I wrote a couple of vanilla JS classes, barely 40 lines each, that replaced all that react stuff above. My app has some photo tagging functionality, but it’s not so rich that it required React. I added Turbolinks and the app became so fast and responsive that it became almost indistinguishable from a clientside app, so I stuck with it.</p>
<p>My advice about building from scratch is to only do it if it aligns with your objectives. I’m interested in learning and building something unique. I crave the learning and building experience. If I were looking at this project as an entrepreneur, I would build and test faster, and make decisions to move on or iterate further constantly. For now, I’m happilly letting this thing organically grow and so far it seems to be working out well.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="60356" data-batch-url="/posts/batch_likers">
                        4
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/resources-for-building-an-e-commerce-store-in-phoenix/1813/36">Post #35</a>
	                </div>
	            </div>
              <div id="likers-container-60356" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="60356"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #35"></div>
  </section>
</div>
    <div class="postbit" id="60412" data-post-id="60412">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="dsignr" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/dsignr/120/5311_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  dsignr
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>In my use case, I use this reference diagram (taken from Google Images for the sake of an example)</p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/2X/d/da9a81b60f4bcb28349ade46403e133c17ccdb4a.jpg" data-download-href="https://forum.elixirforum.com/uploads/default/da9a81b60f4bcb28349ade46403e133c17ccdb4a" title="DB diagram cart database.jpg" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/original/2X/d/da9a81b60f4bcb28349ade46403e133c17ccdb4a.jpg" width="514" height="486"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">DB diagram cart database.jpg</span><span class="informations">514×486 42.5 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div><br>
I think it’s a simple design. It’s also pretty easy to take things from here, add more variables, etc.<p></p>
<p>The biggest challenge in building your own E-Commerce solution would be order fulfilment. It’s easily the most time consuming. In my case, I sell digital and physical products, so we’re talking about an Amazon clone, and both (offline and online) fulfilment methods are of course, drastically different.</p>
<p>Also, as with RoR, if you have (and you will have) 2+ layers of nested models, then it will consume a lot of your time. For example, a <code>product</code> has many <code>variants</code> and each <code>variant</code> will have many <code>images</code>. So, if you have a create product form that will also allow you to create an image and variant, then you will need to work on pretty complex logic.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="60412" data-batch-url="/posts/batch_likers">
                        3
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/resources-for-building-an-e-commerce-store-in-phoenix/1813/37">Post #36</a>
	                </div>
	            </div>
              <div id="likers-container-60412" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="60412"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #36"></div>
  </section>
</div>
    <div class="postbit" id="60413" data-post-id="60413">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="dsignr" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/dsignr/120/5311_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  dsignr
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I agree about the payment gateways part. Unless you’re based in a Stripe-supported country, you’ll be in so much pain since most Payment gateways are incompetent, built on legacy technology. Take PayPal for example, they have the worst possible code quality. Their APIs are almost always unreliable and slow. I wouldn’t be surprised if you tried to integrate them and saw a drop in conversions. A dirty solution would be to incorporate a company in a country like USA or Singapore which are business friendly and setup your payment gateway under them. But, you will need to decide if the bureaucracy and compliance of your company with the business laws would be worth it (hiring a tax accountant, etc) the cost trade off.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="60413" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/resources-for-building-an-e-commerce-store-in-phoenix/1813/38">Post #37</a>
	                </div>
	            </div>
              <div id="likers-container-60413" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="60413"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #37"></div>
  </section>
</div>
    <div class="postbit" id="60414" data-post-id="60414">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="acrolink" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/acrolink/120/8985_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  acrolink
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="dsignr" data-post="37" data-topic="1813">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/dsignr/48/5311_2.png" class="avatar"> dsignr:</div>
<blockquote>
<p>In my use case, I use this reference diagram (taken from Google Images for the sake of an example)</p>
</blockquote>
</aside>
<p>So, at any given time the user will have one shopping cart. Thanks for sharing the diagram. I hope <a class="mention" href="/u/abitdodgy" rel="nofollow">@abitdodgy</a> would share his model also. I think attributes, variants, colors, sizes, weights and associated costs need much coding to be implemented fully.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="60414" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/resources-for-building-an-e-commerce-store-in-phoenix/1813/39">Post #38</a>
	                </div>
	            </div>
              <div id="likers-container-60414" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="60414"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #38"></div>
  </section>
</div>
    <div class="postbit" id="60430" data-post-id="60430">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="hassan" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/hassan/120/287_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  hassan
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<blockquote>
<p>attributes, variants, colors, sizes, weights and associated costs need much<br>
coding to be implemented fully.</p>
</blockquote>
<p>Exactly. If you think about separating concerns, one piece of what<br>
you’re building is an inventory management system tailored to the<br>
types of products involved.</p>
<p>The “shopping cart” is separate, and fairly simple by comparison.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="60430" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/resources-for-building-an-e-commerce-store-in-phoenix/1813/40">Post #39</a>
	                </div>
	            </div>
              <div id="likers-container-60430" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="60430"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #39"></div>
  </section>
</div>
    <div class="postbit" id="60467" data-post-id="60467">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="TdXiong" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  TdXiong
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>For data model, I recommend to check out the Moqui data model-mantle udm(universal data model). It looks complicated but is good for future expand.</p>
<p>For example, product price can be put in seperate productPrice table, so you can record prices of different time period by defining fromDate, thruDate. Images, warnings, terms and conditions, warranty, specification, meta keywords, meta descriptions… can be put in seperate productContent.I am trying to get myself familiar to it and it looks great. Some introduction of the data model can be found in the PDF file in <a href="http://moqui.org" rel="noopener nofollow ugc">moqui.org</a> homepage, mantle-udm can be found on github. It might be helpful for your reference.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="60467" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/resources-for-building-an-e-commerce-store-in-phoenix/1813/41">Post #40</a>
	                </div>
	            </div>
              <div id="likers-container-60467" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="60467"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #40"></div>
  </section>
</div>
    <div class="postbit" id="60547" data-post-id="60547">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="acrolink" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/acrolink/120/8985_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  acrolink
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="TdXiong" data-post="41" data-topic="1813">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/t/d9b06d/48.png" class="avatar"> TdXiong:</div>
<blockquote>
<p>Some introduction of the data model can be found in the PDF file in <a href="http://moqui.org" rel="noopener nofollow ugc">moqui.org</a> homepage</p>
</blockquote>
</aside>
<p>I could not find the <code>PDF</code>. I am tempted to start coding my own e-commerce Phoenix application with some JS driven front-end but I believe that much planning work must be done on modelling the whole thing first, to specify the tables/fields needed for an application of this sort.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="60547" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/resources-for-building-an-e-commerce-store-in-phoenix/1813/42">Post #41</a>
	                </div>
	            </div>
              <div id="likers-container-60547" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="60547"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #41"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <a class="load-more-button" data-turbo-stream="true" href="/topics/1813/load_more?page=5">Load more posts (24 remaining)</a>
</div></template></turbo-stream>