Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

AnnaBez

Newbie
  
  • Posts

    24
  • Joined

  • Last visited

Everything posted by AnnaBez

  1. Я нашла в моем коде ошибку, не связанную с библиотекой, так что вопрос закрыт.
  2. Да, подключала, работает, но только если просто создать html, а я хотела чтобы с view взять html $html = '<html> <body> <div>Привет</div> </body> </html>';
  3. В контроллере я добавила функцию и попыталась html с данными из view сделать pdf, но ничего не выходит. Подскажите что я делаю не так? public function pdf_invoice($html){ $dompdf = new Dompdf(); $dompdf->loadHtml($html, 'UTF-8'); $dompdf->setPaper('A4', 'portrait'); $dompdf->render(); // Вывод файла в браузер: $dompdf->stream('my.pdf',array('Attachment'=>0)); } public function index() { ... $this->pdf_invoice($this->load->view('extension/payment/invoice', $data)); }
  4. Да, ведь доставка будет идти с разных складов и посылки приедут по отдельности.
  5. @chukcha, доставку организовывает сам продавец, поэтому покупатель будет отслеживать трек-номера этих заказов в личном кабинете, поэтому такая потребность возникла.
  6. Всем привет! В корзине есть товар 1 с продавцом id = 9 и товар 2 с продавцом id = 15, я хочу чтобы после нажатии кнопки оформить заказ создавался не один заказ, а два. Один принадлежит продавцу id = 9, другой id = 15. В модуле simplecheckout в контроллере simplecheckout.php нашла вызов метода order() который создает заказ. Вместо этого $order_id = $this->order(); Написала это $this->load->model('catalog/product'); $products_sellers = $this->model_catalog_product->getProductStoreSessionCart($this->session->getId()); foreach ($products_sellers as $product_seller) { $order_id = $this->order($product_seller['seller_id']); } Ну и сам метод подправила. private function order($seller_id) { ... $data['seller_id'] = $seller_id; ... } По идее в моделе seller_id успешно добавляется в колонку бд, но заказ все равно создается один заказ, а не два. class ModelCheckoutOrder extends Model { public function addOrder($data) { $this->db->query("INSERT INTO `" . DB_PREFIX . "order` SET invoice_prefix = '" . $this->db->escape($data['invoice_prefix']) . "', seller_id = '" . (int)$data['seller_id'] . "', .........."); } У кого есть какие-нибудь идеи? В тупике уже какой день =(
  7. Привет! Может быть кто сталкивался мне нужно чтобы если счет оплатил юр лицо, то статус заказа на сайте менялся на 'оплачен'. Я знаю, что так можно сделать с помощью модуля обмена с 1С. Но такой обмен человек будет выполнять раз в сутки, что неудобно. Рассматривала вариант api c банком, но не уверенна безопасно ли это. Есть у кого какие идеи?
  8. А если оплата только по счету для юр.лиц будет? То есть выставлен общий счет, покупатель оплачивает и 1С по всем заказам меняет статус "оплачено". Нюанс не отпадает?
  9. Всем привет! Как думаете, как можно реализовать такую идею, Например в корзине лежат товары трех производителей, при оформлении заказа выходит один заказ №120, а мне нужно чтобы было три разных заказа №121, №122, №123.То есть заказ разделился бы. У меня пал глаз на реализацию в model/checkout/order.php То есть добавила в insert "manufacture_id = '".(int)$product['manufacture_id']."'," и переместила запрос в foreach <?php class ModelCheckoutOrder extends Model { public function addOrder($data) { // Products if (isset($data['products'])) { foreach ($data['products'] as $product) { /*мои доработки*/ $this->db->query("INSERT INTO `" . DB_PREFIX . "order` SET invoice_prefix = '" . $this->db->escape($data['invoice_prefix']) . "', store_id = '" . (int)$data['store_id'] . "', manufacture_id = '".(int)$product['manufacture_id']."', store_name = '" . $this->db->escape($data['store_name']) . "', store_url = '" . $this->db->escape($data['store_url']) . "', customer_id = '" . (int)$data['customer_id'] . "', customer_group_id = '" . (int)$data['customer_group_id'] . "', firstname = '" . $this->db->escape($data['firstname']) . "', lastname = '" . $this->db->escape($data['lastname']) . "', email = '" . $this->db->escape($data['email']) . "', telephone = '" . $this->db->escape($data['telephone']) . "', custom_field = '" . $this->db->escape(isset($data['custom_field']) ? json_encode($data['custom_field']) : '') . "', payment_firstname = '" . $this->db->escape($data['payment_firstname']) . "', payment_lastname = '" . $this->db->escape($data['payment_lastname']) . "', payment_company = '" . $this->db->escape($data['payment_company']) . "', payment_address_1 = '" . $this->db->escape($data['payment_address_1']) . "', payment_address_2 = '" . $this->db->escape($data['payment_address_2']) . "', payment_city = '" . $this->db->escape($data['payment_city']) . "', payment_postcode = '" . $this->db->escape($data['payment_postcode']) . "', payment_country = '" . $this->db->escape($data['payment_country']) . "', payment_country_id = '" . (int)$data['payment_country_id'] . "', payment_zone = '" . $this->db->escape($data['payment_zone']) . "', payment_zone_id = '" . (int)$data['payment_zone_id'] . "', payment_address_format = '" . $this->db->escape($data['payment_address_format']) . "', payment_custom_field = '" . $this->db->escape(isset($data['payment_custom_field']) ? json_encode($data['payment_custom_field']) : '') . "', payment_method = '" . $this->db->escape($data['payment_method']) . "', payment_code = '" . $this->db->escape($data['payment_code']) . "', shipping_firstname = '" . $this->db->escape($data['shipping_firstname']) . "', shipping_lastname = '" . $this->db->escape($data['shipping_lastname']) . "', shipping_company = '" . $this->db->escape($data['shipping_company']) . "', shipping_address_1 = '" . $this->db->escape($data['shipping_address_1']) . "', shipping_address_2 = '" . $this->db->escape($data['shipping_address_2']) . "', shipping_city = '" . $this->db->escape($data['shipping_city']) . "', shipping_postcode = '" . $this->db->escape($data['shipping_postcode']) . "', shipping_country = '" . $this->db->escape($data['shipping_country']) . "', shipping_country_id = '" . (int)$data['shipping_country_id'] . "', shipping_zone = '" . $this->db->escape($data['shipping_zone']) . "', shipping_zone_id = '" . (int)$data['shipping_zone_id'] . "', shipping_address_format = '" . $this->db->escape($data['shipping_address_format']) . "', shipping_custom_field = '" . $this->db->escape(isset($data['shipping_custom_field']) ? json_encode($data['shipping_custom_field']) : '') . "', shipping_method = '" . $this->db->escape($data['shipping_method']) . "', shipping_code = '" . $this->db->escape($data['shipping_code']) . "', comment = '" . $this->db->escape($data['comment']) . "', total = '" . (float)$data['total'] . "', affiliate_id = '" . (int)$data['affiliate_id'] . "', commission = '" . (float)$data['commission'] . "', marketing_id = '" . (int)$data['marketing_id'] . "', tracking = '" . $this->db->escape($data['tracking']) . "', language_id = '" . (int)$data['language_id'] . "', currency_id = '" . (int)$data['currency_id'] . "', currency_code = '" . $this->db->escape($data['currency_code']) . "', currency_value = '" . (float)$data['currency_value'] . "', ip = '" . $this->db->escape($data['ip']) . "', forwarded_ip = '" . $this->db->escape($data['forwarded_ip']) . "', user_agent = '" . $this->db->escape($data['user_agent']) . "', accept_language = '" . $this->db->escape($data['accept_language']) . "', date_added = NOW(), date_modified = NOW()"); /*end*/ $order_id = $this->db->getLastId(); $this->db->query("INSERT INTO " . DB_PREFIX . "order_product SET order_id = '" . (int)$order_id . "', product_id = '" . (int)$product['product_id'] . "', name = '" . $this->db->escape($product['name']) . "', model = '" . $this->db->escape($product['model']) . "', quantity = '" . (int)$product['quantity'] . "', price = '" . (float)$product['price'] . "', total = '" . (float)$product['total'] . "', tax = '" . (float)$product['tax'] . "', reward = '" . (int)$product['reward'] . "'"); $order_product_id = $this->db->getLastId(); foreach ($product['option'] as $option) { $this->db->query("INSERT INTO " . DB_PREFIX . "order_option SET order_id = '" . (int)$order_id . "', order_product_id = '" . (int)$order_product_id . "', product_option_id = '" . (int)$option['product_option_id'] . "', product_option_value_id = '" . (int)$option['product_option_value_id'] . "', name = '" . $this->db->escape($option['name']) . "', `value` = '" . $this->db->escape($option['value']) . "', `type` = '" . $this->db->escape($option['type']) . "'"); } } } // Gift Voucher $this->load->model('extension/total/voucher'); Либо что-то в контроллере делать controller/checkout/simplechekout.php private function order() { // .... $this->load->model('checkout/order'); $order_id = 0; $customInfo = $this->simplecheckout->getCustomFields(array('customer', 'payment_address', 'payment', 'shipping_address', 'shipping'), 'order'); $data = array_merge($customInfo, $data); if ($version < 152) { $order_id = $this->model_checkout_order->create($data); // Gift Voucher if (isset($this->session->data['vouchers']) && is_array($this->session->data['vouchers'])) { $this->load->model('checkout/voucher'); foreach ($this->session->data['vouchers'] as $voucher) { $this->model_checkout_voucher->addVoucher($order_id, $voucher); } } } elseif ($version >= 152) { $order_id = $this->model_checkout_order->addOrder($data); } $this->session->data['order_id'] = $order_id; $this->simplecheckout->saveCustomFields(array('customer', 'payment_address', 'payment', 'shipping_address', 'shipping'), 'order', $order_id); $simple_cart_id = !empty($this->session->data['simple_cart_id']) ? $this->session->data['simple_cart_id'] : 0; if ($simple_cart_id) { $this->load->model('tool/simpleapi'); $this->model_tool_simpleapi->deleteAbandonedCart($simple_cart_id); } return $order_id; } В $order_id = $this->model_checkout_order->addOrder($data); здесь как раз вызывается метод, и я думаю может быть здесь можно разделить заказы по производителям. На этом все мои догадки кончились. Буду благодарна услышать подсказку. OpenCart 3.0.2
  10. Я не могу зайти в админку, после ввода пароля и логина выходит такая ошибка
  11. Warning: Invalid argument supplied for foreach() in /var/www/www-root/data/www/storage/modification/system/engine/loader.php on line 83Notice: Undefined property: Proxy::getTotalOrders in /var/www/www-root/data/www/storage/modification/system/engine/action.php on line 79 Восстанавливала бэкапы, очищала кэш, удаляла руками файлы модуля и не понятно что с этим делать. Может кто знает как это решить ?
  12. Здравствуйте! Возможно ли сделать фильтр по цене вот так? Или это только самостоятельно кастомизировать модуль фильтра?
  13. типо маркетплейса в котором продавцы продают свои товары
  14. Всем добрый день. Моя задача состоит в том, чтобы в корзине товары у которых общий продавец были сгруппированы. На скриншоте пример. Это контроллер simplecheckout_cart.php foreach ($products as $product) { $product_store = $this->model_catalog_product->getStorename($product['product_id']); ...... $this->_templateData['products'][$product_store] = array( 'store_name' => $product_store, 'key' => isset($product['key']) ? $product['key'] : '', 'cart_id' => isset($product['cart_id']) ? $product['cart_id'] : '', 'thumb' => $image, 'name' => $product['name'], 'model' => $product['model'], 'minimum' => $product['minimum'], 'option' => $option_data, 'recurring' => $recurring, 'quantity' => $product['quantity'], 'stock' => $product['stock'] ? true : !(!$this->config->get('config_stock_checkout') || $this->config->get('config_stock_warning')), 'reward' => ($product['reward'] ? sprintf($this->language->get('text_points'), $product['reward']) : ''), 'price' => $price, 'total' => $total, 'href' => $this->url->link('product/product', 'product_id=' . $product['product_id']) ); } А это simplecheckout_cart.twig {% for product_store in products %} Продавец {{ product_store['store_name'] }} {% for product in products %} ..... /* здесь стандартный вывод товара*/ {% endfor %} {% endfor %} Это не работает, как надо. Второй скриншот
  15. Совсем недавно погрузилась в OpenCart. Базовые знания есть по php, html, css. Так вот как вы смогли понять всю систему, логику OpenCart, смогли разрабатывать свои модули, простые и сложные? Что нужно изучить? Может быть какие-то курсы есть? Поделитесь советами новичку в этом деле =)
  16. {% for product in products %} <div class="product-block"> <div class="product-left"> <div class="store_name"> {% if product['store_name'] not in products %} Продавец {{ product['store_name'] }} {% endif %} </div> <div class="image "> {% if product['thumb'] %} <a href="{{ product['href'] }}"><img src="{{ product['thumb'] }}" alt="{{ product['name'] }}" title="{{ product['name'] }}" /></a> {% endif %} </div> </div> <div class="product-right"> <div class="name"> <a href="{{ product['href'] }}">{{ product['name'] }}</a> </div> </div> </div> {% endfor %} Массив выводит данные о товарах в корзине. Я пыталась что-то сделать наподобие этого, чтобы не выводились дубликаты массива {% if product['store_name'] not in products %} Продавец {{ product['store_name'] }} {% endif %} Есть функция в PHP array_unique(); Но не нашла как ее в twig использовать. Может быть кто подскажет ?
  17. Попробовала как вы сказали. Но вышла ошибка Undefined index: store_name in /model/catalog/product.php on line 12
  18. Попробовала как вы сказали. Но вышла ошибка Undefined index: store_name in /model/catalog/product.php on line 12
  19. В моделе catalog/product пытаюсь вывести значение store_name. Задача состоит в том, чтобы в корзине у каждого продукта вывести название продавца. public function getStorename($product_id){ $product_store_1 = $this->db->query("SELECT store_name FROM " . DB_PREFIX . "purpletree_vendor_stores WHERE seller_id = (SELECT seller_id FROM " . DB_PREFIX . "purpletree_vendor_products WHERE product_id = '.$product_id.')"); return $product_store_1; } в контроллере simplecheckout $this->load->model('catalog/product'); $product_store = $this->model_catalog_product->getStorename('store_name'); .... $this->_templateData['products'][] = array( 'store_name' => $product_store, .... ); И наконец в view Продавец {{ store_name }} Но в корзине выдает ошибку "Unknown: Object of class stdClass could not be converted to string in". Помогите пожалуйста как решить проблему.
  20. Это в контроллере "product/product". А брала куски кода из контроллера sellerstore
  21. Доброй ночи, ребят. В отчаянии прошу у вас совета. У меня маркетплейс. На детальной странице продукта мне нужно было вывести адрес склада продавца. Получилось, но не смотря на то, что переменная $store_detail нигде не объявлена в контроллере "product/product" почему-то вывелось. Мне нужно было вывести адрес склада продавца еще в корзине у каждого товара. Аналогично сделала в контроллере /simplecheckout_cart/, но тут уже пишет ошибку, что $store_detail не найдена. Думаю ладно. В контроллере "product/product" вызываются модели. Поискала в моделях эту переменную и не нашла. $this->load->model('extension/purpletree_multivendor/vendor'); $data['store_address'] = html_entity_decode($store_detail['store_address'], ENT_QUOTES, 'UTF-8'); $store_address = $data['store_address']; $data['products'][] = array( 'product_id' => $result['product_id'], 'thumb' => $image, 'name' => $result['name'], 'description' => utf8_substr(trim(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'))), 0, $this->config->get('theme_' . $this->config->get('config_theme') . '_product_description_length')) . '..', 'price' => $price, 'special' => $special, 'tax' => $tax, 'minimum' => $result['minimum'] > 0 ? $result['minimum'] : 1, 'rating' => $rating, 'store_address' => $store_address, 'href' => $this->url->link('product/product', 'product_id=' . $result['product_id']) );
×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.