ruby-on-rails – 电子商务应用设计:如何在二手商品网站上管理
我正在使用
Ruby on Rails和PayPal API完成购买的二手商品电子商务市场.所以基本上这个交易是人们可以买卖他们的东西,比如eBay或Half.com.所有项目都被使用.这是我的问题:二手货物意味着每个商品都是独一无二的 – 至少在卖方通常只会携带1件已售出的商品的意义上.这给我的问题,对于以前遇到这种问题的任何开发人员来说,我应该如何处理以下情况:
卖家列出了他的运动衫 现在,我如何处理Person#2?显然,他不能看出同样的运动衫,因为卖家只有1件运动衫.我想知道的是我应该如何处理这种情况.到目前为止,我已经提出了两种可能的解决方案,但对我来说似乎也不令人满意. (顺便说一句,添加一个用户的当前购物车是会话变量可能是相关的) 选项#1:当人#1将运动衫添加到他的购物车时,您可以使用布尔型字段(例如available = false)来标记运动衫.这样做的缺点是用户可以将一个项目添加到他的购物车,然后闲置.因此,在人#1的购物车到期之前,没有人可以购买该商品. 选项#2:当我从PayPal获取IPN时,运动衫只被标记为不可用.这样做的缺点是,您理论上可以将PayPal中的#1和#2人员一次性检出,因此他们都会购买运动衫,直到获得IPN才知道我有出售产品两次. StackOverflow认为什么?有没有人有这方面的经验可以提供一些洞察力? 解决方法
这是交易 –
卖家列出了他的运动衫 在我看来,处理这种情况的一种方式是(哪种是您的选项#1的一种升级版) 当人1在其购物车中添加物品时,您将(如果不是,则应该)更改订单状态,即购物车,地址,付款,完成等. 所以当人物1将物品A添加到他们的购物车(状态:在购物车)中阻止他人10分钟(人2)将他们添加到他们的购物车.现在,您需要使用rone脚本或延迟作业在您的服务器上运行的crone作业检查每个产品,在这种情况下,订单表中的项目A在购物车状态为10或超过10分钟,并将这些产品从那行.这将使其他人(人员2)将该物品添加到他们的购物车.并有其他人(人2)和人1更新关于你的这个10分钟冲洗事情的过程有某种通知.例如:项目1将在运行到人员2的时间计数器中??可用,并且项目1将在运行到人员1的计时器中进行.这个过程将使用户心中有一种紧迫感,您可以控制您的库存从没有出售的物品超过手数/数量.您可以查看本网站的实时和正在运行的实施 – http://www.thepeacockparade.com/ 希望它给你一个公平的想法来处理这种情况.是的,如果你有更好的方式做同样的事情,请保持我更新,因为我也在寻找升级. 谢谢 性能更新 实施此过程后,您的网站可能会遇到一些性能问题.一种方法,我想出了一种保持应用程序运行的方式,为您的客户服务,同时同步的后台进程是,如果您使用亚马逊rds或任何其他云数据库服务,您可以完全拥有两个不同的应用程序服务器.一个用于您的客户服务,一个用于执行后台进程,如清理临时数据,文件,耙机任务,上传数据等.由于您的应用程序数据库完全不在应用程序服务器之外,因此可以从两个应用程序更新.因此,它将使您的主要应用程序为其用户提供更好的服务,而不是为后台进程使用的内存挨饿. 更新数据库设置 当涉及数据库,表和关联时,Rails非常棒.如果你是新来的亚马逊云数据库服务,那么在这里检查他们的计划:http://aws.amazon.com/rds/pricing.最好的部分是关于你的数据库在亚马逊rds是 – >您可以自由选择近端点/服务器位置 要设置一个亚马逊rds数据库,请访问您的亚马逊rds控制台:https://console.aws.amazon.com/rds/home.从页面左侧的导航窗格中选择您的首选区域.点击“启动数据库实例”按钮,选择你喜欢的数据库并按照其余的流程,即选择实例类型等. 现在,如果你的rds实例运行,你可以看到一个这样的端点:database-name.random-string.region-endpoint.rds.amazonaws.com.在你的rails应用程序中编辑和更新你的config / database.yml到这个: production: adapter: mysql2 host: database-name.random-string.region-endpoint.rds.amazonaws.com encoding: utf8 reconnect: false database: databse-name username: master-username password: password 看起来很惊讶?对,就是那样!!您都设置为使用您的应用程序与您的新的亚马逊rds数据库实例.现在rake db:创建测试连接和rake db:migrate来创建你的表. 在这里,我想再增加一件事.如果你想让你的生活更美好,那么你也应该使用亚马逊s3(简单的存储服务).这是非常便宜和可靠的,请看这里:http://aws.amazon.com/s3/ 请享用!! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |