gacelita / ventas Goto Github PK
View Code? Open in Web Editor NEWClojure ecommerce platform
License: Eclipse Public License 1.0
Clojure ecommerce platform
License: Eclipse Public License 1.0
Customers should be listed properly in the administration.
Make what's currently developed for the :clothing theme look nice in a typical smartphone (mine's a Samsung Galaxy Grand Prime if you need a reference).
Just add and apply these two plugins to have consistent formatting between contributors.
The priority is Stripe.
Create a component for adding a "Products in the same category" panel to the product page
Hiya,
(migrate-and-reindex!)
works partially on my machine.
Here's a repl session dump:
Two highlights:
DEBUG [org.elasticsearch.client.RestClient:59] - request [DELETE http://127.0.0.1:9200/ventas] returned [HTTP/1.1 404 Not Found] (migrate-and-reindex!)
Environment context:
transactor ~/ventas/datomic/config/transactor.properties
and elasticsearch
with no prior setup other than a stock install.What could it be going on?
Handle login/register for unregistered users, handle entering addresses, handle choosing a shipping method, handle choosing a payment method...surely you've seen this many times :)
Most likely the user profile pages in the frontoffice are broken in one way or another. Fix them and add the missing pieces. Take a look at existing and popular ecommerce stores to get an idea of what's missing.
As a bare minimum this should support importing and exporting products to/from Prestashop, Magento and WooCommerce. Not familiar with Shopify but it would be a good idea too.
ventas should have the option to automatically handle the stock when an order is confirmed. Right now there isn't even a stock field in the products :).
Caution: this should take into account the product variations.
Add or create a zoom component for the main image in the product page, similar to other online stores
Publish the internal ansible playbook used for the demo server, and document deployment in general.
Spotted by CIDER.
Does *w-o-r*
work for you?
Mainly for SEO purposes, see prerenderer
The dashboard should show items that need attention from the store's owner: pending customer questions, pending reviews to approve, pending orders to confirm / ship, and products that are marked as shipped but haven't arrived yet (whenever tracking info is available)
Ordered by feasibility / amount of work needed
In the Clojure side:
ventas.logging
)ventas.database.entity
pseudo-orm-thing (possibly taking things from the other ventas.database
namespaces)utils.images
but crediting optimus-img-transform
for the foundational workIn both sides:
server.ws
, which provides a req/response websocket abstractionIn the ClojureScript side:
ventas.routes
bidi generatorcomponents.notificator
components.form
, but it needs to handle more inputs/use-casesventas.plugins.api
)For the future:
Right now it's useless, as it only lists entity transaction events. The activity log should register more events and describe properly the ones it already registers.
For entity creation, a link to edit the entity could be provided, along with what data it included when it was created.
Same for updates: show what was updated. Show the time when this happened.
Both creation and update events should be far more semantic. If an user is created, is it because a user was registered? Or something else?
Email templates, email sending, email log
how to build the apps with shadow-cljs? any instruction detail? thanks
Although there are plugins, they don't do anything. They should allow conditional activation of optional features (endpoints, entity types...). The administration should allow this. The fixtures and migrations of the plugins should be handled automatically.
Reviews should contain "title", "description", "images" and "rating" fields. The plugin should show the reviews for a product in the product page, and allow the user to do basic CUD operations (create, update, delete) on their own reviews. An administration section should be added for listing the reviews. Reviews should be able to be moderated by a privileged user.
There are almost no tests. Shame on me.
Right now there are at least 2 CSS issues with the websocket web tool:
I'm leaving this issue undone for now, as it's very beginner friendly.
Simply, orders should be listed properly in the administration.
Remove :clothing theme hardcoding. Allow changing the current theme both in development and in production.
WS API requests should have an option to be "realtime", in the sense that they should return results as they are available (think Datomic or ES queries). This is partially implemented but not used or finished. Quite trivial to be honest, just needs to be used somewhere (most likely, the administration).
Allow users to ask questions to the store.
Task includes administration section (list pending questions and past threads) and frontoffice section (customer support button that sends the user to the customer support page, which has a form that lets him/her contact the store).
See other ecommerce platforms for references.
In the administration, there should be a section showing the current state of the background tasks.
Current background tasks:
The administration section should list these tasks and allow:
Allow creating many independent stores with just one ventas instance.
Each should have its database and its Elasticsearch index.
For each image I get a 500:
javax.imageio.IIOException: Can't read input file!
Perhaps they're Docker-only atm?
Allow creating product variations from the product page. Allow listing the product variations for a given product. Etc
2019-03-15 09:13:54.663 [main] INFO ventas.config - Loading configuration
2019-03-15 09:13:54.680 [main] DEBUG ventas.config - {:database {:url datomic:free://localhost:4334/ventas}, :server {:port 3450, :host localhost}, :elasticsearch {:index ventas, :port 9200, :host 127.0.0.1}, :auth-secret CHANGEME}
Error loading cider.piggieback: java.lang.RuntimeException: No such var: ieval/queue-eval, compiling:(cider/piggieback.clj:190:3)
Exception in thread "main" java.lang.RuntimeException: Unable to resolve var: cider.piggieback/wrap-cljs-repl in this context, compiling:(/private/var/folders/2g/191qqhsn24769l06q1jzy7tw0000gn/T/form-init1530137244909603440.clj:1:2980)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:7010)
at clojure.lang.Compiler.analyze(Compiler.java:6773)
at clojure.lang.Compiler.analyze(Compiler.java:6729)
at clojure.lang.Compiler$InvokeExpr.parse(Compiler.java:3881)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:7005)
at clojure.lang.Compiler.analyze(Compiler.java:6773)
at clojure.lang.Compiler.analyze(Compiler.java:6729)
at clojure.lang.Compiler$InvokeExpr.parse(Compiler.java:3881)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:7005)
at clojure.lang.Compiler.analyze(Compiler.java:6773)
at clojure.lang.Compiler.access$300(Compiler.java:38)
at clojure.lang.Compiler$LetExpr$Parser.parse(Compiler.java:6368)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:7003)
at clojure.lang.Compiler.analyze(Compiler.java:6773)
at clojure.lang.Compiler.analyze(Compiler.java:6729)
at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:6100)
at clojure.lang.Compiler$FnMethod.parse(Compiler.java:5460)
at clojure.lang.Compiler$FnExpr.parse(Compiler.java:4022)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:7001)
at clojure.lang.Compiler.analyze(Compiler.java:6773)
at clojure.lang.Compiler.eval(Compiler.java:7059)
at clojure.lang.Compiler.eval(Compiler.java:7052)
at clojure.lang.Compiler.eval(Compiler.java:7052)
at clojure.lang.Compiler.eval(Compiler.java:7052)
at clojure.lang.Compiler.load(Compiler.java:7514)
at clojure.lang.Compiler.loadFile(Compiler.java:7452)
at clojure.main$load_script.invokeStatic(main.clj:278)
at clojure.main$init_opt.invokeStatic(main.clj:280)
at clojure.main$init_opt.invoke(main.clj:280)
at clojure.main$initialize.invokeStatic(main.clj:311)
at clojure.main$null_opt.invokeStatic(main.clj:345)
at clojure.main$null_opt.invoke(main.clj:342)
at clojure.main$main.invokeStatic(main.clj:424)
at clojure.main$main.doInvoke(main.clj:387)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.lang.Var.applyTo(Var.java:702)
at clojure.main.main(main.java:37)
Caused by: java.lang.RuntimeException: Unable to resolve var: cider.piggieback/wrap-cljs-repl in this context
at clojure.lang.Util.runtimeException(Util.java:221)
at clojure.lang.Compiler$TheVarExpr$Parser.parse(Compiler.java:720)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:7003)
... 36 more
Subprocess failed
REPL server launch timed out.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.