在 OpenCart 3.0.2.0 中,我试图让发票页面显示每个产品的“SKU”变量。该变量与其他产品数据一起在数据库中,但由于某些不敬的原因,OpenCart 没有显示它的选项。您可以显示产品名称、价格、库存情况等,但不能显示 SKU。
有谁知道如何在 OC 3 中专门执行此操作?他们已经将模板从 PHP 切换到 Twig,我不确定我做错了什么,但我在 OC 2.0 中使用的方法在 3.0 中不起作用。
在 OpenCart 3.0.2.0 中,我试图让发票页面显示每个产品的“SKU”变量。该变量与其他产品数据一起在数据库中,但由于某些不敬的原因,OpenCart 没有显示它的选项。您可以显示产品名称、价格、库存情况等,但不能显示 SKU。
有谁知道如何在 OC 3 中专门执行此操作?他们已经将模板从 PHP 切换到 Twig,我不确定我做错了什么,但我在 OC 2.0 中使用的方法在 3.0 中不起作用。
如果您希望 SKU 在管理端的 order_invoice 中,则必须进行如下修改:
管理员/模型/销售/order.php
寻找 :
public function getOrderProducts($order_id) {
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_product WHERE order_id = '" . (int)$order_id . "'");
return $query->rows;
}
代替 :
public function getOrderProducts($order_id) {
$query = $this->db->query("SELECT op.*,p.sku FROM " . DB_PREFIX . "order_product op LEFT JOIN " . DB_PREFIX . "product p on op.product_id = p.product_id WHERE order_id = '" . (int)$order_id . "'");
return $query->rows;
}
管理员/控制器/销售/order.php
在
`public function invoice()`
寻找:
`$product_data[] = array(
'name' => $product['name'],`
之后添加:
`'sku' => $product['sku'],`
在 admin/view/sale/order_invoice.twig
添加:
`{{ product.sku }}`
因此,您必须首先从产品表中获取 sku,这在默认订单发票页面中不可用。
您是说它出现在 admin/view/sale/order_invoice.twig 中吗?
如果是这样,首先在第 518 行附近修改 admin/controller/sale/order.php:
foreach ($products as $product) {
$data['order_products'][] = array(
'product_id' => $product['product_id'],
'name' => $product['name'],
'model' => $product['model'],
'option' => $this->model_sale_order->getOrderOptions($this->request->get['order_id'], $product['order_product_id']),
'quantity' => $product['quantity'],
'price' => $product['price'],
'total' => $product['total'],
'reward' => $product['reward']
);
}
包括那里的某处(比如模型行之后,比如说),一行:
'sku' => $product['sku'],
然后在 admin/view/sale/order_invoice.twig 中添加您希望它出现的位置:
{{ product.sku }}
当然,您必须对其进行样式化或为它制作一个列。希望这会为您指明正确的方向。