Asilis Posted December 23, 2020 Report Share Posted December 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'; } Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.