Asilis Опубликовано 23 декабря, 2020 Жалоба Поделиться Опубликовано 23 декабря, 2020 Помогите дополнить запрос на импорт товаров при которых существующие товары которые в заказах (s_orders) не обновляются, а то клиенты из-заказа заходят на сайт, а там цена то выше то ещё страшнее ниже. Simpla последняя редкация. Обновление товара происходить по следующей схеме. // Если задан артикул варианта, найдем этот вариант и соответствующий товар if(!empty($variant['sku'])) { $this->db->query('SELECT v.id as variant_id, v.product_id, p.choose as choose FROM __variants v, __products p WHERE v.sku=? AND v.product_id = p.id LIMIT 1', $variant['sku']); $result = $this->db->result(); if($result) { $choose = $result->choose; // и обновим товар if(!empty($product) && $choose != 1 ) { $this->products->update_product($result->product_id, $product); } // и вариант if(!empty($variant) && $choose != 1 ) { $this->variants->update_variant($result->variant_id, $variant); } $product_id = $result->product_id; $variant_id = $result->variant_id; // Обновлен $imported_item->status = 'updated'; } } // Если на прошлом шаге товар не нашелся, и задано хотя бы название товара if((empty($product_id) || empty($variant_id)) && isset($item['name'])) { if(!empty($variant['sku']) && empty($variant['name'])) { $this->db->query('SELECT v.id as variant_id, p.id as product_id, p.choose as choose FROM __products p LEFT JOIN __variants v ON v.product_id=p.id WHERE v.sku=? LIMIT 1', $variant['sku']); } elseif(isset($item['variant'])) { $this->db->query('SELECT v.id as variant_id, p.id as product_id, p.choose as choose FROM __products p LEFT JOIN __variants v ON v.product_id=p.id AND v.name=? WHERE p.name=? LIMIT 1', $item['variant'], $item['name']); } else { $this->db->query('SELECT v.id as variant_id, p.id as product_id, p.choose as choose FROM __products p LEFT JOIN __variants v ON v.product_id=p.id WHERE p.name=? LIMIT 1', $item['name']); } $r = $this->db->result(); if($r) { $product_id = $r->product_id; $variant_id = $r->variant_id; $choose = $r->choose; } // Если вариант найден - обновляем, if(!empty($variant_id)) { if ($choose != 1) { $this->variants->update_variant($variant_id, $variant); $this->products->update_product($product_id, $product); } $imported_item->status = 'updated'; } Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.