nash Опубліковано: 21 лютого 2022 Share Опубліковано: 21 лютого 2022 (змінено) Подскажите, пожалуйста, переделал "Оплата за обработку заказа" под наценку за упаковку. Добавил второе поле для наценки коробок второго типа. Т.е. если есть в корзине хоть один товар с определенным артикулом, то ставим вторую цену, иначе первую. Но почему-то всегда ставит первую. Запрос, считающий количество товаров с определенным артикулом, работает правильно. Стоит модуль SIMPLE model <?php class ModelExtensionTotalHandling extends Model { public function getTotal($total) { $sub_total = $this->cart->getSubTotal(); $countProdBox2 = $this->cart->countProductsBox2(); //получает количество товаров с упаковкой M2 и Б2 $A = $this->config->get('handling_fee'); //наценка за коробки M и Б $B = $this->config->get('handling_fee2');//наценка за коробки M2 и Б2 if (($sub_total > $this->config->get('handling_total')) && ($sub_total > 0)) { $this->load->language('extension/total/handling'); $total['totals'][] = array( 'code' => 'handling', 'title' => $this->language->get('text_handling'), 'value' => $this->config->get('handling_fee'), 'sort_order' => $this->config->get('handling_sort_order') ); if ($this->config->get('handling_tax_class_id')) { $tax_rates = $this->tax->getRates($this->config->get('handling_fee'), $this->config->get('handling_tax_class_id')); foreach ($tax_rates as $tax_rate) { if (!isset($total['taxes'][$tax_rate['tax_rate_id']])) { $total['taxes'][$tax_rate['tax_rate_id']] = $tax_rate['amount']; } else { $total['taxes'][$tax_rate['tax_rate_id']] += $tax_rate['amount']; } } } if($countProdBox2 > 0) { $total['total'] += $B; }else { $total['total'] += $A; } } } } countProductsBox2() public function countProductsBox2() { $query = $this->db->query("SELECT SUM(quantity) as total_M2 FROM " . DB_PREFIX . "cart WHERE product_id IN (SELECT product_id FROM oc_product WHERE sku = 'A') OR product_id IN (SELECT product_id FROM oc_product WHERE sku = 'B') OR product_id IN (SELECT product_id FROM oc_product WHERE sku = 'C') OR product_id IN (SELECT product_id FROM oc_product WHERE sku = 'S') AND api_id = '" . (isset($this->session->data['api_id']) ? (int)$this->session->data['api_id'] : 0) . "' AND customer_id = '" . (int)$this->customer->getId() . "' AND session_id = '" . $this->db->escape($this->session->getId()) . "'"); return $query->row['total_M2']; } Змінено 21 лютого 2022 користувачем nash Надіслати Поділитися на інших сайтах More sharing options...
Shureg Опубліковано: 21 лютого 2022 Share Опубліковано: 21 лютого 2022 https://opencartforum.com/topic/45529-modul-modul-simple-uproschennaya-registraciya-i-zakaz-podderzhka/ Надіслати Поділитися на інших сайтах More sharing options...
nash Опубліковано: 21 лютого 2022 Автор Share Опубліковано: 21 лютого 2022 21.02.2022 в 14:50, Shureg сказал: https://opencartforum.com/topic/45529-modul-modul-simple-uproschennaya-registraciya-i-zakaz-podderzhka/ причем тут этот модуль? не работает не из-за него, это 100% Надіслати Поділитися на інших сайтах More sharing options...
Venter Опубліковано: 21 лютого 2022 Share Опубліковано: 21 лютого 2022 В 21.02.2022 в 15:37, nash сказал: Т.е. если есть в корзине хоть один товар с определенным артикулом, то ставим вторую цену, иначе первую. Но почему-то всегда ставит первую ну так тестируйте свое условие Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 21 лютого 2022 Share Опубліковано: 21 лютого 2022 вы вообще знаете ч то у вас в этих переменных В 21.02.2022 в 15:37, nash сказал: $countProdBox2 = $this->cart->countProductsBox2(); //получает количество товаров с упаковкой M2 и Б2 $A = $this->config->get('handling_fee'); //наценка за коробки M и Б $B = $this->config->get('handling_fee2');//наценка за коробки M2 и Б2 или просто написан код, запущен без проверки есть то что нужно в ваших переменных или нет Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 21 лютого 2022 Share Опубліковано: 21 лютого 2022 по вашей догике В 21.02.2022 в 15:37, nash сказал: если есть в корзине хоть один товар с определенным артикулом, то ставим вторую цену, иначе первую. Но почему-то всегда ставит первую в $countProdBox2 пусто или вообще ничего нету Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 21 лютого 2022 Share Опубліковано: 21 лютого 2022 В 21.02.2022 в 15:37, nash сказал: AND customer_id = '" . (int)$this->customer->getId() . "' AND session_id = '" . $this->db->escape($this->session->getId()) . "'"); вы дествительно копипастите или не понимате что пишете зачем $this->db->escape($this->session->getId()) правильно будет наверно (int)$this->session->getId() вот это условие зачем? AND api_id = '" . (isset($this->session->data['api_id']) ? (int)$this->session->data['api_id'] : 0) . "' Надіслати Поділитися на інших сайтах More sharing options... nash Опубліковано: 21 лютого 2022 Автор Share Опубліковано: 21 лютого 2022 (змінено) 21.02.2022 в 15:40, Venter сказал: (int)$this->session->getId() это будет неправильно. 21.02.2022 в 15:40, Venter сказал: AND api_id = '" . (isset($this->session->data['api_id']) ? (int)$this->session->data['api_id'] : 0) . "' оно необязательно и в данном случае ни на что не влияет. в переменных значения есть. Обратил внимание, что если в модели пропишу статически: а в админке поставлю 300, то он берет 300 из настроек! отсюда - $this->config->get('handling_fee') Змінено 21 лютого 2022 користувачем nash Надіслати Поділитися на інших сайтах More sharing options... nash Опубліковано: 21 лютого 2022 Автор Share Опубліковано: 21 лютого 2022 (змінено) все разобрался, спасибо 'value' => ($countProdBox2 > 0) ? $B : $A, Змінено 21 лютого 2022 користувачем nash Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 21 лютого 2022 Share Опубліковано: 21 лютого 2022 В 21.02.2022 в 16:52, nash сказал: В 21.02.2022 в 16:40, Venter сказал: (int)$this->session->getId() это будет неправильно. ?????? Надіслати Поділитися на інших сайтах More sharing options... nash Опубліковано: 21 лютого 2022 Автор Share Опубліковано: 21 лютого 2022 21.02.2022 в 16:41, Venter сказал: ?????? 1 Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 1 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 2.x Opencart 2.x: Пісочниця Учитывать в заказе "Оплата за обработку заказа" не работает Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення PRICE MASTER - Модуль імпорту/експорту товарів, парсинг, переклад, генерація текстів, редактор каталогу та багато іншого Автор: ScriptBrains 1.0 Синхронізація Замовлень Rozetka.ua та Opencart Автор: sinco Product Manipulator Автор: Hiperlynx007 Видалення дублікатів товарів для OpenCart Автор: Hatshypsut Вибір категорій і виробників для "Знайшли дешевше" шаблону Upstore Автор: Flint2000 × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
Venter Опубліковано: 21 лютого 2022 Share Опубліковано: 21 лютого 2022 вы вообще знаете ч то у вас в этих переменных В 21.02.2022 в 15:37, nash сказал: $countProdBox2 = $this->cart->countProductsBox2(); //получает количество товаров с упаковкой M2 и Б2 $A = $this->config->get('handling_fee'); //наценка за коробки M и Б $B = $this->config->get('handling_fee2');//наценка за коробки M2 и Б2 или просто написан код, запущен без проверки есть то что нужно в ваших переменных или нет Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 21 лютого 2022 Share Опубліковано: 21 лютого 2022 по вашей догике В 21.02.2022 в 15:37, nash сказал: если есть в корзине хоть один товар с определенным артикулом, то ставим вторую цену, иначе первую. Но почему-то всегда ставит первую в $countProdBox2 пусто или вообще ничего нету Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 21 лютого 2022 Share Опубліковано: 21 лютого 2022 В 21.02.2022 в 15:37, nash сказал: AND customer_id = '" . (int)$this->customer->getId() . "' AND session_id = '" . $this->db->escape($this->session->getId()) . "'"); вы дествительно копипастите или не понимате что пишете зачем $this->db->escape($this->session->getId()) правильно будет наверно (int)$this->session->getId() вот это условие зачем? AND api_id = '" . (isset($this->session->data['api_id']) ? (int)$this->session->data['api_id'] : 0) . "' Надіслати Поділитися на інших сайтах More sharing options... nash Опубліковано: 21 лютого 2022 Автор Share Опубліковано: 21 лютого 2022 (змінено) 21.02.2022 в 15:40, Venter сказал: (int)$this->session->getId() это будет неправильно. 21.02.2022 в 15:40, Venter сказал: AND api_id = '" . (isset($this->session->data['api_id']) ? (int)$this->session->data['api_id'] : 0) . "' оно необязательно и в данном случае ни на что не влияет. в переменных значения есть. Обратил внимание, что если в модели пропишу статически: а в админке поставлю 300, то он берет 300 из настроек! отсюда - $this->config->get('handling_fee') Змінено 21 лютого 2022 користувачем nash Надіслати Поділитися на інших сайтах More sharing options... nash Опубліковано: 21 лютого 2022 Автор Share Опубліковано: 21 лютого 2022 (змінено) все разобрался, спасибо 'value' => ($countProdBox2 > 0) ? $B : $A, Змінено 21 лютого 2022 користувачем nash Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 21 лютого 2022 Share Опубліковано: 21 лютого 2022 В 21.02.2022 в 16:52, nash сказал: В 21.02.2022 в 16:40, Venter сказал: (int)$this->session->getId() это будет неправильно. ?????? Надіслати Поділитися на інших сайтах More sharing options... nash Опубліковано: 21 лютого 2022 Автор Share Опубліковано: 21 лютого 2022 21.02.2022 в 16:41, Venter сказал: ?????? 1 Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 1 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 2.x Opencart 2.x: Пісочниця Учитывать в заказе "Оплата за обработку заказа" не работает Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення PRICE MASTER - Модуль імпорту/експорту товарів, парсинг, переклад, генерація текстів, редактор каталогу та багато іншого Автор: ScriptBrains 1.0 Синхронізація Замовлень Rozetka.ua та Opencart Автор: sinco Product Manipulator Автор: Hiperlynx007 Видалення дублікатів товарів для OpenCart Автор: Hatshypsut Вибір категорій і виробників для "Знайшли дешевше" шаблону Upstore Автор: Flint2000
Venter Опубліковано: 21 лютого 2022 Share Опубліковано: 21 лютого 2022 по вашей догике В 21.02.2022 в 15:37, nash сказал: если есть в корзине хоть один товар с определенным артикулом, то ставим вторую цену, иначе первую. Но почему-то всегда ставит первую в $countProdBox2 пусто или вообще ничего нету Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 21 лютого 2022 Share Опубліковано: 21 лютого 2022 В 21.02.2022 в 15:37, nash сказал: AND customer_id = '" . (int)$this->customer->getId() . "' AND session_id = '" . $this->db->escape($this->session->getId()) . "'"); вы дествительно копипастите или не понимате что пишете зачем $this->db->escape($this->session->getId()) правильно будет наверно (int)$this->session->getId() вот это условие зачем? AND api_id = '" . (isset($this->session->data['api_id']) ? (int)$this->session->data['api_id'] : 0) . "' Надіслати Поділитися на інших сайтах More sharing options... nash Опубліковано: 21 лютого 2022 Автор Share Опубліковано: 21 лютого 2022 (змінено) 21.02.2022 в 15:40, Venter сказал: (int)$this->session->getId() это будет неправильно. 21.02.2022 в 15:40, Venter сказал: AND api_id = '" . (isset($this->session->data['api_id']) ? (int)$this->session->data['api_id'] : 0) . "' оно необязательно и в данном случае ни на что не влияет. в переменных значения есть. Обратил внимание, что если в модели пропишу статически: а в админке поставлю 300, то он берет 300 из настроек! отсюда - $this->config->get('handling_fee') Змінено 21 лютого 2022 користувачем nash Надіслати Поділитися на інших сайтах More sharing options... nash Опубліковано: 21 лютого 2022 Автор Share Опубліковано: 21 лютого 2022 (змінено) все разобрался, спасибо 'value' => ($countProdBox2 > 0) ? $B : $A, Змінено 21 лютого 2022 користувачем nash Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 21 лютого 2022 Share Опубліковано: 21 лютого 2022 В 21.02.2022 в 16:52, nash сказал: В 21.02.2022 в 16:40, Venter сказал: (int)$this->session->getId() это будет неправильно. ?????? Надіслати Поділитися на інших сайтах More sharing options... nash Опубліковано: 21 лютого 2022 Автор Share Опубліковано: 21 лютого 2022 21.02.2022 в 16:41, Venter сказал: ?????? 1 Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 1 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 2.x Opencart 2.x: Пісочниця Учитывать в заказе "Оплата за обработку заказа" не работает
Venter Опубліковано: 21 лютого 2022 Share Опубліковано: 21 лютого 2022 В 21.02.2022 в 15:37, nash сказал: AND customer_id = '" . (int)$this->customer->getId() . "' AND session_id = '" . $this->db->escape($this->session->getId()) . "'"); вы дествительно копипастите или не понимате что пишете зачем $this->db->escape($this->session->getId()) правильно будет наверно (int)$this->session->getId() вот это условие зачем? AND api_id = '" . (isset($this->session->data['api_id']) ? (int)$this->session->data['api_id'] : 0) . "' Надіслати Поділитися на інших сайтах More sharing options... nash Опубліковано: 21 лютого 2022 Автор Share Опубліковано: 21 лютого 2022 (змінено) 21.02.2022 в 15:40, Venter сказал: (int)$this->session->getId() это будет неправильно. 21.02.2022 в 15:40, Venter сказал: AND api_id = '" . (isset($this->session->data['api_id']) ? (int)$this->session->data['api_id'] : 0) . "' оно необязательно и в данном случае ни на что не влияет. в переменных значения есть. Обратил внимание, что если в модели пропишу статически: а в админке поставлю 300, то он берет 300 из настроек! отсюда - $this->config->get('handling_fee') Змінено 21 лютого 2022 користувачем nash Надіслати Поділитися на інших сайтах More sharing options... nash Опубліковано: 21 лютого 2022 Автор Share Опубліковано: 21 лютого 2022 (змінено) все разобрался, спасибо 'value' => ($countProdBox2 > 0) ? $B : $A, Змінено 21 лютого 2022 користувачем nash Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 21 лютого 2022 Share Опубліковано: 21 лютого 2022 В 21.02.2022 в 16:52, nash сказал: В 21.02.2022 в 16:40, Venter сказал: (int)$this->session->getId() это будет неправильно. ?????? Надіслати Поділитися на інших сайтах More sharing options... nash Опубліковано: 21 лютого 2022 Автор Share Опубліковано: 21 лютого 2022 21.02.2022 в 16:41, Venter сказал: ?????? 1 Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 1 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
nash Опубліковано: 21 лютого 2022 Автор Share Опубліковано: 21 лютого 2022 (змінено) 21.02.2022 в 15:40, Venter сказал: (int)$this->session->getId() это будет неправильно. 21.02.2022 в 15:40, Venter сказал: AND api_id = '" . (isset($this->session->data['api_id']) ? (int)$this->session->data['api_id'] : 0) . "' оно необязательно и в данном случае ни на что не влияет. в переменных значения есть. Обратил внимание, что если в модели пропишу статически: а в админке поставлю 300, то он берет 300 из настроек! отсюда - $this->config->get('handling_fee') Змінено 21 лютого 2022 користувачем nash Надіслати Поділитися на інших сайтах More sharing options...
nash Опубліковано: 21 лютого 2022 Автор Share Опубліковано: 21 лютого 2022 (змінено) все разобрался, спасибо 'value' => ($countProdBox2 > 0) ? $B : $A, Змінено 21 лютого 2022 користувачем nash Надіслати Поділитися на інших сайтах More sharing options...
Venter Опубліковано: 21 лютого 2022 Share Опубліковано: 21 лютого 2022 В 21.02.2022 в 16:52, nash сказал: В 21.02.2022 в 16:40, Venter сказал: (int)$this->session->getId() это будет неправильно. ?????? Надіслати Поділитися на інших сайтах More sharing options... nash Опубліковано: 21 лютого 2022 Автор Share Опубліковано: 21 лютого 2022 21.02.2022 в 16:41, Venter сказал: ?????? 1 Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 1
nash Опубліковано: 21 лютого 2022 Автор Share Опубліковано: 21 лютого 2022 21.02.2022 в 16:41, Venter сказал: ?????? 1 Надіслати Поділитися на інших сайтах More sharing options...
Recommended Posts