Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public function ImportpricelistCSV($files = null)
- {
- if (empty($files)) {
- return 1;
- }
- //cоздаем объект csv
- $file = new \SplFileObject($files);
- //создаем массив с нужными нам данными для обновления товара
- $dataMasNeedInfo = [];
- foreach($file as $data){
- if(strlen(trim($data)) >= 2){
- $dataMas = explode(';', trim($data));
- $dataMasNeedInfo[] = [
- 'sku' => trim($dataMas[0]),
- 'quantity' => preg_replace("/(\D)/", "", trim($dataMas[5])),
- 'price' => preg_replace("/(\D)/", "", trim($dataMas[7])),
- ];
- }else{
- break;
- }
- }
- //проверяем, есть ли данные с файла
- if(!empty($dataMasNeedInfo)){
- //по артикулу делаем поиск и если такой товар есть то обновляем данные
- foreach($dataMasNeedInfo as $dat){
- //делаем проверку есть ли артикул по которому будем искать товар
- if(!empty($dat['sku'])){
- // обновить имеющуюся строку данных
- $product = Product::findOne(['sku' => $dat['sku']]);
- //делаем проверку есть ли такой товар по такому артикулу в базе
- if(!empty($product)){
- $product->price = (!empty($dat['price'])) ? $dat['price'] : 0;
- $house_product = WarehouseProduct::findOne(['product_id' => $product->id, 'warehouse_id' => 1]);
- //делаем проверку по складе, потому что создавался пустой объект
- if(!empty($house_product)){
- //делаем проверку есть ли количество, если есть то убераем галочку в товаре "Неограниченое кол-во (не считаются на складе)", если товара нет то ставим ее
- if(!empty($dat['quantity'])){
- $product->unlimited_count = 0;
- $house_product->in_warehouse = (float)$dat['quantity'];
- }else{
- $product->unlimited_count = 1;
- $house_product->in_warehouse = 0;
- }
- $house_product->save();
- }
- $product->save();
- }
- }
- }
- //делаем редирект
- $this->redirect('/shop/backend-product/index',302);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement