munhgauzen Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 (змінено) Всем привет. Поомогите пожалуйста добавить условие в" бесплатную доставку" чтобы учитывалась не только минимальная сумма но еще и категория товара определенная: if (isset($this->request->post['free_total'])) { $data['free_total'] = $this->request->post['free_total']; } else { $data['free_total'] = $this->config->get('free_total'); } Змінено 4 серпня 2018 користувачем munhgauzen Надіслати Поділитися на інших сайтах More sharing options...
Gaziz Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 1 час назад, munhgauzen сказал: Всем привет. Поомогите пожалуйста добавить условие в" бесплатную доставку" чтобы учитывалась не только минимальная сумма но еще и категория товара определенная: if (isset($this->request->post['free_total'])) { $data['free_total'] = $this->request->post['free_total']; } else { $data['free_total'] = $this->config->get('free_total'); } Версия какая? Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 2.1 Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 13 минут назад, munhgauzen сказал: 2.1 В catalog/model/shipping/free.php нужно подгрузить товары $products = $this->cart->getProducts(); Потом проверить на категорию эти товары. И добавить проверку в: if ($this->cart->getSubTotal() < $this->config->get('free_total')) { $status = false; } Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 (змінено) Ок спасибо. Я так понимаю если категория называется Насосы то проверка будет выглядеть так? if ($this->cart->getSubTotal() < $this->config->get('free_total') && $this->cart->getProducts() == !categorу_id=20 ) { $status = false; } Змінено 4 серпня 2018 користувачем munhgauzen Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 2 минуты назад, munhgauzen сказал: Ок спасибо. Я так понимаю если категория называется Насосы то проверка будет выглядеть так? if ($this->cart->getSubTotal() < $this->config->get('free_total') && $this->cart->getProducts() == !$categories['Насосы'] ) { $status = false; } Вот тут получаем массив товаров в корзине: $products = $this->cart->getProducts(); Категории в массиве нет вообще, нужно по product_id найти id категории. Потом проверить что все товары принадлежат этой самой категории. Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 сори не посмотрел что каткгории обозначаются id но все равно выходит абракадабра ( Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 (змінено) ОНО? в данном случае категория насосы имеет id 20 $products = $this->cart->getProducts(); $categories = $this->model_catalog_category->getCategory($category_id); if ($this->cart->getSubTotal() < $this->config->get('free_total') && !$categories == 20) { $status = false; Змінено 4 серпня 2018 користувачем munhgauzen попытка 3 Надіслати Поділитися на інших сайтах More sharing options... mazein Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 1 минуту назад, nikifalex сказал: Этоже не пикабу всеже Но шутки-то хорошие 22 минуты назад, munhgauzen сказал: !$categories == 20 Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 спасибо всем за хорошие рекомендации. Разберусь выложу ответ. Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 18 минут назад, munhgauzen сказал: спасибо всем за хорошие рекомендации. Разберусь выложу ответ. $products = $this->cart->getProducts(); foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (!in_array(20, $product_categories)) { $status = false; } } Не проверял, но должно работать. 1 Надіслати Поділитися на інших сайтах More sharing options... Agatha65 Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 1 час назад, mazein сказал: Но шутки-то хорошие ага 2 часа назад, munhgauzen сказал: $this->cart->getProducts() == !categorу_id=20 Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 спасибо Gaziz . Направление дал верное, категорию мы получили, но только вот еще нужно подтягивать цену, вернее сумму товаров определенной категории чтоб условие соблюдалось, а так это условие мало полезно. Необходимо чтобы товаров определенной категории было на сумму не менее той что указана в условии: if ($this->cart->getSubTotal() < $this->config->get('free_total') ) Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 18 минут назад, munhgauzen сказал: спасибо Gaziz . Направление дал верное, категорию мы получили, но только вот еще нужно подтягивать цену, вернее сумму товаров определенной категории чтоб условие соблюдалось, а так это условие мало полезно. Необходимо чтобы товаров определенной категории было на сумму не менее той что указана в условии: if ($this->cart->getSubTotal() < $this->config->get('free_total') ) Ну так изначально пишите что нужно. А если в корзине 5 товаров с одной категории и 1 товар с другой. И эти 5 товаров соответствуют сумме? Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 1 час назад, Gaziz сказал: Ну так изначально пишите что нужно. А если в корзине 5 товаров с одной категории и 1 товар с другой. И эти 5 товаров соответствуют сумме? тут главное чтобы товары определенной категории соответствовали указанной в конфиге "бесплатной доставки" минимальной сумме, например если товары категории "насосы" не набрали указанную сумму в конфиге ( $this->config->get('free_total') ) то "бесплатная доставка" не работает: $status = false; Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 /*if ($this->cart->getSubTotal() < $this->config->get('free_total')) { $status = false; }*/ $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (!in_array(20, $product_categories)) { $status = false; } else { $category_total =+ $product['total']; } } if ($category_total < $this->config->get('free_total')) { $status = false; } 1 Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 Спасибо Gaziz Почти получилось но в данном условии учитывается id 1-го продукта а в категории продуктов то много..( тоесть если уже 2 продукта из одной категории то данное условие не подходит Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 33 минуты назад, munhgauzen сказал: Спасибо Gaziz Почти получилось но в данном условии учитывается id 1-го продукта а в категории продуктов то много..( тоесть если уже 2 продукта из одной категории то данное условие не подходит Вы хоть проверили? foreach($products as $product) { } обозначает для каждого товара в корзине!!! Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 5 серпня 2018 Автор Share Опубліковано: 5 серпня 2018 Gazis проверил, срабатывает условие только в случае если товар в корзине 1-й категории и 1-го вида, еcли 1-й категории и 2-х видов(id) то условие не срабатывает. Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 5 серпня 2018 Share Опубліковано: 5 серпня 2018 21 минуту назад, munhgauzen сказал: Gazis проверил, срабатывает условие только в случае если товар в корзине 1-й категории и 1-го вида, еcли 1-й категории и 2-х видов(id) то условие не срабатывает. За Вас все сделать надо? Найдите отличия: $category_total += $product['total']; $category_total =+ $product['total']; 1 Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 5 серпня 2018 Автор Share Опубліковано: 5 серпня 2018 Gaziz спасибо . Но нужна небольшая правка тогда все работает ОК //////////////////// $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (!in_array(20, $product_categories)) { //$status = false; // ничего не делаем } else { $category_total += $product['total']; //условие срабатывает на все товары с заданной категории(20) } } if ($category_total < $this->config->get('free_total')) { $status = false; } /////////////////////////// Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 5 серпня 2018 Share Опубліковано: 5 серпня 2018 1 минуту назад, munhgauzen сказал: Gaziz спасибо . Но нужна небольшая правка тогда все работает ОК //////////////////// $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (!in_array(20, $product_categories)) { //$status = false; // ничего не делаем } else { $category_total += $product['total']; //условие срабатывает на все товары с заданной категории(20) } } if ($category_total < $this->config->get('free_total')) { $status = false; } /////////////////////////// Тогда уж так $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (in_array(20, $product_categories)) { $category_total += $product['total']; } } if ($category_total < $this->config->get('free_total')) { $status = false; } 1 Надіслати Поділитися на інших сайтах More sharing options... 1 month later... munhgauzen Опубліковано: 6 вересня 2018 Автор Share Опубліковано: 6 вересня 2018 (змінено) Хм обнаружил очень неясный момент. Условие срабатывает если заказ делает незарегистрированный пользователь (соответственно попутно происходит его регистрация). Но если пользователь уже зарегистрирован и вошел под своим логином на сайт то условие как будто полностью отсутствует - не срабатывает. Вообще не пойму причем тут это. Змінено 6 вересня 2018 користувачем munhgauzen Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 6 вересня 2018 Автор Share Опубліковано: 6 вересня 2018 нашел решение самостоятельно. Нужно было в условии доставки выставить - "Все зоны". Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам бесплатная доставка от определенной суммы + условие опреленной категории товаров Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 2.1 Надіслати Поділитися на інших сайтах More sharing options...
Gaziz Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 13 минут назад, munhgauzen сказал: 2.1 В catalog/model/shipping/free.php нужно подгрузить товары $products = $this->cart->getProducts(); Потом проверить на категорию эти товары. И добавить проверку в: if ($this->cart->getSubTotal() < $this->config->get('free_total')) { $status = false; } Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 (змінено) Ок спасибо. Я так понимаю если категория называется Насосы то проверка будет выглядеть так? if ($this->cart->getSubTotal() < $this->config->get('free_total') && $this->cart->getProducts() == !categorу_id=20 ) { $status = false; } Змінено 4 серпня 2018 користувачем munhgauzen Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 2 минуты назад, munhgauzen сказал: Ок спасибо. Я так понимаю если категория называется Насосы то проверка будет выглядеть так? if ($this->cart->getSubTotal() < $this->config->get('free_total') && $this->cart->getProducts() == !$categories['Насосы'] ) { $status = false; } Вот тут получаем массив товаров в корзине: $products = $this->cart->getProducts(); Категории в массиве нет вообще, нужно по product_id найти id категории. Потом проверить что все товары принадлежат этой самой категории. Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 сори не посмотрел что каткгории обозначаются id но все равно выходит абракадабра ( Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 (змінено) ОНО? в данном случае категория насосы имеет id 20 $products = $this->cart->getProducts(); $categories = $this->model_catalog_category->getCategory($category_id); if ($this->cart->getSubTotal() < $this->config->get('free_total') && !$categories == 20) { $status = false; Змінено 4 серпня 2018 користувачем munhgauzen попытка 3 Надіслати Поділитися на інших сайтах More sharing options... mazein Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 1 минуту назад, nikifalex сказал: Этоже не пикабу всеже Но шутки-то хорошие 22 минуты назад, munhgauzen сказал: !$categories == 20 Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 спасибо всем за хорошие рекомендации. Разберусь выложу ответ. Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 18 минут назад, munhgauzen сказал: спасибо всем за хорошие рекомендации. Разберусь выложу ответ. $products = $this->cart->getProducts(); foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (!in_array(20, $product_categories)) { $status = false; } } Не проверял, но должно работать. 1 Надіслати Поділитися на інших сайтах More sharing options... Agatha65 Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 1 час назад, mazein сказал: Но шутки-то хорошие ага 2 часа назад, munhgauzen сказал: $this->cart->getProducts() == !categorу_id=20 Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 спасибо Gaziz . Направление дал верное, категорию мы получили, но только вот еще нужно подтягивать цену, вернее сумму товаров определенной категории чтоб условие соблюдалось, а так это условие мало полезно. Необходимо чтобы товаров определенной категории было на сумму не менее той что указана в условии: if ($this->cart->getSubTotal() < $this->config->get('free_total') ) Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 18 минут назад, munhgauzen сказал: спасибо Gaziz . Направление дал верное, категорию мы получили, но только вот еще нужно подтягивать цену, вернее сумму товаров определенной категории чтоб условие соблюдалось, а так это условие мало полезно. Необходимо чтобы товаров определенной категории было на сумму не менее той что указана в условии: if ($this->cart->getSubTotal() < $this->config->get('free_total') ) Ну так изначально пишите что нужно. А если в корзине 5 товаров с одной категории и 1 товар с другой. И эти 5 товаров соответствуют сумме? Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 1 час назад, Gaziz сказал: Ну так изначально пишите что нужно. А если в корзине 5 товаров с одной категории и 1 товар с другой. И эти 5 товаров соответствуют сумме? тут главное чтобы товары определенной категории соответствовали указанной в конфиге "бесплатной доставки" минимальной сумме, например если товары категории "насосы" не набрали указанную сумму в конфиге ( $this->config->get('free_total') ) то "бесплатная доставка" не работает: $status = false; Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 /*if ($this->cart->getSubTotal() < $this->config->get('free_total')) { $status = false; }*/ $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (!in_array(20, $product_categories)) { $status = false; } else { $category_total =+ $product['total']; } } if ($category_total < $this->config->get('free_total')) { $status = false; } 1 Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 Спасибо Gaziz Почти получилось но в данном условии учитывается id 1-го продукта а в категории продуктов то много..( тоесть если уже 2 продукта из одной категории то данное условие не подходит Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 33 минуты назад, munhgauzen сказал: Спасибо Gaziz Почти получилось но в данном условии учитывается id 1-го продукта а в категории продуктов то много..( тоесть если уже 2 продукта из одной категории то данное условие не подходит Вы хоть проверили? foreach($products as $product) { } обозначает для каждого товара в корзине!!! Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 5 серпня 2018 Автор Share Опубліковано: 5 серпня 2018 Gazis проверил, срабатывает условие только в случае если товар в корзине 1-й категории и 1-го вида, еcли 1-й категории и 2-х видов(id) то условие не срабатывает. Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 5 серпня 2018 Share Опубліковано: 5 серпня 2018 21 минуту назад, munhgauzen сказал: Gazis проверил, срабатывает условие только в случае если товар в корзине 1-й категории и 1-го вида, еcли 1-й категории и 2-х видов(id) то условие не срабатывает. За Вас все сделать надо? Найдите отличия: $category_total += $product['total']; $category_total =+ $product['total']; 1 Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 5 серпня 2018 Автор Share Опубліковано: 5 серпня 2018 Gaziz спасибо . Но нужна небольшая правка тогда все работает ОК //////////////////// $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (!in_array(20, $product_categories)) { //$status = false; // ничего не делаем } else { $category_total += $product['total']; //условие срабатывает на все товары с заданной категории(20) } } if ($category_total < $this->config->get('free_total')) { $status = false; } /////////////////////////// Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 5 серпня 2018 Share Опубліковано: 5 серпня 2018 1 минуту назад, munhgauzen сказал: Gaziz спасибо . Но нужна небольшая правка тогда все работает ОК //////////////////// $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (!in_array(20, $product_categories)) { //$status = false; // ничего не делаем } else { $category_total += $product['total']; //условие срабатывает на все товары с заданной категории(20) } } if ($category_total < $this->config->get('free_total')) { $status = false; } /////////////////////////// Тогда уж так $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (in_array(20, $product_categories)) { $category_total += $product['total']; } } if ($category_total < $this->config->get('free_total')) { $status = false; } 1 Надіслати Поділитися на інших сайтах More sharing options... 1 month later... munhgauzen Опубліковано: 6 вересня 2018 Автор Share Опубліковано: 6 вересня 2018 (змінено) Хм обнаружил очень неясный момент. Условие срабатывает если заказ делает незарегистрированный пользователь (соответственно попутно происходит его регистрация). Но если пользователь уже зарегистрирован и вошел под своим логином на сайт то условие как будто полностью отсутствует - не срабатывает. Вообще не пойму причем тут это. Змінено 6 вересня 2018 користувачем munhgauzen Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 6 вересня 2018 Автор Share Опубліковано: 6 вересня 2018 нашел решение самостоятельно. Нужно было в условии доставки выставить - "Все зоны". Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам бесплатная доставка от определенной суммы + условие опреленной категории товаров Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 (змінено) Ок спасибо. Я так понимаю если категория называется Насосы то проверка будет выглядеть так? if ($this->cart->getSubTotal() < $this->config->get('free_total') && $this->cart->getProducts() == !categorу_id=20 ) { $status = false; } Змінено 4 серпня 2018 користувачем munhgauzen Надіслати Поділитися на інших сайтах More sharing options...
Gaziz Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 2 минуты назад, munhgauzen сказал: Ок спасибо. Я так понимаю если категория называется Насосы то проверка будет выглядеть так? if ($this->cart->getSubTotal() < $this->config->get('free_total') && $this->cart->getProducts() == !$categories['Насосы'] ) { $status = false; } Вот тут получаем массив товаров в корзине: $products = $this->cart->getProducts(); Категории в массиве нет вообще, нужно по product_id найти id категории. Потом проверить что все товары принадлежат этой самой категории. Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 сори не посмотрел что каткгории обозначаются id но все равно выходит абракадабра ( Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 (змінено) ОНО? в данном случае категория насосы имеет id 20 $products = $this->cart->getProducts(); $categories = $this->model_catalog_category->getCategory($category_id); if ($this->cart->getSubTotal() < $this->config->get('free_total') && !$categories == 20) { $status = false; Змінено 4 серпня 2018 користувачем munhgauzen попытка 3 Надіслати Поділитися на інших сайтах More sharing options... mazein Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 1 минуту назад, nikifalex сказал: Этоже не пикабу всеже Но шутки-то хорошие 22 минуты назад, munhgauzen сказал: !$categories == 20 Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 спасибо всем за хорошие рекомендации. Разберусь выложу ответ. Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 18 минут назад, munhgauzen сказал: спасибо всем за хорошие рекомендации. Разберусь выложу ответ. $products = $this->cart->getProducts(); foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (!in_array(20, $product_categories)) { $status = false; } } Не проверял, но должно работать. 1 Надіслати Поділитися на інших сайтах More sharing options... Agatha65 Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 1 час назад, mazein сказал: Но шутки-то хорошие ага 2 часа назад, munhgauzen сказал: $this->cart->getProducts() == !categorу_id=20 Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 спасибо Gaziz . Направление дал верное, категорию мы получили, но только вот еще нужно подтягивать цену, вернее сумму товаров определенной категории чтоб условие соблюдалось, а так это условие мало полезно. Необходимо чтобы товаров определенной категории было на сумму не менее той что указана в условии: if ($this->cart->getSubTotal() < $this->config->get('free_total') ) Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 18 минут назад, munhgauzen сказал: спасибо Gaziz . Направление дал верное, категорию мы получили, но только вот еще нужно подтягивать цену, вернее сумму товаров определенной категории чтоб условие соблюдалось, а так это условие мало полезно. Необходимо чтобы товаров определенной категории было на сумму не менее той что указана в условии: if ($this->cart->getSubTotal() < $this->config->get('free_total') ) Ну так изначально пишите что нужно. А если в корзине 5 товаров с одной категории и 1 товар с другой. И эти 5 товаров соответствуют сумме? Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 1 час назад, Gaziz сказал: Ну так изначально пишите что нужно. А если в корзине 5 товаров с одной категории и 1 товар с другой. И эти 5 товаров соответствуют сумме? тут главное чтобы товары определенной категории соответствовали указанной в конфиге "бесплатной доставки" минимальной сумме, например если товары категории "насосы" не набрали указанную сумму в конфиге ( $this->config->get('free_total') ) то "бесплатная доставка" не работает: $status = false; Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 /*if ($this->cart->getSubTotal() < $this->config->get('free_total')) { $status = false; }*/ $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (!in_array(20, $product_categories)) { $status = false; } else { $category_total =+ $product['total']; } } if ($category_total < $this->config->get('free_total')) { $status = false; } 1 Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 Спасибо Gaziz Почти получилось но в данном условии учитывается id 1-го продукта а в категории продуктов то много..( тоесть если уже 2 продукта из одной категории то данное условие не подходит Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 33 минуты назад, munhgauzen сказал: Спасибо Gaziz Почти получилось но в данном условии учитывается id 1-го продукта а в категории продуктов то много..( тоесть если уже 2 продукта из одной категории то данное условие не подходит Вы хоть проверили? foreach($products as $product) { } обозначает для каждого товара в корзине!!! Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 5 серпня 2018 Автор Share Опубліковано: 5 серпня 2018 Gazis проверил, срабатывает условие только в случае если товар в корзине 1-й категории и 1-го вида, еcли 1-й категории и 2-х видов(id) то условие не срабатывает. Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 5 серпня 2018 Share Опубліковано: 5 серпня 2018 21 минуту назад, munhgauzen сказал: Gazis проверил, срабатывает условие только в случае если товар в корзине 1-й категории и 1-го вида, еcли 1-й категории и 2-х видов(id) то условие не срабатывает. За Вас все сделать надо? Найдите отличия: $category_total += $product['total']; $category_total =+ $product['total']; 1 Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 5 серпня 2018 Автор Share Опубліковано: 5 серпня 2018 Gaziz спасибо . Но нужна небольшая правка тогда все работает ОК //////////////////// $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (!in_array(20, $product_categories)) { //$status = false; // ничего не делаем } else { $category_total += $product['total']; //условие срабатывает на все товары с заданной категории(20) } } if ($category_total < $this->config->get('free_total')) { $status = false; } /////////////////////////// Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 5 серпня 2018 Share Опубліковано: 5 серпня 2018 1 минуту назад, munhgauzen сказал: Gaziz спасибо . Но нужна небольшая правка тогда все работает ОК //////////////////// $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (!in_array(20, $product_categories)) { //$status = false; // ничего не делаем } else { $category_total += $product['total']; //условие срабатывает на все товары с заданной категории(20) } } if ($category_total < $this->config->get('free_total')) { $status = false; } /////////////////////////// Тогда уж так $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (in_array(20, $product_categories)) { $category_total += $product['total']; } } if ($category_total < $this->config->get('free_total')) { $status = false; } 1 Надіслати Поділитися на інших сайтах More sharing options... 1 month later... munhgauzen Опубліковано: 6 вересня 2018 Автор Share Опубліковано: 6 вересня 2018 (змінено) Хм обнаружил очень неясный момент. Условие срабатывает если заказ делает незарегистрированный пользователь (соответственно попутно происходит его регистрация). Но если пользователь уже зарегистрирован и вошел под своим логином на сайт то условие как будто полностью отсутствует - не срабатывает. Вообще не пойму причем тут это. Змінено 6 вересня 2018 користувачем munhgauzen Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 6 вересня 2018 Автор Share Опубліковано: 6 вересня 2018 нашел решение самостоятельно. Нужно было в условии доставки выставить - "Все зоны". Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам бесплатная доставка от определенной суммы + условие опреленной категории товаров Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 сори не посмотрел что каткгории обозначаются id но все равно выходит абракадабра ( Надіслати Поділитися на інших сайтах More sharing options...
munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 (змінено) ОНО? в данном случае категория насосы имеет id 20 $products = $this->cart->getProducts(); $categories = $this->model_catalog_category->getCategory($category_id); if ($this->cart->getSubTotal() < $this->config->get('free_total') && !$categories == 20) { $status = false; Змінено 4 серпня 2018 користувачем munhgauzen попытка 3 Надіслати Поділитися на інших сайтах More sharing options...
mazein Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 1 минуту назад, nikifalex сказал: Этоже не пикабу всеже Но шутки-то хорошие 22 минуты назад, munhgauzen сказал: !$categories == 20 Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 спасибо всем за хорошие рекомендации. Разберусь выложу ответ. Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 18 минут назад, munhgauzen сказал: спасибо всем за хорошие рекомендации. Разберусь выложу ответ. $products = $this->cart->getProducts(); foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (!in_array(20, $product_categories)) { $status = false; } } Не проверял, но должно работать. 1 Надіслати Поділитися на інших сайтах More sharing options... Agatha65 Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 1 час назад, mazein сказал: Но шутки-то хорошие ага 2 часа назад, munhgauzen сказал: $this->cart->getProducts() == !categorу_id=20 Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 спасибо Gaziz . Направление дал верное, категорию мы получили, но только вот еще нужно подтягивать цену, вернее сумму товаров определенной категории чтоб условие соблюдалось, а так это условие мало полезно. Необходимо чтобы товаров определенной категории было на сумму не менее той что указана в условии: if ($this->cart->getSubTotal() < $this->config->get('free_total') ) Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 18 минут назад, munhgauzen сказал: спасибо Gaziz . Направление дал верное, категорию мы получили, но только вот еще нужно подтягивать цену, вернее сумму товаров определенной категории чтоб условие соблюдалось, а так это условие мало полезно. Необходимо чтобы товаров определенной категории было на сумму не менее той что указана в условии: if ($this->cart->getSubTotal() < $this->config->get('free_total') ) Ну так изначально пишите что нужно. А если в корзине 5 товаров с одной категории и 1 товар с другой. И эти 5 товаров соответствуют сумме? Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 1 час назад, Gaziz сказал: Ну так изначально пишите что нужно. А если в корзине 5 товаров с одной категории и 1 товар с другой. И эти 5 товаров соответствуют сумме? тут главное чтобы товары определенной категории соответствовали указанной в конфиге "бесплатной доставки" минимальной сумме, например если товары категории "насосы" не набрали указанную сумму в конфиге ( $this->config->get('free_total') ) то "бесплатная доставка" не работает: $status = false; Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 /*if ($this->cart->getSubTotal() < $this->config->get('free_total')) { $status = false; }*/ $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (!in_array(20, $product_categories)) { $status = false; } else { $category_total =+ $product['total']; } } if ($category_total < $this->config->get('free_total')) { $status = false; } 1 Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 Спасибо Gaziz Почти получилось но в данном условии учитывается id 1-го продукта а в категории продуктов то много..( тоесть если уже 2 продукта из одной категории то данное условие не подходит Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 33 минуты назад, munhgauzen сказал: Спасибо Gaziz Почти получилось но в данном условии учитывается id 1-го продукта а в категории продуктов то много..( тоесть если уже 2 продукта из одной категории то данное условие не подходит Вы хоть проверили? foreach($products as $product) { } обозначает для каждого товара в корзине!!! Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 5 серпня 2018 Автор Share Опубліковано: 5 серпня 2018 Gazis проверил, срабатывает условие только в случае если товар в корзине 1-й категории и 1-го вида, еcли 1-й категории и 2-х видов(id) то условие не срабатывает. Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 5 серпня 2018 Share Опубліковано: 5 серпня 2018 21 минуту назад, munhgauzen сказал: Gazis проверил, срабатывает условие только в случае если товар в корзине 1-й категории и 1-го вида, еcли 1-й категории и 2-х видов(id) то условие не срабатывает. За Вас все сделать надо? Найдите отличия: $category_total += $product['total']; $category_total =+ $product['total']; 1 Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 5 серпня 2018 Автор Share Опубліковано: 5 серпня 2018 Gaziz спасибо . Но нужна небольшая правка тогда все работает ОК //////////////////// $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (!in_array(20, $product_categories)) { //$status = false; // ничего не делаем } else { $category_total += $product['total']; //условие срабатывает на все товары с заданной категории(20) } } if ($category_total < $this->config->get('free_total')) { $status = false; } /////////////////////////// Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 5 серпня 2018 Share Опубліковано: 5 серпня 2018 1 минуту назад, munhgauzen сказал: Gaziz спасибо . Но нужна небольшая правка тогда все работает ОК //////////////////// $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (!in_array(20, $product_categories)) { //$status = false; // ничего не делаем } else { $category_total += $product['total']; //условие срабатывает на все товары с заданной категории(20) } } if ($category_total < $this->config->get('free_total')) { $status = false; } /////////////////////////// Тогда уж так $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (in_array(20, $product_categories)) { $category_total += $product['total']; } } if ($category_total < $this->config->get('free_total')) { $status = false; } 1 Надіслати Поділитися на інших сайтах More sharing options... 1 month later... munhgauzen Опубліковано: 6 вересня 2018 Автор Share Опубліковано: 6 вересня 2018 (змінено) Хм обнаружил очень неясный момент. Условие срабатывает если заказ делает незарегистрированный пользователь (соответственно попутно происходит его регистрация). Но если пользователь уже зарегистрирован и вошел под своим логином на сайт то условие как будто полностью отсутствует - не срабатывает. Вообще не пойму причем тут это. Змінено 6 вересня 2018 користувачем munhgauzen Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 6 вересня 2018 Автор Share Опубліковано: 6 вересня 2018 нашел решение самостоятельно. Нужно было в условии доставки выставить - "Все зоны". Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам бесплатная доставка от определенной суммы + условие опреленной категории товаров Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 спасибо всем за хорошие рекомендации. Разберусь выложу ответ. Надіслати Поділитися на інших сайтах More sharing options...
Gaziz Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 18 минут назад, munhgauzen сказал: спасибо всем за хорошие рекомендации. Разберусь выложу ответ. $products = $this->cart->getProducts(); foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (!in_array(20, $product_categories)) { $status = false; } } Не проверял, но должно работать. 1 Надіслати Поділитися на інших сайтах More sharing options... Agatha65 Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 1 час назад, mazein сказал: Но шутки-то хорошие ага 2 часа назад, munhgauzen сказал: $this->cart->getProducts() == !categorу_id=20 Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 спасибо Gaziz . Направление дал верное, категорию мы получили, но только вот еще нужно подтягивать цену, вернее сумму товаров определенной категории чтоб условие соблюдалось, а так это условие мало полезно. Необходимо чтобы товаров определенной категории было на сумму не менее той что указана в условии: if ($this->cart->getSubTotal() < $this->config->get('free_total') ) Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 18 минут назад, munhgauzen сказал: спасибо Gaziz . Направление дал верное, категорию мы получили, но только вот еще нужно подтягивать цену, вернее сумму товаров определенной категории чтоб условие соблюдалось, а так это условие мало полезно. Необходимо чтобы товаров определенной категории было на сумму не менее той что указана в условии: if ($this->cart->getSubTotal() < $this->config->get('free_total') ) Ну так изначально пишите что нужно. А если в корзине 5 товаров с одной категории и 1 товар с другой. И эти 5 товаров соответствуют сумме? Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 1 час назад, Gaziz сказал: Ну так изначально пишите что нужно. А если в корзине 5 товаров с одной категории и 1 товар с другой. И эти 5 товаров соответствуют сумме? тут главное чтобы товары определенной категории соответствовали указанной в конфиге "бесплатной доставки" минимальной сумме, например если товары категории "насосы" не набрали указанную сумму в конфиге ( $this->config->get('free_total') ) то "бесплатная доставка" не работает: $status = false; Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 /*if ($this->cart->getSubTotal() < $this->config->get('free_total')) { $status = false; }*/ $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (!in_array(20, $product_categories)) { $status = false; } else { $category_total =+ $product['total']; } } if ($category_total < $this->config->get('free_total')) { $status = false; } 1 Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 Спасибо Gaziz Почти получилось но в данном условии учитывается id 1-го продукта а в категории продуктов то много..( тоесть если уже 2 продукта из одной категории то данное условие не подходит Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 33 минуты назад, munhgauzen сказал: Спасибо Gaziz Почти получилось но в данном условии учитывается id 1-го продукта а в категории продуктов то много..( тоесть если уже 2 продукта из одной категории то данное условие не подходит Вы хоть проверили? foreach($products as $product) { } обозначает для каждого товара в корзине!!! Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 5 серпня 2018 Автор Share Опубліковано: 5 серпня 2018 Gazis проверил, срабатывает условие только в случае если товар в корзине 1-й категории и 1-го вида, еcли 1-й категории и 2-х видов(id) то условие не срабатывает. Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 5 серпня 2018 Share Опубліковано: 5 серпня 2018 21 минуту назад, munhgauzen сказал: Gazis проверил, срабатывает условие только в случае если товар в корзине 1-й категории и 1-го вида, еcли 1-й категории и 2-х видов(id) то условие не срабатывает. За Вас все сделать надо? Найдите отличия: $category_total += $product['total']; $category_total =+ $product['total']; 1 Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 5 серпня 2018 Автор Share Опубліковано: 5 серпня 2018 Gaziz спасибо . Но нужна небольшая правка тогда все работает ОК //////////////////// $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (!in_array(20, $product_categories)) { //$status = false; // ничего не делаем } else { $category_total += $product['total']; //условие срабатывает на все товары с заданной категории(20) } } if ($category_total < $this->config->get('free_total')) { $status = false; } /////////////////////////// Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 5 серпня 2018 Share Опубліковано: 5 серпня 2018 1 минуту назад, munhgauzen сказал: Gaziz спасибо . Но нужна небольшая правка тогда все работает ОК //////////////////// $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (!in_array(20, $product_categories)) { //$status = false; // ничего не делаем } else { $category_total += $product['total']; //условие срабатывает на все товары с заданной категории(20) } } if ($category_total < $this->config->get('free_total')) { $status = false; } /////////////////////////// Тогда уж так $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (in_array(20, $product_categories)) { $category_total += $product['total']; } } if ($category_total < $this->config->get('free_total')) { $status = false; } 1 Надіслати Поділитися на інших сайтах More sharing options... 1 month later... munhgauzen Опубліковано: 6 вересня 2018 Автор Share Опубліковано: 6 вересня 2018 (змінено) Хм обнаружил очень неясный момент. Условие срабатывает если заказ делает незарегистрированный пользователь (соответственно попутно происходит его регистрация). Но если пользователь уже зарегистрирован и вошел под своим логином на сайт то условие как будто полностью отсутствует - не срабатывает. Вообще не пойму причем тут это. Змінено 6 вересня 2018 користувачем munhgauzen Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 6 вересня 2018 Автор Share Опубліковано: 6 вересня 2018 нашел решение самостоятельно. Нужно было в условии доставки выставить - "Все зоны". Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам бесплатная доставка от определенной суммы + условие опреленной категории товаров Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
Agatha65 Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 1 час назад, mazein сказал: Но шутки-то хорошие ага 2 часа назад, munhgauzen сказал: $this->cart->getProducts() == !categorу_id=20 Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 спасибо Gaziz . Направление дал верное, категорию мы получили, но только вот еще нужно подтягивать цену, вернее сумму товаров определенной категории чтоб условие соблюдалось, а так это условие мало полезно. Необходимо чтобы товаров определенной категории было на сумму не менее той что указана в условии: if ($this->cart->getSubTotal() < $this->config->get('free_total') ) Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 18 минут назад, munhgauzen сказал: спасибо Gaziz . Направление дал верное, категорию мы получили, но только вот еще нужно подтягивать цену, вернее сумму товаров определенной категории чтоб условие соблюдалось, а так это условие мало полезно. Необходимо чтобы товаров определенной категории было на сумму не менее той что указана в условии: if ($this->cart->getSubTotal() < $this->config->get('free_total') ) Ну так изначально пишите что нужно. А если в корзине 5 товаров с одной категории и 1 товар с другой. И эти 5 товаров соответствуют сумме? Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 1 час назад, Gaziz сказал: Ну так изначально пишите что нужно. А если в корзине 5 товаров с одной категории и 1 товар с другой. И эти 5 товаров соответствуют сумме? тут главное чтобы товары определенной категории соответствовали указанной в конфиге "бесплатной доставки" минимальной сумме, например если товары категории "насосы" не набрали указанную сумму в конфиге ( $this->config->get('free_total') ) то "бесплатная доставка" не работает: $status = false; Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 /*if ($this->cart->getSubTotal() < $this->config->get('free_total')) { $status = false; }*/ $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (!in_array(20, $product_categories)) { $status = false; } else { $category_total =+ $product['total']; } } if ($category_total < $this->config->get('free_total')) { $status = false; } 1 Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 Спасибо Gaziz Почти получилось но в данном условии учитывается id 1-го продукта а в категории продуктов то много..( тоесть если уже 2 продукта из одной категории то данное условие не подходит Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 33 минуты назад, munhgauzen сказал: Спасибо Gaziz Почти получилось но в данном условии учитывается id 1-го продукта а в категории продуктов то много..( тоесть если уже 2 продукта из одной категории то данное условие не подходит Вы хоть проверили? foreach($products as $product) { } обозначает для каждого товара в корзине!!! Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 5 серпня 2018 Автор Share Опубліковано: 5 серпня 2018 Gazis проверил, срабатывает условие только в случае если товар в корзине 1-й категории и 1-го вида, еcли 1-й категории и 2-х видов(id) то условие не срабатывает. Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 5 серпня 2018 Share Опубліковано: 5 серпня 2018 21 минуту назад, munhgauzen сказал: Gazis проверил, срабатывает условие только в случае если товар в корзине 1-й категории и 1-го вида, еcли 1-й категории и 2-х видов(id) то условие не срабатывает. За Вас все сделать надо? Найдите отличия: $category_total += $product['total']; $category_total =+ $product['total']; 1 Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 5 серпня 2018 Автор Share Опубліковано: 5 серпня 2018 Gaziz спасибо . Но нужна небольшая правка тогда все работает ОК //////////////////// $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (!in_array(20, $product_categories)) { //$status = false; // ничего не делаем } else { $category_total += $product['total']; //условие срабатывает на все товары с заданной категории(20) } } if ($category_total < $this->config->get('free_total')) { $status = false; } /////////////////////////// Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 5 серпня 2018 Share Опубліковано: 5 серпня 2018 1 минуту назад, munhgauzen сказал: Gaziz спасибо . Но нужна небольшая правка тогда все работает ОК //////////////////// $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (!in_array(20, $product_categories)) { //$status = false; // ничего не делаем } else { $category_total += $product['total']; //условие срабатывает на все товары с заданной категории(20) } } if ($category_total < $this->config->get('free_total')) { $status = false; } /////////////////////////// Тогда уж так $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (in_array(20, $product_categories)) { $category_total += $product['total']; } } if ($category_total < $this->config->get('free_total')) { $status = false; } 1 Надіслати Поділитися на інших сайтах More sharing options... 1 month later... munhgauzen Опубліковано: 6 вересня 2018 Автор Share Опубліковано: 6 вересня 2018 (змінено) Хм обнаружил очень неясный момент. Условие срабатывает если заказ делает незарегистрированный пользователь (соответственно попутно происходит его регистрация). Но если пользователь уже зарегистрирован и вошел под своим логином на сайт то условие как будто полностью отсутствует - не срабатывает. Вообще не пойму причем тут это. Змінено 6 вересня 2018 користувачем munhgauzen Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 6 вересня 2018 Автор Share Опубліковано: 6 вересня 2018 нашел решение самостоятельно. Нужно было в условии доставки выставить - "Все зоны". Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам бесплатная доставка от определенной суммы + условие опреленной категории товаров Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
fanatic Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 1 час назад, mazein сказал: Но шутки-то хорошие ага 2 часа назад, munhgauzen сказал: $this->cart->getProducts() == !categorу_id=20 Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 спасибо Gaziz . Направление дал верное, категорию мы получили, но только вот еще нужно подтягивать цену, вернее сумму товаров определенной категории чтоб условие соблюдалось, а так это условие мало полезно. Необходимо чтобы товаров определенной категории было на сумму не менее той что указана в условии: if ($this->cart->getSubTotal() < $this->config->get('free_total') ) Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 18 минут назад, munhgauzen сказал: спасибо Gaziz . Направление дал верное, категорию мы получили, но только вот еще нужно подтягивать цену, вернее сумму товаров определенной категории чтоб условие соблюдалось, а так это условие мало полезно. Необходимо чтобы товаров определенной категории было на сумму не менее той что указана в условии: if ($this->cart->getSubTotal() < $this->config->get('free_total') ) Ну так изначально пишите что нужно. А если в корзине 5 товаров с одной категории и 1 товар с другой. И эти 5 товаров соответствуют сумме? Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 1 час назад, Gaziz сказал: Ну так изначально пишите что нужно. А если в корзине 5 товаров с одной категории и 1 товар с другой. И эти 5 товаров соответствуют сумме? тут главное чтобы товары определенной категории соответствовали указанной в конфиге "бесплатной доставки" минимальной сумме, например если товары категории "насосы" не набрали указанную сумму в конфиге ( $this->config->get('free_total') ) то "бесплатная доставка" не работает: $status = false; Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 /*if ($this->cart->getSubTotal() < $this->config->get('free_total')) { $status = false; }*/ $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (!in_array(20, $product_categories)) { $status = false; } else { $category_total =+ $product['total']; } } if ($category_total < $this->config->get('free_total')) { $status = false; } 1 Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 Спасибо Gaziz Почти получилось но в данном условии учитывается id 1-го продукта а в категории продуктов то много..( тоесть если уже 2 продукта из одной категории то данное условие не подходит Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 33 минуты назад, munhgauzen сказал: Спасибо Gaziz Почти получилось но в данном условии учитывается id 1-го продукта а в категории продуктов то много..( тоесть если уже 2 продукта из одной категории то данное условие не подходит Вы хоть проверили? foreach($products as $product) { } обозначает для каждого товара в корзине!!! Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 5 серпня 2018 Автор Share Опубліковано: 5 серпня 2018 Gazis проверил, срабатывает условие только в случае если товар в корзине 1-й категории и 1-го вида, еcли 1-й категории и 2-х видов(id) то условие не срабатывает. Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 5 серпня 2018 Share Опубліковано: 5 серпня 2018 21 минуту назад, munhgauzen сказал: Gazis проверил, срабатывает условие только в случае если товар в корзине 1-й категории и 1-го вида, еcли 1-й категории и 2-х видов(id) то условие не срабатывает. За Вас все сделать надо? Найдите отличия: $category_total += $product['total']; $category_total =+ $product['total']; 1 Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 5 серпня 2018 Автор Share Опубліковано: 5 серпня 2018 Gaziz спасибо . Но нужна небольшая правка тогда все работает ОК //////////////////// $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (!in_array(20, $product_categories)) { //$status = false; // ничего не делаем } else { $category_total += $product['total']; //условие срабатывает на все товары с заданной категории(20) } } if ($category_total < $this->config->get('free_total')) { $status = false; } /////////////////////////// Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 5 серпня 2018 Share Опубліковано: 5 серпня 2018 1 минуту назад, munhgauzen сказал: Gaziz спасибо . Но нужна небольшая правка тогда все работает ОК //////////////////// $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (!in_array(20, $product_categories)) { //$status = false; // ничего не делаем } else { $category_total += $product['total']; //условие срабатывает на все товары с заданной категории(20) } } if ($category_total < $this->config->get('free_total')) { $status = false; } /////////////////////////// Тогда уж так $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (in_array(20, $product_categories)) { $category_total += $product['total']; } } if ($category_total < $this->config->get('free_total')) { $status = false; } 1 Надіслати Поділитися на інших сайтах More sharing options... 1 month later... munhgauzen Опубліковано: 6 вересня 2018 Автор Share Опубліковано: 6 вересня 2018 (змінено) Хм обнаружил очень неясный момент. Условие срабатывает если заказ делает незарегистрированный пользователь (соответственно попутно происходит его регистрация). Но если пользователь уже зарегистрирован и вошел под своим логином на сайт то условие как будто полностью отсутствует - не срабатывает. Вообще не пойму причем тут это. Змінено 6 вересня 2018 користувачем munhgauzen Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 6 вересня 2018 Автор Share Опубліковано: 6 вересня 2018 нашел решение самостоятельно. Нужно было в условии доставки выставить - "Все зоны". Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам бесплатная доставка от определенной суммы + условие опреленной категории товаров Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 спасибо Gaziz . Направление дал верное, категорию мы получили, но только вот еще нужно подтягивать цену, вернее сумму товаров определенной категории чтоб условие соблюдалось, а так это условие мало полезно. Необходимо чтобы товаров определенной категории было на сумму не менее той что указана в условии: if ($this->cart->getSubTotal() < $this->config->get('free_total') ) Надіслати Поділитися на інших сайтах More sharing options...
Gaziz Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 18 минут назад, munhgauzen сказал: спасибо Gaziz . Направление дал верное, категорию мы получили, но только вот еще нужно подтягивать цену, вернее сумму товаров определенной категории чтоб условие соблюдалось, а так это условие мало полезно. Необходимо чтобы товаров определенной категории было на сумму не менее той что указана в условии: if ($this->cart->getSubTotal() < $this->config->get('free_total') ) Ну так изначально пишите что нужно. А если в корзине 5 товаров с одной категории и 1 товар с другой. И эти 5 товаров соответствуют сумме? Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 1 час назад, Gaziz сказал: Ну так изначально пишите что нужно. А если в корзине 5 товаров с одной категории и 1 товар с другой. И эти 5 товаров соответствуют сумме? тут главное чтобы товары определенной категории соответствовали указанной в конфиге "бесплатной доставки" минимальной сумме, например если товары категории "насосы" не набрали указанную сумму в конфиге ( $this->config->get('free_total') ) то "бесплатная доставка" не работает: $status = false; Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 /*if ($this->cart->getSubTotal() < $this->config->get('free_total')) { $status = false; }*/ $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (!in_array(20, $product_categories)) { $status = false; } else { $category_total =+ $product['total']; } } if ($category_total < $this->config->get('free_total')) { $status = false; } 1 Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 Спасибо Gaziz Почти получилось но в данном условии учитывается id 1-го продукта а в категории продуктов то много..( тоесть если уже 2 продукта из одной категории то данное условие не подходит Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 33 минуты назад, munhgauzen сказал: Спасибо Gaziz Почти получилось но в данном условии учитывается id 1-го продукта а в категории продуктов то много..( тоесть если уже 2 продукта из одной категории то данное условие не подходит Вы хоть проверили? foreach($products as $product) { } обозначает для каждого товара в корзине!!! Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 5 серпня 2018 Автор Share Опубліковано: 5 серпня 2018 Gazis проверил, срабатывает условие только в случае если товар в корзине 1-й категории и 1-го вида, еcли 1-й категории и 2-х видов(id) то условие не срабатывает. Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 5 серпня 2018 Share Опубліковано: 5 серпня 2018 21 минуту назад, munhgauzen сказал: Gazis проверил, срабатывает условие только в случае если товар в корзине 1-й категории и 1-го вида, еcли 1-й категории и 2-х видов(id) то условие не срабатывает. За Вас все сделать надо? Найдите отличия: $category_total += $product['total']; $category_total =+ $product['total']; 1 Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 5 серпня 2018 Автор Share Опубліковано: 5 серпня 2018 Gaziz спасибо . Но нужна небольшая правка тогда все работает ОК //////////////////// $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (!in_array(20, $product_categories)) { //$status = false; // ничего не делаем } else { $category_total += $product['total']; //условие срабатывает на все товары с заданной категории(20) } } if ($category_total < $this->config->get('free_total')) { $status = false; } /////////////////////////// Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 5 серпня 2018 Share Опубліковано: 5 серпня 2018 1 минуту назад, munhgauzen сказал: Gaziz спасибо . Но нужна небольшая правка тогда все работает ОК //////////////////// $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (!in_array(20, $product_categories)) { //$status = false; // ничего не делаем } else { $category_total += $product['total']; //условие срабатывает на все товары с заданной категории(20) } } if ($category_total < $this->config->get('free_total')) { $status = false; } /////////////////////////// Тогда уж так $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (in_array(20, $product_categories)) { $category_total += $product['total']; } } if ($category_total < $this->config->get('free_total')) { $status = false; } 1 Надіслати Поділитися на інших сайтах More sharing options... 1 month later... munhgauzen Опубліковано: 6 вересня 2018 Автор Share Опубліковано: 6 вересня 2018 (змінено) Хм обнаружил очень неясный момент. Условие срабатывает если заказ делает незарегистрированный пользователь (соответственно попутно происходит его регистрация). Но если пользователь уже зарегистрирован и вошел под своим логином на сайт то условие как будто полностью отсутствует - не срабатывает. Вообще не пойму причем тут это. Змінено 6 вересня 2018 користувачем munhgauzen Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 6 вересня 2018 Автор Share Опубліковано: 6 вересня 2018 нашел решение самостоятельно. Нужно было в условии доставки выставить - "Все зоны". Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам бесплатная доставка от определенной суммы + условие опреленной категории товаров Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 1 час назад, Gaziz сказал: Ну так изначально пишите что нужно. А если в корзине 5 товаров с одной категории и 1 товар с другой. И эти 5 товаров соответствуют сумме? тут главное чтобы товары определенной категории соответствовали указанной в конфиге "бесплатной доставки" минимальной сумме, например если товары категории "насосы" не набрали указанную сумму в конфиге ( $this->config->get('free_total') ) то "бесплатная доставка" не работает: $status = false; Надіслати Поділитися на інших сайтах More sharing options...
Gaziz Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 /*if ($this->cart->getSubTotal() < $this->config->get('free_total')) { $status = false; }*/ $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (!in_array(20, $product_categories)) { $status = false; } else { $category_total =+ $product['total']; } } if ($category_total < $this->config->get('free_total')) { $status = false; } 1 Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 Спасибо Gaziz Почти получилось но в данном условии учитывается id 1-го продукта а в категории продуктов то много..( тоесть если уже 2 продукта из одной категории то данное условие не подходит Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 33 минуты назад, munhgauzen сказал: Спасибо Gaziz Почти получилось но в данном условии учитывается id 1-го продукта а в категории продуктов то много..( тоесть если уже 2 продукта из одной категории то данное условие не подходит Вы хоть проверили? foreach($products as $product) { } обозначает для каждого товара в корзине!!! Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 5 серпня 2018 Автор Share Опубліковано: 5 серпня 2018 Gazis проверил, срабатывает условие только в случае если товар в корзине 1-й категории и 1-го вида, еcли 1-й категории и 2-х видов(id) то условие не срабатывает. Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 5 серпня 2018 Share Опубліковано: 5 серпня 2018 21 минуту назад, munhgauzen сказал: Gazis проверил, срабатывает условие только в случае если товар в корзине 1-й категории и 1-го вида, еcли 1-й категории и 2-х видов(id) то условие не срабатывает. За Вас все сделать надо? Найдите отличия: $category_total += $product['total']; $category_total =+ $product['total']; 1 Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 5 серпня 2018 Автор Share Опубліковано: 5 серпня 2018 Gaziz спасибо . Но нужна небольшая правка тогда все работает ОК //////////////////// $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (!in_array(20, $product_categories)) { //$status = false; // ничего не делаем } else { $category_total += $product['total']; //условие срабатывает на все товары с заданной категории(20) } } if ($category_total < $this->config->get('free_total')) { $status = false; } /////////////////////////// Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 5 серпня 2018 Share Опубліковано: 5 серпня 2018 1 минуту назад, munhgauzen сказал: Gaziz спасибо . Но нужна небольшая правка тогда все работает ОК //////////////////// $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (!in_array(20, $product_categories)) { //$status = false; // ничего не делаем } else { $category_total += $product['total']; //условие срабатывает на все товары с заданной категории(20) } } if ($category_total < $this->config->get('free_total')) { $status = false; } /////////////////////////// Тогда уж так $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (in_array(20, $product_categories)) { $category_total += $product['total']; } } if ($category_total < $this->config->get('free_total')) { $status = false; } 1 Надіслати Поділитися на інших сайтах More sharing options... 1 month later... munhgauzen Опубліковано: 6 вересня 2018 Автор Share Опубліковано: 6 вересня 2018 (змінено) Хм обнаружил очень неясный момент. Условие срабатывает если заказ делает незарегистрированный пользователь (соответственно попутно происходит его регистрация). Но если пользователь уже зарегистрирован и вошел под своим логином на сайт то условие как будто полностью отсутствует - не срабатывает. Вообще не пойму причем тут это. Змінено 6 вересня 2018 користувачем munhgauzen Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 6 вересня 2018 Автор Share Опубліковано: 6 вересня 2018 нашел решение самостоятельно. Нужно было в условии доставки выставить - "Все зоны". Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам бесплатная доставка от определенной суммы + условие опреленной категории товаров Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich
munhgauzen Опубліковано: 4 серпня 2018 Автор Share Опубліковано: 4 серпня 2018 Спасибо Gaziz Почти получилось но в данном условии учитывается id 1-го продукта а в категории продуктов то много..( тоесть если уже 2 продукта из одной категории то данное условие не подходит Надіслати Поділитися на інших сайтах More sharing options...
Gaziz Опубліковано: 4 серпня 2018 Share Опубліковано: 4 серпня 2018 33 минуты назад, munhgauzen сказал: Спасибо Gaziz Почти получилось но в данном условии учитывается id 1-го продукта а в категории продуктов то много..( тоесть если уже 2 продукта из одной категории то данное условие не подходит Вы хоть проверили? foreach($products as $product) { } обозначает для каждого товара в корзине!!! Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 5 серпня 2018 Автор Share Опубліковано: 5 серпня 2018 Gazis проверил, срабатывает условие только в случае если товар в корзине 1-й категории и 1-го вида, еcли 1-й категории и 2-х видов(id) то условие не срабатывает. Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 5 серпня 2018 Share Опубліковано: 5 серпня 2018 21 минуту назад, munhgauzen сказал: Gazis проверил, срабатывает условие только в случае если товар в корзине 1-й категории и 1-го вида, еcли 1-й категории и 2-х видов(id) то условие не срабатывает. За Вас все сделать надо? Найдите отличия: $category_total += $product['total']; $category_total =+ $product['total']; 1 Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 5 серпня 2018 Автор Share Опубліковано: 5 серпня 2018 Gaziz спасибо . Но нужна небольшая правка тогда все работает ОК //////////////////// $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (!in_array(20, $product_categories)) { //$status = false; // ничего не делаем } else { $category_total += $product['total']; //условие срабатывает на все товары с заданной категории(20) } } if ($category_total < $this->config->get('free_total')) { $status = false; } /////////////////////////// Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 5 серпня 2018 Share Опубліковано: 5 серпня 2018 1 минуту назад, munhgauzen сказал: Gaziz спасибо . Но нужна небольшая правка тогда все работает ОК //////////////////// $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (!in_array(20, $product_categories)) { //$status = false; // ничего не делаем } else { $category_total += $product['total']; //условие срабатывает на все товары с заданной категории(20) } } if ($category_total < $this->config->get('free_total')) { $status = false; } /////////////////////////// Тогда уж так $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (in_array(20, $product_categories)) { $category_total += $product['total']; } } if ($category_total < $this->config->get('free_total')) { $status = false; } 1 Надіслати Поділитися на інших сайтах More sharing options... 1 month later... munhgauzen Опубліковано: 6 вересня 2018 Автор Share Опубліковано: 6 вересня 2018 (змінено) Хм обнаружил очень неясный момент. Условие срабатывает если заказ делает незарегистрированный пользователь (соответственно попутно происходит его регистрация). Но если пользователь уже зарегистрирован и вошел под своим логином на сайт то условие как будто полностью отсутствует - не срабатывает. Вообще не пойму причем тут это. Змінено 6 вересня 2018 користувачем munhgauzen Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 6 вересня 2018 Автор Share Опубліковано: 6 вересня 2018 нашел решение самостоятельно. Нужно было в условии доставки выставить - "Все зоны". Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам бесплатная доставка от определенной суммы + условие опреленной категории товаров
munhgauzen Опубліковано: 5 серпня 2018 Автор Share Опубліковано: 5 серпня 2018 Gazis проверил, срабатывает условие только в случае если товар в корзине 1-й категории и 1-го вида, еcли 1-й категории и 2-х видов(id) то условие не срабатывает. Надіслати Поділитися на інших сайтах More sharing options...
Gaziz Опубліковано: 5 серпня 2018 Share Опубліковано: 5 серпня 2018 21 минуту назад, munhgauzen сказал: Gazis проверил, срабатывает условие только в случае если товар в корзине 1-й категории и 1-го вида, еcли 1-й категории и 2-х видов(id) то условие не срабатывает. За Вас все сделать надо? Найдите отличия: $category_total += $product['total']; $category_total =+ $product['total']; 1 Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 5 серпня 2018 Автор Share Опубліковано: 5 серпня 2018 Gaziz спасибо . Но нужна небольшая правка тогда все работает ОК //////////////////// $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (!in_array(20, $product_categories)) { //$status = false; // ничего не делаем } else { $category_total += $product['total']; //условие срабатывает на все товары с заданной категории(20) } } if ($category_total < $this->config->get('free_total')) { $status = false; } /////////////////////////// Надіслати Поділитися на інших сайтах More sharing options... Gaziz Опубліковано: 5 серпня 2018 Share Опубліковано: 5 серпня 2018 1 минуту назад, munhgauzen сказал: Gaziz спасибо . Но нужна небольшая правка тогда все работает ОК //////////////////// $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (!in_array(20, $product_categories)) { //$status = false; // ничего не делаем } else { $category_total += $product['total']; //условие срабатывает на все товары с заданной категории(20) } } if ($category_total < $this->config->get('free_total')) { $status = false; } /////////////////////////// Тогда уж так $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (in_array(20, $product_categories)) { $category_total += $product['total']; } } if ($category_total < $this->config->get('free_total')) { $status = false; } 1 Надіслати Поділитися на інших сайтах More sharing options... 1 month later... munhgauzen Опубліковано: 6 вересня 2018 Автор Share Опубліковано: 6 вересня 2018 (змінено) Хм обнаружил очень неясный момент. Условие срабатывает если заказ делает незарегистрированный пользователь (соответственно попутно происходит его регистрация). Но если пользователь уже зарегистрирован и вошел под своим логином на сайт то условие как будто полностью отсутствует - не срабатывает. Вообще не пойму причем тут это. Змінено 6 вересня 2018 користувачем munhgauzen Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 6 вересня 2018 Автор Share Опубліковано: 6 вересня 2018 нашел решение самостоятельно. Нужно было в условии доставки выставить - "Все зоны". Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
munhgauzen Опубліковано: 5 серпня 2018 Автор Share Опубліковано: 5 серпня 2018 Gaziz спасибо . Но нужна небольшая правка тогда все работает ОК //////////////////// $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (!in_array(20, $product_categories)) { //$status = false; // ничего не делаем } else { $category_total += $product['total']; //условие срабатывает на все товары с заданной категории(20) } } if ($category_total < $this->config->get('free_total')) { $status = false; } /////////////////////////// Надіслати Поділитися на інших сайтах More sharing options...
Gaziz Опубліковано: 5 серпня 2018 Share Опубліковано: 5 серпня 2018 1 минуту назад, munhgauzen сказал: Gaziz спасибо . Но нужна небольшая правка тогда все работает ОК //////////////////// $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (!in_array(20, $product_categories)) { //$status = false; // ничего не делаем } else { $category_total += $product['total']; //условие срабатывает на все товары с заданной категории(20) } } if ($category_total < $this->config->get('free_total')) { $status = false; } /////////////////////////// Тогда уж так $products = $this->cart->getProducts(); $category_total = 0; foreach($products as $product) { $categories = $this->model_catalog_product->getCategories($product['product_id']); $product_categories = array(); foreach($categories as $category) { $product_categories[] = $category['category_id']; } if (in_array(20, $product_categories)) { $category_total += $product['total']; } } if ($category_total < $this->config->get('free_total')) { $status = false; } 1 Надіслати Поділитися на інших сайтах More sharing options... 1 month later... munhgauzen Опубліковано: 6 вересня 2018 Автор Share Опубліковано: 6 вересня 2018 (змінено) Хм обнаружил очень неясный момент. Условие срабатывает если заказ делает незарегистрированный пользователь (соответственно попутно происходит его регистрация). Но если пользователь уже зарегистрирован и вошел под своим логином на сайт то условие как будто полностью отсутствует - не срабатывает. Вообще не пойму причем тут это. Змінено 6 вересня 2018 користувачем munhgauzen Надіслати Поділитися на інших сайтах More sharing options... munhgauzen Опубліковано: 6 вересня 2018 Автор Share Опубліковано: 6 вересня 2018 нашел решение самостоятельно. Нужно было в условии доставки выставить - "Все зоны". Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0
munhgauzen Опубліковано: 6 вересня 2018 Автор Share Опубліковано: 6 вересня 2018 (змінено) Хм обнаружил очень неясный момент. Условие срабатывает если заказ делает незарегистрированный пользователь (соответственно попутно происходит его регистрация). Но если пользователь уже зарегистрирован и вошел под своим логином на сайт то условие как будто полностью отсутствует - не срабатывает. Вообще не пойму причем тут это. Змінено 6 вересня 2018 користувачем munhgauzen Надіслати Поділитися на інших сайтах More sharing options...
munhgauzen Опубліковано: 6 вересня 2018 Автор Share Опубліковано: 6 вересня 2018 нашел решение самостоятельно. Нужно было в условии доставки выставить - "Все зоны". Надіслати Поділитися на інших сайтах More sharing options...
Recommended Posts