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: Пісочниця Учитывать в заказе "Оплата за обработку заказа" не работает OpenCartForum Форум Модулі Шаблони Безкоштовні шаблониПлатні шаблони Блоги Новини ocStore Офіційний сайтДемо ocStore 3.0.3.2Демо ocStore 2.3.0.2.4Завантажити ocStoreДокументаціяІсторія версій ocStore Гість Українська Русский English Уже зареєстровані? Ввійти Реєстрація × Створити... 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: Пісочниця Учитывать в заказе "Оплата за обработку заказа" не работает
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