Opencart 如何将SKU添加到发票

Opencart 如何将SKU添加到发票,opencart,opencart-3,sku,Opencart,Opencart 3,Sku,在OpenCart 3.0.2.0中,我试图让发票页面显示每个产品的“SKU”变量。该变量与其他产品数据一起存在于数据库中,但由于某些不正当的原因,OpenCart没有显示该变量的选项。您可以显示产品名称、价格、库存可用性等,但不能显示SKU 有人知道如何在OC 3中特别做到这一点吗?他们已经将模板从PHP切换到Twig,我不确定我做错了什么,但我在OC2.0中使用的方法在3.0中不起作用。你是说它出现在admin/view/sale/order\u invoice.Twig中吗 如果是这样,首

在OpenCart 3.0.2.0中,我试图让发票页面显示每个产品的“SKU”变量。该变量与其他产品数据一起存在于数据库中,但由于某些不正当的原因,OpenCart没有显示该变量的选项。您可以显示产品名称、价格、库存可用性等,但不能显示SKU


有人知道如何在OC 3中特别做到这一点吗?他们已经将模板从PHP切换到Twig,我不确定我做错了什么,但我在OC2.0中使用的方法在3.0中不起作用。

你是说它出现在admin/view/sale/order\u 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\u invoice.twig中,添加您希望其显示的位置:

{{ product.sku }}

当然,你必须按照你认为合适的方式对它进行样式化或制作一列。希望这能为您指明正确的方向。

您是说它出现在admin/view/sale/order\u 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\u invoice.twig中,添加您希望其显示的位置:

{{ product.sku }}

当然,你必须按照你认为合适的方式对它进行样式化或制作一列。希望这为您指明了正确的方向。

如果您希望SKU在管理端的发票中排序,那么您必须修改如下:

admin/model/sale/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;
}
admin/controller/sale/order.php

查找:

在此之后加上:

`'sku'  => $product['sku'],`
在admin/view/sale/order\u invoice.twig中

加:


因此,您必须首先从产品表中获取sku,这在默认订单发票页面中不可用。

如果您希望sku位于管理端的订单发票中,则必须进行如下修改:

admin/model/sale/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;
}
admin/controller/sale/order.php

查找:

在此之后加上:

`'sku'  => $product['sku'],`
在admin/view/sale/order\u invoice.twig中

加:

因此,您必须首先从产品表中获取sku,这在默认订单发票页面中不可用