[quote name=‘rgilaev’ timestamp=‘1393406580’ post=‘178299’]
Тестировал на клиентах, вроде довольны)
[/quote]
Как красиво и устрашающе написал
[quote name='dbazhenov' timestamp='1393389112' post='178260']
Я для одного магазина делал обмен через CSV , там со стороны 1С была выгрузка в CSV , а CS-Cart его кушал и по полочкам раскладывал.
[/quote]
Ну я вот и думаю сейчас написать преобразование их выгрузки в нормальную xml или csv, своими руками через php. просто пока руки не доходят.
Здравствуйте! Пытаюсь добавить выпадающий список для включения/отключения выгрузки в Яндекс.Маркет в списке товаров в админке. (см. вложение)
<br />
<select name="products_data[{$product.product_id}][yml_export_yes]" id="product_description_yml_export_yes"><br />
<option value="Y" {if $product.yml_export_yes == "Y"}selected="selected"{/if}>{__("yml_true")}</option><br />
<option value="N" {if $product.yml_export_yes == "N"}selected="selected"{/if}>{__("yml_false")}</option><br />
</select><br />
Данный код добавляет выпадающий список, изменения проходят успешно, т. е. значение сохраняется в БД. Но при просмотре списка товаров везде значение “Да”, т. е. загрузка значений из БД проходит некорректно. Думаю, проблема в том, что переменная $product.yml_export_yes имеет пустое значение. Подскажите, пожалуйста, как решить данную проблему?
[quote name=‘ymva’ timestamp=‘1394477256’ post=‘179056’]
Здравствуйте!
Но при просмотре списка товаров везде значение “Да”, т. е. загрузка значений из БД проходит некорректно. Думаю, проблема в том, что переменная $product.yml_export_yes имеет пустое значение. Подскажите, пожалуйста, как решить данную проблему?
[/quote]
Привет.
Это связано с тем, что:
- Для детальной страницы товаров, данные о товаре получаются полностью, в том числе все данные yml .
- Для страницы списка товаров идёт получение ограниченного среза данных о товаре.
Вы можете стандартной функциональностью:
- Использовать массовое редактирование товаров, где доступны поля yml .
- Использовать массовое редактирование через импорт/экспорт CSV .
Если Вы хотите, что Ваш селектбокс заработал, то необходимо вытащить данные yml на страницу списка товаров. Это можно сделать двумя вариантами:
- Post контроллер products.php
- Через хук в функции “fn_get_products”.
[quote name='dbazhenov' timestamp='1394518962' post='179077']
Привет.
Это связано с тем, что:
- Для детальной страницы товаров, данные о товаре получаются полностью, в том числе все данные yml .
- Для страницы списка товаров идёт получение ограниченного среза данных о товаре.
Вы можете стандартной функциональностью:
- Использовать массовое редактирование товаров, где доступны поля yml .
- Использовать массовое редактирование через импорт/экспорт CSV .
Если Вы хотите, что Ваш селектбокс заработал, то необходимо вытащить данные yml на страницу списка товаров. Это можно сделать двумя вариантами:
- Post контроллер products.php
- Через хук в функции “fn_get_products”.
[/quote]
Не могу найти, где описана функция “fn_get_products”, подскажите, куда копать?
[quote name=‘ymva’ timestamp=‘1394566198’ post=‘179126’]
Не могу найти, где описана функция “fn_get_products”, подскажите, куда копать?
[/quote]
Почти все функции по получению и обработке товаров находятся в файле app/functions/fn.catalog.php
Вам необходимо достать все данные по каждому товару из таблицы products базы данных.
В функции “fn_get_products” есть условие:
<br />
if (empty($params['only_short_fields'])) {<br />
$fields = array (<br />
'products.*',<br />
);<br />
} else {<br />
$fields = array (<br />
'products.product_id',<br />
'products.product_code',<br />
'products.product_type',<br />
'products.status',<br />
'products.company_id',<br />
'products.list_price',<br />
'products.amount',<br />
'products.weight',<br />
'products.tracking',<br />
'products.is_edp',<br />
);<br />
}
Соответственно, чтобы получить все данные товара, нам нужно всего лишь задать перед этим условием:
$params['only_short_fields'] = 0;
В функции:
fn_get_products
перед необходимым нам условием, есть хук:
fn_set_hook('get_products_pre', $params, $items_per_page, $lang_code);
в котором доступны необходимые нам:
$params
Будем использовать данный хук.
- Инициализируем данный хук в модуле “My_changes”.
1.1 Создаём новый файл: app/addons/my_changes/init.php
1.2 Вставляем туда код:
[CODE]
if (!defined('BOOTSTRAP')) { die('Access denied'); }
fn_register_hooks(
'get_products_pre'
);[/CODE]
2. Пишем функцию которую будет выполнять хук:
2.1 Создаём файл: app/addons/my_changes/func.php
2.2 Вставляем туда код с функцией:
[CODE]
<?php
// подключаем класс Registry
use Tygh\Registry;
if (!defined('BOOTSTRAP')) { die('Access denied'); }
// Наша функция. Обязательно иметь название вида: fn_название_модуля_название_хука
function fn_my_changes_get_products_pre(&$params, $items_per_page, $lang_code)
{
// Если это страница списка товаров
if(Registry::get('runtime.controller') == 'products' && Registry::get('runtime.mode') == 'manage') {
$params['only_short_fields'] = 0;
}
}[/CODE]
3. Включаем модуль "My_changes"
Теперь на странице "Товары" будут доступны все данные по YML .
[quote name=‘dbazhenov’ timestamp=‘1394618772’ post=‘179155’]
Почти все функции по получению и обработке товаров находятся в файле app/functions/fn.catalog.php
Вам необходимо достать все данные по каждому товару из таблицы products базы данных.
В функции “fn_get_products” есть условие:
<br />
if (empty($params['only_short_fields'])) {<br />
$fields = array (<br />
'products.*',<br />
);<br />
} else {<br />
$fields = array (<br />
'products.product_id',<br />
'products.product_code',<br />
'products.product_type',<br />
'products.status',<br />
'products.company_id',<br />
'products.list_price',<br />
'products.amount',<br />
'products.weight',<br />
'products.tracking',<br />
'products.is_edp',<br />
);<br />
}
Соответственно, чтобы получить все данные товара, нам нужно всего лишь задать перед этим условием:
$params['only_short_fields'] = 0;
В функции:
fn_get_products
перед необходимым нам условием, есть хук:
fn_set_hook('get_products_pre', $params, $items_per_page, $lang_code);
в котором доступны необходимые нам:
$params
Будем использовать данный хук.
- Инициализируем данный хук в модуле “My_changes”.
1.1 Создаём новый файл: app/addons/my_changes/init.php
1.2 Вставляем туда код:
[CODE]
if (!defined('BOOTSTRAP')) { die('Access denied'); }
fn_register_hooks(
'get_products_pre'
);[/CODE]
2. Пишем функцию которую будет выполнять хук:
2.1 Создаём файл: app/addons/my_changes/func.php
2.2 Вставляем туда код с функцией:
[CODE]
<?php
// подключаем класс Registry
use Tygh\Registry;
if (!defined('BOOTSTRAP')) { die('Access denied'); }
// Наша функция. Обязательно иметь название вида: fn_название_модуля_название_хука
function fn_my_changes_get_products_pre(&$params, $items_per_page, $lang_code)
{
// Если это страница списка товаров
if(Registry::get('runtime.controller') == 'products' && Registry::get('runtime.mode') == 'manage') {
$params['only_short_fields'] = 0;
}
}[/CODE]
3. Включаем модуль "My_changes"
Теперь на странице "Товары" будут доступны все данные по YML .
[/quote]
Спасибо!
Дамы и Господа, подскажите как Вы печатаете бланки для почты России для наложки и оплаченных заказов, если по умолчанию в локализованной версии их нет? И локализаторы не очень хотят их добавить в локализацию
Ммм… удобно когда эти сервисы как минимум интегрированы или включаются/выключаются в админке магазина.
Сливать данные о клиентах в 100-500 сервисов плохой план.
Я вот просто не представляю как работают остальные и почему нет об этом и полслова.
Лично мы печатаем порядка 20-30 бланков в день, заполнять их в ручную это ад…
P.S. приятно удивлено практически мгновенной реакцией с Вашей стороны
Ваш пост загадочным образом исчез ?!
[quote name='Skay' timestamp='1394703417' post='179229']
Ваш пост загадочным образом исчез ?!
[/quote]
Что то подумал, подождать ответа от других пользователей, поэтому удалил.
[quote name='Skay' timestamp='1394701906' post='179226']
Ммм… удобно когда эти сервисы как минимум интегрированы или включаются/выключаются в админке магазина.
Лично мы печатаем порядка 20-30 бланков в день, заполнять их в ручную это ад…
[/quote]
Это Вы присылали в HelpDesk simtechdev.com варианты бланков?
[quote name='dbazhenov' timestamp='1394703780' post='179231']
Это Вы присылали в HelpDesk simtechdev.com варианты бланков?
[/quote]
Да, но это старые образцы
у меня есть реализованный мод для этого дела на 2.2.4, если Вы можете сконвертируйте для 4.х.х ?
[quote name='Skay' timestamp='1394705678' post='179238']
Да, но это старые образцы
у меня есть реализованный мод для этого дела на 2.2.4, если Вы можете сконвертируйте для 4.х.х ?
[/quote]
Можем. Давайте обсудим в HelpDesk.
[quote name='dbazhenov' timestamp='1394707739' post='179243']
Можем. Давайте обсудим в HelpDesk.
[/quote]
Куда мне стукнуться, или напишите мне сами
[quote name='Skay' timestamp='1394709024' post='179245']
Куда мне стукнуться, или напишите мне сами
[/quote]
simtechdev.com в личный кабинет.
Кстати назрела еще такая необходимость. В связи с резкими скачками курса валют, приходится обновлять цены
Как это лучше реализовать стандартными средствами карта?
Исходные данные:
- Товары закупаются в валютах: доллары, евро, фунты стерлингов.
- Необходимо иметь историю заказов со всеми ценами и их историей изменения ( Сейчас при изменении цены, она автоматом меняется и в старых заказах, что автоматически ведет собой искажение статистики продаж)
- Необходимость уведомлять клиента об изменении цены
и еще один вопрос, как настроить вывод отчетов, что учитывались только доставленные и оплаченные заказы при подсчете статистики продаж ?
[quote name='Skay' timestamp='1395049027' post='179417']
2. Необходимо иметь историю заказов со всеми ценами и их историей изменения ( Сейчас при изменении цены, она автоматом меняется и в старых заказах, что автоматически ведет собой искажение статистики продаж)
[/quote]
Только что проверил. В заказе сохраняется цена на момент заказа. Последующее изменение целы на созданный заказ не влияет.
[quote name='Skay' timestamp='1395049027' post='179417']
и еще один вопрос, как настроить вывод отчетов, что учитывались только доставленные и оплаченные заказы при подсчете статистики продаж ?
[/quote]
Отчеты о продажах настраиваются, можете создать свой отчёт с необходимыми статусами.
[quote name='Skay' timestamp='1395049027' post='179417']
[color=#282828][font=arial, verdana, tahoma, sans-serif]3. Необходимость уведомлять клиента об изменении цены[/font][/color]
[/quote]
Обычно о изменениях сообщают через рассылки и новости.
[quote name=‘Skay’ timestamp=‘1395049027’ post=‘179417’]
[color=#282828][font=arial, verdana, tahoma, sans-serif]1. Товары закупаются в валютах: доллары, евро, фунты стерлингов.[/font][/color]
[/quote]
Вы же имеете на руках список товаров с закупочными ценами в формате Excel.
Импорт/экспорт CSV по полям Product code и Price.
В CS-Cart есть функция “Общее обновление”
http://demo.cs-cart…s.global_update
Это если нужно за одну кнопку увеличить цену всех товаров на 2%
А так конечно легче обновлять все цены через импорт/экспорт
[quote name=‘dbazhenov’ timestamp=‘1395049894’ post=‘179419’]
Вы же имеете на руках список товаров с закупочными ценами в формате Excel.
Импорт/экспорт CSV по полям Product code и Price.
В CS-Cart есть функция “Общее обновление”
http://demo.cs-cart…s.global_update
Это если нужно за одну кнопку увеличить цену всех товаров на 2%
А так конечно легче обновлять все цены через импорт/экспорт
[/quote]
Нет, не имею.
И что делать если нужно увеличить не у всех товаров а выборочно?
Часть продукции закупается в рублях и все они от одного производителя в одном каталоге.
Отличительный признак что в валюте закупается, есть в названии артикула, можно это процесс как то автоматизировать?
[quote name='Skay' timestamp='1395054432' post='179422']
Нет, не имею.
И что делать если нужно увеличить не у всех товаров а выборочно?
Часть продукции закупается в рублях и все они от одного производителя в одном каталоге.
Отличительный признак что в валюте закупается, есть в названии артикула, можно это процесс как то автоматизировать?
[/quote]
Можно автоматизировать, но предстоит кодировать.
А если сделать экспорт товаров в CSV и в CSV поправить цены, а потом импортировать.
Просто табличные редакторы Libre или Excel довольна гибкие, позволяют массово обновлять цены, по формулам и условиям.