2015-06-06 26 views
0

好吧,所以我的网站就像“发布您的订单”,而不是通常的在线支付方式,因为我将首先发运商品,然后是这里的货运服务提供的货到付款现金。如何存储客人结帐?

我有一个用户表,有 USER_ID,电子邮件,密码,姓和名等

具有 ORDER_ID,user_id_fk,ORDER_STATUS,order_placed,address_id_fk的user_order表

的ORDER_ITEMS表具有 ORDER_ITEM_ID,order_id_fk,PRODUCT_ID,数量,size_id_fk

地址表 ADDRESS_ID,user_id_fk,街道,城市,省等

因此,如果用户注册可以很容易地做到这一点,因为我只想链接他们的USER_ID到user_order表,并从他们的address_book

我的问题是地址,我如何做,与客人结账?我试图避免他们被迫注册,即使它很容易。

现在我想到的只是将它们插入到用户表中,但是它们的密码为NULL,只需创建一个来宾组并将其放入该组。

但是这可能会导致问题,我的用户表中的电子邮件必须是唯一的,来宾结帐可能会从同一封电子邮件中发生多次嘘......现在是什么?

我应该只是将列添加到订单表?另一个,姓名,电子邮件地址?所以它不绑定到用户?这是可能的,但有一个功能,我希望注册用户有...跟踪他们的订单历史记录。

请帮忙......谢谢:D;)

回答

2

我“德鲁皮尔斯”,而是来自对方同意给你另一种选择

第一你应该了解电子商务平台(例如Opencart的),他们是如何推动这个东西。

第二你不需要给每个客人添加到用户表如下:

客人没有任何权利查看订单或历史...等

2-电子邮件字段必须在结帐时强制性的,并且有通知电子邮件也会发送给他(也许你会添加确认电子邮件..由你决定)。

3-所有你需要在你的数据库保存的是顺序表中的顺序细节

4-你和客户之间的过程将通过他的电子邮件

他没有正确的跟踪任何命令或看到他的活动,直到他成为一名真正的用户

6-为了细节必须始终关于用户的所有细节,即使他是真实的用户(它将被复制为真实用户的数据,但用户可以随时更改他的电子邮件或电话号码,他不能为旧的订单执行它,所以你总是知道订单的真正的历史)

7在用户表,只有一个guest用户,但是在订单表中有很多订单,每个订单都有其详细信息,电子邮件,电话号码,,, etc

+0

但是,作为管理员,我还想跟踪包括他们详细信息在内的所有订单。这是使其变得复杂的原因之一 – xxRockOnxx

+0

而且我也需要他们的详细信息,所以我会知道在哪里以及向谁发货 – xxRockOnxx

+1

6 ....数字6 ......就是这样!我会尝试那个!我只是认为这是多余的。谢谢!最后,有人证实了我的疑惑!谢谢! – xxRockOnxx

2

最主要的是赚钱。如果他们想留下一个客人让他们。提醒他们只有注册的用户才能获得促销活动并查看以前的活动。以前的活动,而不是注册用户将不会在稍后看到。

假设他们有10个来自该电子邮件地址的订单。那么怎么样,把他们作为新用户每个时间,并把他们的电子邮件地址在那里。将该用户标记为客人。因此为[email protected]提供了10位新的访客类型用户。没有电子邮件出去。毕竟,人们可能使用一些可怜的奶奶的电子邮件地址欺骗系统。

现在他们想成为注册用户。电子邮件发送,他们必须点击它成为一个用户(电子邮件链接)。

现在第11次购买来自注册用户([email protected])。订单历史记录:1个订单。

似乎对我来说是海峡前进。

+0

感谢您的快速响应,这正是我一直在想的,我只是尝试一下。如果发现任何故障,我会回来 – xxRockOnxx

+0

我经常想订购一些没有注册麻烦的东西。我迟到了出门或不想要电子邮件(确认订单#会很好:>),所以我不下订单因为我只是想得到它并继续前进。如果我不能分割 – Drew

+0

好吧,现在我发现这个问题,当注册系统查找电子邮件时,如果它在那里意味着它正在使用中,并且会显示错误,表明它已经在使用 – xxRockOnxx

0

我会建议按照您的想法做,只需添加用户并添加一列'guests' int(1)如果用户是来宾,则此值设置为1,如果不是,则为0

然后,只需将密码设置为空字符串。

+0

查看评论i张贴在@德鲁皮尔斯。当有人最终决定注册该电子邮件时,我会遇到电子邮件不唯一的问题 – xxRockOnxx

1

由于可用性的原因,你可能实际上想要用户能够看到过去的订单与他们的电子邮件地址。结算电子邮件字段回答了“您授权查看此订单的对象?”这个问题。通过这种方式,[email protected]可以下几个订单,然后一旦她实际注册(通过更改密码),作为访客的过去订单将在那里供她跟踪。因此,尝试这种流动,有时也被称为shadow profile模式:

  1. Word中的客人结帐页面,使之清楚,结算电子邮件地址的合法拥有者将能看到所有的订单放在使用该网站上地址。
  2. 如果地址不存在于您的users表中,请使用零密码哈希和空值confirmed_on日期创建该帐户。
  3. 此步骤根据您是否希望访客能够使用注册用户的电子邮件地址进行更改。
    • 如果是这样,请将is_guest列添加到user_order
    • 如果不是,并且如果confirmed_on不为空,则要求用户登录。这意味着confirmed_on之前的所有订单都是访客订单,并且之后的所有订单都是登录订单。
  4. 向客人发送包含密码重置链接的电子邮件收据。确保使用正确的SPF和DKIM记录。用类似这样的标签链接:

    注册以使用$ store_name管理您的订单。

    在极少数情况下,您可能会被列为您未投放订单的结算联系人。如果是这样,请点击此链接取消订单。

  5. 当用户第一次如下一份电子邮件密码重置链接,设置confirmed_on日期。

  6. 在登录用户的订单历史报告中,将每个订单明确标记为客人或注册。

如果有人谁不是[email protected]做客顺序进入[email protected][email protected]真正的主人将获得电子邮件回执,从而有机会取消。

另一种方法是将订单与会话而不是用户相关联。您可能已经创建了一个随机会话ID(并将其存储在cookie中)以区分客人的购物车与其他客人的购物车。因此,将您的user_order表中的user_id_fk更改为session_id_fk。然后将会话ID链接到您已使用的user_session表中的用户ID。

+0

这是我看到它的问题。奶奶@布拉下了订单。她必须拥有它。在系统中没有奶奶@等等。在技​​术上,科技让她感到困惑。未注册。之后还有其他几个命令作为grandma @ blah。也许是奶奶,或者是TheBigBad的狼。那么真正的奶奶@布拉与爷爷坐在一起,在他们“登记”之后点更多的蜡烛。爷爷说:“这些性玩具的订单是什么?”。由于没有分离或知道谁是谁,所以你被搞砸了。对于会话,请打扰 – Drew

+0

,奶奶说我的浏览器在哪里,哦,在这里,这是狐狸的事情,还是它是IE的东西(或可能在另一台电脑或女儿的房子)。不同的cookie信息。 – Drew

+0

@DrewPierce奶奶会从狼的第一个订单中获得电子邮件收据,从而有机会注册并取消它。我已经扩大了建议的措辞来解决这个问题。 –