In common. js новый метод, полученный из add (в основном product_id изменен на sku и addBySku называется)
'addBySku': function(sku, quantity) {
$.ajax({
url: 'index.php?route=checkout/cart/addBySku',
type: 'post',
data: 'sku=' + sku + '&quantity=' + (typeof(quantity) != 'undefined' ? quantity : 1),
//nothing else changed from 'add' method
В каталоге / контроллере / оформлении заказа / корзине. php получено из add метода. Просто получите product_id от sku , поместите его в сообщение и оставьте все остальное без изменений.
public function addBySku() {
$this->load->language('checkout/cart');
$this->load->model('catalog/product');
$json = array();
if (isset($this->request->post['sku'])) {
$product_id = (int)$this->model_catalog_product->productIDBySku($this->request->post['sku']);
} else {
$product_id = 0;
}
$this->request->post['product_id'] = $product_id;
//nothing else changed from 'add' method
In каталог / модель / каталог / продукт. php. Добавьте этот метод, который извлекает sku по product_id
public function productIDBySku($sku) {
$query = $this->db->query("select product_id from " . DB_PREFIX . "product where sku = '" . $this->db->escape($sku) . "'");
return $query->row['product_id'];
}
Надеюсь, что это поможет. Я не проверял это все же. Не забудьте вызвать правильный метод и передать sku
<!--<button type="button" onclick="cart.add('{{ product.product_id }}',-->
<button type="button" onclick="cart.addBySku('{{ product.sku }}',