我正在用 PHP 开发一个电子商务网站,我想实现以下功能:如果用户未登录,他可以将产品添加到购物车,并且在登录后仍然拥有这些产品。此外,该功能必须以相反的方式工作:用户登录,然后将产品添加到购物车。
我认为执行此操作的一个好方法是使用会话 ID,但经过一些测试后发现这不是最好的方法。
有什么想法吗?
谷歌帮不了我。我只找到这个链接:http : //flylib.com/books/en/2.522.1.56/1/
那么,一旦出现问题 - 为什么我们需要划分 Product 和 Item ?
architecture shopping-cart database-design design-patterns domain-driven-design
我试图在Magento的购物车中显示原始单价时遇到问题.默认情况下,Magento只显示特价,但我也想显示原价以突出节省.
我知道哪个模板需要更改,这是/template/checkout/cart/item/default.phtml.
在第145行显示
<?php
echo $this->helper('checkout')->
formatPrice($_incl-$_item->getWeeeTaxDisposition())
?>
Run Code Online (Sandbox Code Playgroud)
显示特价.我只是不知道显示原价的语法.
我正在创建一个按钮,在单击时提交AJAX请求以更新购物车.
问题是,如果用户快速连续多次点击,脚本将无法更新它(例如,在2秒内点击10次,仅添加两次项目).
我想知道是否还有排队ajax请求?
我是prestashop的新手.我已经安装并将产品添加到商店.但是,当我尝试结帐时进行测试时,它说"没有运营商提供给您选择的地址." 我需要
- 所有货到付款
- 我们自己的运费
- 固定运费说2美元.
我怎样才能达到上述要求.
我有以下代码来使用JavaScript
. 有一个结帐链接,用于getcookie()
检查存储的 cookie 的值。当 cookie 中没有任何内容时,请单击链接警报进行输入。如果在输入框中未输入任何值并点击“添加到购物车”,则验证完成并发出错误消息警报。
由于某种原因,cookie 没有从输入字段获取值。我尝试了很长一段时间,但无法调试代码。最后只显示一个空的警告框。我很欣赏任何调试。提前致谢。
<script type="text/javascript">
var value;
var productID;
function setItem(abd) {
value = abd.value;
productID = abd.getAttribute("productID");
var intRegex = /^\d+$/;
var numberOfItems;
if (!intRegex.test(value) || (value <= 0)) {
alert('Please Enter valid numberofitem');
} else {
numberOfItems = value;
}
}
function getCookie() {
if (value == undefined) {
alert("There is nothing in the shopping cart!");
} else {
var cookieArray = document.cookie.split(';');
var printHolder = "";
for (var …
Run Code Online (Sandbox Code Playgroud) 工作环境:PHP5面向对象,MVC模式,Yii框架
购物车:每种产品的数量和价格列表.运输车的作用只是将产品放入其中,如果用户想要购买物品,则:
购物车手柄:
购物车不处理:
问题是:如何设计它是高效和安全的?
创建一个sql表并存储:
在mysql上创建一个事件,删除日期时间> 30分钟的每一行.
然后,为了获得购物车,您可以使用当前会话ID从表中获取所有项目,并创建一个foreach()来获取所有项目.
将所有购物车信息保存在cookie中
在我看来,选项1比选项2更安全但消耗更多的资源并且可能使SQL数据库暴露于攻击(创建溢出数据库的大量新会话).选项2暴露于cookie注入,但需要较少的资源并向用户公开信息.
还有其他/更好的方法吗?
我正在使用Crinsane/LaravelShoppingcart
Laravel 5。当我尝试将项目添加到购物车时,它会显示错误
非静态方法 Gloudemans\Shoppingcart\Cart::add() 不应静态调用,假设 $this 来自不兼容的上下文
任何帮助解决这个问题..
我正在使用laravel进行在线购物项目,但是这里有一个问题, 我想如果用户将产品添加到购物车中,并且已经有相同的产品添加数量,
但是在我的项目中:如果用户将产品添加到购物车中并且已经拥有相同的产品,它将在会话中添加新的价值项
数组:
array:3 [?
0 => array:5 [?
"id" => 7
"nama_product" => "adssdsadxx"
"harga" => 13
"pict" => "s.gif"
"qty" => 1
]
1 => array:5 [?
"id" => 7
"nama_product" => "adssdsadxx"
"harga" => 13
"pict" => "s.gif"
"qty" => 1
]
2 => array:5 [?
"id" => 7
"nama_product" => "adssdsadxx"
"harga" => 13
"pict" => "s.gif"
"qty" => 1
]
]
Run Code Online (Sandbox Code Playgroud)
我想要这样(如果用户将产品添加到购物车中并且已经有相同的产品将被添加数量数量):
数组:
array:1 [?
0 => array:5 [?
"id" => …
Run Code Online (Sandbox Code Playgroud) 我是 Laravel/Livewire/Jetstream 的新手,我正在尝试按照本[教程](https://lightit.io/blog/laravel-livewire-shopping-cart-demo/)创建一个购物车项目。我在虚拟机中使用 Laravel 8/ OS Ubuntu。\n当我尝试运行此命令时,出现异常错误“未定义的变量:工厂”php artisan migrate:fresh --seed
错误内容
\nSeeding: Database\\Seeders\\ProductSeeder\n\n ErrorException \n\n Undefined variable: factory\n\n at database/factories/ProductFactory.php:7\n 3\xe2\x96\x95 /** @var \\Illuminate\\Database\\Eloquent\\Factory $factory */\n 4\xe2\x96\x95 use App\\Models\\Product;\n 5\xe2\x96\x95 use Faker\\Generator as Faker;\n 6\xe2\x96\x95 \n \xe2\x9e\x9c 7\xe2\x96\x95 $factory->define(Product::class, function (Faker $faker) {\n 8\xe2\x96\x95 return [\n 9\xe2\x96\x95 \'name\' => $faker->word,\n 10\xe2\x96\x95 \'description\' => $faker->text(180),\n 11\xe2\x96\x95 \'price\' => $faker->numberBetween(50, 100)\n\n 1 database/factories/ProductFactory.php:7\n Illuminate\\Foundation\\Bootstrap\\HandleExceptions::handleError()\n\n +2 vendor frames \n 4 [internal]:0\n Composer\\Autoload\\ClassLoader::loadClass()\n
Run Code Online (Sandbox Code Playgroud)\n作曲家.json 文件
\n "autoload": {\n …
Run Code Online (Sandbox Code Playgroud) shopping-cart ×10
php ×4
laravel ×2
ajax ×1
architecture ×1
carrier ×1
cookies ×1
database ×1
html ×1
javascript ×1
jquery ×1
laravel-5 ×1
magento ×1
mysql ×1
prestashop ×1
security ×1
session ×1
setcookie ×1
shipping ×1
virtualbox ×1
yii ×1