trainracing Опубликовано 27 мая, 2015 Жалоба Поделиться Опубликовано 27 мая, 2015 Видно только админу, вводим цену закупки, можно с текстом, сохраняем, и все ок. Иногда полезно, чтоб не искать в 1с постоянно Приступим:Выполняем запрос в БД ALTER TABLE `s_products` ADD `zakupka` varchar(50) DEFAULT NULL в /simpla/ProductAdmin.php ищем строчку $product->featured = $this->request->post('featured') и вставляете после нее $product->zakupka = $this->request->post('zakupka'); в /simpla/design/html/product.tpl ищите строка 610: <!-- Левая колонка свойств товара --> <div id="column_left"> И ниже вставляете: <!-- закупочная цена --> <div class="block layer"> <ul> <li><div class="page_url" style="width: 83px;">ЗАКУПКА, {$currency->sign}</div><input class="name simpla_inp" name=zakupka type="text" value="{$product->zakupka|escape}" style="width: 100px;"/> </li> </ul> </div> <!-- закупочная цена (The End)--> в /api/products.php добавляем в функцию get_product (строка 112) ищем: $query = "SELECT p.id, p.url, и после p.url, ниже вставляем: p.zakupka, Аналогично в этом же файле после строки 238. Готово Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 27 мая, 2015 Жалоба Поделиться Опубликовано 27 мая, 2015 круто, только вы сделали просто дополнительное поле для товара, в которое можно вписать что угодно. только если у вас 2 и больше вариантов товара с разными ценами? цены лучше прикреплять к вариантам как это сделано в симпла с ценой и скидочной ценой Цитата Ссылка на сообщение Поделиться на другие сайты
trainracing Опубликовано 28 мая, 2015 Автор Жалоба Поделиться Опубликовано 28 мая, 2015 круто, только вы сделали просто дополнительное поле для товара, в которое можно вписать что угодно. только если у вас 2 и больше вариантов товара с разными ценами? цены лучше прикреплять к вариантам как это сделано в симпла с ценой и скидочной ценой Я не программист, и не разбираюсь в php/mysql как вы. Знаю только слегка примерно что куда. Цитата Ссылка на сообщение Поделиться на другие сайты
aleksoid Опубликовано 28 мая, 2015 Жалоба Поделиться Опубликовано 28 мая, 2015 А есть мысли, как это реализовать для вариантов товаров? и чтобы на общей странице продуктов редактировалось? Цитата Ссылка на сообщение Поделиться на другие сайты
Решение mishanya Опубликовано 28 мая, 2015 Решение Жалоба Поделиться Опубликовано 28 мая, 2015 (изменено) выполнить запрос к базе: ALTER TABLE `s_variants` ADD `purchase_price` DECIMAL(14,2) NULL AFTER `compare_price`; затем в api/variants.php в функции get_variants() и get_variant() в запрос добавить поле v.purchase_price примерно так: $query = $this->db->placehold("SELECT v.id, v.product_id , v.price, v.compare_price, v.purchase_price, ... в /simpla/design/html/product.tpl после (строка ~572): <li class="variant_discount">Старая, {$currency->sign}</li> добавим в названия закупочную цену: <li class="variant_price">Закупочная, {$currency->sign}</li> чуть ниже в этом же файле после (строка ~582): <li class="variant_discount"><input name="variants[compare_price][]" type="text" value="{$variant->compare_price|escape}" /></li> добавим нашу закупочную цену для существующего варианта товара: <li class="variant_price"><input name="variants[purchase_price][]" type="text" value="{$variant->purchase_price|escape}" /></li> ниже там же после (~строка 606): <li class="variant_discount"><input name="variants[compare_price][]" type="" value="" /></li>добавим закупочную цену для нового варианта (когда нажимаем на добавить вариант): <li class="variant_price"><input name="variants[purchase_price][]" type="" value="" /></li> чтобы вывести закупочную цену на общую страницу товаров нужно в /simpla/design/html/products.tpl после (~81 строка): <input class="price {if $variant->compare_price>0}compare_price{/if}" type="text" name="price[{$variant->id}]" value="{$variant->price}" {if $variant->compare_price>0}title="Старая цена — {$variant->compare_price} {$currency->sign}"{/if} />{$currency->sign} вывести поле для закупочной цены каждого варианта: <input class="price" type="text" name="purchase_price[{$variant->id}]" value="{$variant->purchase_price}" />{$currency->sign} дальше в обработчик /simpla/ProductsAdmin.php после (~строка 65): // Сохранение цен и наличия $prices = $this->request->post('price'); добавить: $purchase_prices = $this->request->post('purchase_price'); в этом же файле ниже фукцию (строка 70): foreach($prices as $id=>$price) { $stock = $stocks[$id]; if($stock == '∞' || $stock == '') $stock = null; $this->variants->update_variant($id, array('price'=>$price, 'stock'=>$stock)); } заменить на: foreach($prices as $id=>$price) { $stock = $stocks[$id]; $p_price = $purchase_prices[$id]; if($stock == '∞' || $stock == '') $stock = null; $this->variants->update_variant($id, array('price'=>$price, 'purchase_price'=>$p_price, 'stock'=>$stock)); } Изменено 4 июля, 2015 пользователем mishanya Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 28 мая, 2015 Жалоба Поделиться Опубликовано 28 мая, 2015 И хорошо бы новые поля обрабатывать в экспорте-импорте... Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 29 мая, 2015 Жалоба Поделиться Опубликовано 29 мая, 2015 (изменено) И хорошо бы новые поля обрабатывать в экспорте-импорте... для експорта открыть файл simpla/ajax/export.php и после (строка 16) 'compare_price'=> 'Старая цена', добавить: 'purchase_price'=> 'Закупочная цена', далее после (строка 128): $v['compare_price'] = $variant->compare_price; добавить $v['purchase_price'] = $variant->purchase_price; для импорта открыть файл simpla/ajax/import.php и после (строка 18) 'compare_price'=> array('compare price', 'старая цена'), добавить 'purchase_price'=> array('purchase price', 'закупочная цена'), после (строка 189) if(isset($item['compare_price'])) $variant['compare_price'] = trim($item['compare_price']); добавить if(isset($item['purchase_price'])) $variant['purchase_price'] = trim($item['purchase_price']); все. Изменено 4 июля, 2015 пользователем mishanya Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 29 мая, 2015 Жалоба Поделиться Опубликовано 29 мая, 2015 все.Несколько самоуверенно. Еще можно было бы в комментарий на странице импорта вывести новое поле... Цитата Ссылка на сообщение Поделиться на другие сайты
chubr Опубликовано 16 июня, 2015 Жалоба Поделиться Опубликовано 16 июня, 2015 подскажите, это с 1С будет выгружаться? Цитата Ссылка на сообщение Поделиться на другие сайты
shooroop Опубликовано 16 июня, 2015 Жалоба Поделиться Опубликовано 16 июня, 2015 подскажите, это с 1С будет выгружаться? выгружаться будет если вы настроите и добавите в обработчик 1c_exchange.php а так нет Цитата Ссылка на сообщение Поделиться на другие сайты
Tshcheglov Опубликовано 3 июля, 2015 Жалоба Поделиться Опубликовано 3 июля, 2015 Приветствую mishanya ! делал все по написанному - но есть проблема если на общей странице товаров поменять закупочную цену , то товар сохраняется , но закупочная цена при этом просто удаляется причем из всех товаров сразу Цитата Ссылка на сообщение Поделиться на другие сайты
Tshcheglov Опубликовано 3 июля, 2015 Жалоба Поделиться Опубликовано 3 июля, 2015 выполнить запрос к базе:ALTER TABLE `s_variants` ADD `purchase_price` DECIMAL(14,2) NULL AFTER `compare_price`; затем в api/variants.php в функции get_variants() и get_variant() в запрос добавить поле v.purchase_price примерно так:$query = $this->db->placehold("SELECT v.id, v.product_id , v.price, v.compare_price, v.purchase_price, ...в /simpla/design/html/product.tpl после (строка ~572):<li class="variant_discount">Старая, {$currency->sign}</li>добавим в названия закупочную цену:<li class="variant_price">Закупочная, {$currency->sign}</li> чуть ниже в этом же файле после (строка ~582):<li class="variant_discount"><input name="variants[compare_price][]" type="text" value="{$variant->compare_price|escape}" /></li>добавим нашу закупочную цену для существующего варианта товара:<li class="variant_price"><input name="variants[purchase_price][]" type="text" value="{$variant->purchase_price|escape}" /></li>ниже там же после (~строка 606):<li class="variant_discount"><input name="variants[compare_price][]" type="" value="" /></li>добавим закупочную цену для нового варианта (когда нажимаем на добавить вариант): <li class="variant_price"><input name="variants[purchase_price][]" type="" value="" /></li>чтобы вывести закупочную цену на общую страницу товаров нужно в /simpla/design/html/products.tpl после (~81 строка):<input class="price {if $variant->compare_price>0}compare_price{/if}" type="text" name="price[{$variant->id}]" value="{$variant->price}" {if $variant->compare_price>0}title="Старая цена — {$variant->compare_price} {$currency->sign}"{/if} />{$currency->sign} вывести поле для закупочной цены каждого варианта:<input class="price" type="text" name="purchase_price[{$variant->id}]" value="{$variant->purchase_price}" />{$currency->sign}дальше в обработчик /simpla/ProductsAdmin.php после (~строка 65):// Сохранение цен и наличия$prices = $this->request->post('price');добавить:$purchase_prices = $this->request->post('purchase_price');в этом же файле ниже фукцию (строка 70): foreach($prices as $id=>$price) { $stock = $stocks[$id]; if($stock == '∞' || $stock == '') $stock = null; $this->variants->update_variant($id, array('price'=>$price, 'stock'=>$stock)); } заменить на:foreach($prices as $id=>$price){ $stock = $stocks[$id]; $p_price = $purchase_price[$id]; if($stock == '∞' || $stock == '') $stock = null; $this->variants->update_variant($id, array('price'=>$price, 'purchase_price'=>$p_price, 'stock'=>$stock));}Приветствую mishanya !посмотрите? я проблемку выше описал Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 3 июля, 2015 Жалоба Поделиться Опубликовано 3 июля, 2015 Проблемка возникает из-за того, что в предпоследней инструкции используется переменная $purchase_prices, а в последней - ДРУГАЯ переменная $purchase_price. А должны быть одинаковые имена... Цитата Ссылка на сообщение Поделиться на другие сайты
LUN Опубликовано 3 июля, 2015 Жалоба Поделиться Опубликовано 3 июля, 2015 Круто, а можно сделать еще дополнительное поле, для поставщика? чтобы там отображалось название например ООО "Козявка" Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 4 июля, 2015 Жалоба Поделиться Опубликовано 4 июля, 2015 Круто, а можно сделать еще дополнительное поле, для поставщика? чтобы там отображалось название например ООО "Козявка"это нужно делать для товара, как выбор бренда, как по мне. Проблемка возникает из-за того, что в предпоследней инструкции используется переменная $purchase_prices, а в последней - ДРУГАЯ переменная $purchase_price. А должны быть одинаковые имена...обновил, спасибо! Цитата Ссылка на сообщение Поделиться на другие сайты
Tshcheglov Опубликовано 6 июля, 2015 Жалоба Поделиться Опубликовано 6 июля, 2015 Вот спасибо !теперь всё отлично Цитата Ссылка на сообщение Поделиться на другие сайты
Sharfik Опубликовано 12 декабря, 2016 Жалоба Поделиться Опубликовано 12 декабря, 2016 для експорта открыть файл simpla/ajax/export.php и после (строка 16) 'compare_price'=> 'Старая цена', добавить: 'purchase_price'=> 'Закупочная цена', далее после (строка 128): $v['compare_price'] = $variant->compare_price; добавить $v['purchase_price'] = $variant->purchase_price; для импорта открыть файл simpla/ajax/import.php и после (строка 18) 'compare_price'=> array('compare price', 'старая цена'), добавить 'purchase_price'=> array('purchase price', 'закупочная цена'), после (строка 189) if(isset($item['compare_price'])) $variant['compare_price'] = trim($item['compare_price']); добавить if(isset($item['purchase_price'])) $variant['purchase_price'] = trim($item['purchase_price']); все. Мишаня, большое спасибо за вашу работу! Отличное исполнение Цитата Ссылка на сообщение Поделиться на другие сайты
Sharfik Опубликовано 24 декабря, 2016 Жалоба Поделиться Опубликовано 24 декабря, 2016 А можно ли добавить закупочную цену в таблицу s_purchases при выгрузке базы данных? Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 24 декабря, 2016 Жалоба Поделиться Опубликовано 24 декабря, 2016 А можно ли добавить закупочную цену в таблицу s_purchases при выгрузке базы данных? что значит добавить при выгрузке бызы? можно передавать закупочную цену при оформлении заказа в покупки. Цитата Ссылка на сообщение Поделиться на другие сайты
Sharfik Опубликовано 24 декабря, 2016 Жалоба Поделиться Опубликовано 24 декабря, 2016 я веду статистику в экселе путем выгрузки базы phpmyadmin таблицы purchases. В этой таблице есть номера заказов, товары, цены, шт и артикул. Было бы очень здорово в эту таблицу добавить закупочную цену Цитата Ссылка на сообщение Поделиться на другие сайты
Sharfik Опубликовано 28 декабря, 2016 Жалоба Поделиться Опубликовано 28 декабря, 2016 У меня небольшой прогресс, я выполнил запросALTER TABLE `s_purchases` ADD `purchase_price` DECIMAL(14,2) NULL AFTER `sku`;и создал в таблице purchases столбец с закупочной ценой, но он заполнен NULL. Подскажите пожалуйста как ему теперь передать существующие значения закупочной цены? Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 28 декабря, 2016 Жалоба Поделиться Опубликовано 28 декабря, 2016 (изменено) У меня небольшой прогресс, я выполнил запросALTER TABLE `s_purchases` ADD `purchase_price` DECIMAL(14,2) NULL AFTER `sku`;и создал в таблице purchases столбец с закупочной ценой, но он заполнен NULL. Подскажите пожалуйста как ему теперь передать существующие значения закупочной цены? вам нужно при заказе передавать в эту цену в покупку. в файле api/Orders.php для ф-и add_purchase добавьте if(!isset($purchase->purchase_price) && !empty($variant)) { $purchase->purchase_price = $variant->purchase_price; } тогда это поле будет заполняться но для новых заказов. Изменено 28 декабря, 2016 пользователем mishanya Цитата Ссылка на сообщение Поделиться на другие сайты
Sharfik Опубликовано 29 декабря, 2016 Жалоба Поделиться Опубликовано 29 декабря, 2016 Мишаня! БОЛЬШОЕ СПАСИБО!! Куда можно благодарность направить? Цитата Ссылка на сообщение Поделиться на другие сайты
kislotnik Опубликовано 5 декабря, 2017 Жалоба Поделиться Опубликовано 5 декабря, 2017 выполнить запрос к базе: ALTER TABLE `s_variants` ADD `purchase_price` DECIMAL(14,2) NULL AFTER `compare_price`; затем в api/variants.php в функции get_variants() и get_variant() в запрос добавить поле v.purchase_price примерно так: $query = $this->db->placehold("SELECT v.id, v.product_id , v.price, v.compare_price, v.purchase_price, ... в /simpla/design/html/product.tpl после (строка ~572): <li class="variant_discount">Старая, {$currency->sign}</li> добавим в названия закупочную цену: <li class="variant_price">Закупочная, {$currency->sign}</li> чуть ниже в этом же файле после (строка ~582): <li class="variant_discount"><input name="variants[compare_price][]" type="text" value="{$variant->compare_price|escape}" /></li> добавим нашу закупочную цену для существующего варианта товара: <li class="variant_price"><input name="variants[purchase_price][]" type="text" value="{$variant->purchase_price|escape}" /></li> ниже там же после (~строка 606): <li class="variant_discount"><input name="variants[compare_price][]" type="" value="" /></li>добавим закупочную цену для нового варианта (когда нажимаем на добавить вариант): <li class="variant_price"><input name="variants[purchase_price][]" type="" value="" /></li> чтобы вывести закупочную цену на общую страницу товаров нужно в /simpla/design/html/products.tpl после (~81 строка): <input class="price {if $variant->compare_price>0}compare_price{/if}" type="text" name="price[{$variant->id}]" value="{$variant->price}" {if $variant->compare_price>0}title="Старая цена — {$variant->compare_price} {$currency->sign}"{/if} />{$currency->sign} вывести поле для закупочной цены каждого варианта: <input class="price" type="text" name="purchase_price[{$variant->id}]" value="{$variant->purchase_price}" />{$currency->sign} дальше в обработчик /simpla/ProductsAdmin.php после (~строка 65): // Сохранение цен и наличия $prices = $this->request->post('price'); добавить: $purchase_prices = $this->request->post('purchase_price'); в этом же файле ниже фукцию (строка 70): foreach($prices as $id=>$price) { $stock = $stocks[$id]; if($stock == '∞' || $stock == '') $stock = null; $this->variants->update_variant($id, array('price'=>$price, 'stock'=>$stock)); } заменить на: foreach($prices as $id=>$price) { $stock = $stocks[$id]; $p_price = $purchase_prices[$id]; if($stock == '∞' || $stock == '') $stock = null; $this->variants->update_variant($id, array('price'=>$price, 'purchase_price'=>$p_price, 'stock'=>$stock)); } Подскажите как вывести это поле на странице корзины? Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 5 декабря, 2017 Жалоба Поделиться Опубликовано 5 декабря, 2017 Подскажите как вывести это поле на странице корзины?видимо $purchase->variant->purchase_price Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.