如何在 OpenCart 中将购物车项目作为单个订单插入


how to insert cart items as individual orders in opencart

>im 使用 OpenCart 建造一家小商店。 我目前只允许将 1 种产品添加到购物车中,因此当用户添加不同的产品时,它会用新产品替换。 但允许更改该产品的数量。

我需要做的是,一旦一个人成功购买了数量为 eg; 3 的物品产品需要保存为 3 个不同的订单。

这在OC中可以做到吗? 如果是,有人可以指导我怎么做吗?

解决方案非常简单 - 当创建和确认订单而不是为数量为 XYZ 的产品创建一个订单时,请执行循环并仅存储一个产品数量的 XYZ 订单。

基本上,您将主要更改catalog/model/checkout/order.php::addOrder() - 这里的循环基本上将围绕整个函数体进行,例如:

for ($i = 0; $i < $data['products'][0]['quantity']; $i++) {
   // the rest of the method, but removing
   // foreach ($data['products'] as $product) - this is not needed anymore
}

还要返回一个新创建的订单 ID 数组,以便您事后确认它们......

然后,您需要修改所有使用的付款控制器,因为这些控制器正在确认订单 - 您需要更改它们以确认所有订单(添加它们时返回了哪些ID - 它们可能存储在会话中)。

虽然这可能需要一些时间(取决于您使用的付款方式数量),但这并不难。