Русская локализация CS-Cart

[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 имеет пустое значение. Подскажите, пожалуйста, как решить данную проблему?

Снимок.JPG

[quote name=‘ymva’ timestamp=‘1394477256’ post=‘179056’]

Здравствуйте!

Но при просмотре списка товаров везде значение “Да”, т. е. загрузка значений из БД проходит некорректно. Думаю, проблема в том, что переменная $product.yml_export_yes имеет пустое значение. Подскажите, пожалуйста, как решить данную проблему?

[/quote]



Привет.

Это связано с тем, что:

  1. Для детальной страницы товаров, данные о товаре получаются полностью, в том числе все данные yml .
  2. Для страницы списка товаров идёт получение ограниченного среза данных о товаре.



    Вы можете стандартной функциональностью:
  3. Использовать массовое редактирование товаров, где доступны поля yml .
  4. Использовать массовое редактирование через импорт/экспорт CSV .



    Если Вы хотите, что Ваш селектбокс заработал, то необходимо вытащить данные yml на страницу списка товаров. Это можно сделать двумя вариантами:
  5. Post контроллер products.php
  6. Через хук в функции “fn_get_products”.

[quote name='dbazhenov' timestamp='1394518962' post='179077']

Привет.

Это связано с тем, что:

  1. Для детальной страницы товаров, данные о товаре получаются полностью, в том числе все данные yml .
  2. Для страницы списка товаров идёт получение ограниченного среза данных о товаре.



    Вы можете стандартной функциональностью:
  3. Использовать массовое редактирование товаров, где доступны поля yml .
  4. Использовать массовое редактирование через импорт/экспорт CSV .



    Если Вы хотите, что Ваш селектбокс заработал, то необходимо вытащить данные yml на страницу списка товаров. Это можно сделать двумя вариантами:
  5. Post контроллер products.php
  6. Через хук в функции “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[&#39;only_short_fields&#39;])) {<br /> $fields = array (<br /> &#39;products.*&#39;,<br /> );<br /> } else {<br /> $fields = array (<br /> &#39;products.product_id&#39;,<br /> &#39;products.product_code&#39;,<br /> &#39;products.product_type&#39;,<br /> &#39;products.status&#39;,<br /> &#39;products.company_id&#39;,<br /> &#39;products.list_price&#39;,<br /> &#39;products.amount&#39;,<br /> &#39;products.weight&#39;,<br /> &#39;products.tracking&#39;,<br /> &#39;products.is_edp&#39;,<br /> );<br /> }



Соответственно, чтобы получить все данные товара, нам нужно всего лишь задать перед этим условием:

$params[&#39;only_short_fields&#39;] = 0;



В функции:

fn_get_products

перед необходимым нам условием, есть хук:

fn_set_hook(&#39;get_products_pre&#39;, $params, $items_per_page, $lang_code);

в котором доступны необходимые нам:

$params



Будем использовать данный хук.


  1. Инициализируем данный хук в модуле “My_changes”.

    1.1 Создаём новый файл: app/addons/my_changes/init.php

    1.2 Вставляем туда код:


[CODE]

<?php

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[&#39;only_short_fields&#39;])) {<br /> $fields = array (<br /> &#39;products.*&#39;,<br /> );<br /> } else {<br /> $fields = array (<br /> &#39;products.product_id&#39;,<br /> &#39;products.product_code&#39;,<br /> &#39;products.product_type&#39;,<br /> &#39;products.status&#39;,<br /> &#39;products.company_id&#39;,<br /> &#39;products.list_price&#39;,<br /> &#39;products.amount&#39;,<br /> &#39;products.weight&#39;,<br /> &#39;products.tracking&#39;,<br /> &#39;products.is_edp&#39;,<br /> );<br /> }



Соответственно, чтобы получить все данные товара, нам нужно всего лишь задать перед этим условием:

$params[&#39;only_short_fields&#39;] = 0;



В функции:

fn_get_products

перед необходимым нам условием, есть хук:

fn_set_hook(&#39;get_products_pre&#39;, $params, $items_per_page, $lang_code);

в котором доступны необходимые нам:

$params



Будем использовать данный хук.


  1. Инициализируем данный хук в модуле “My_changes”.

    1.1 Создаём новый файл: app/addons/my_changes/init.php

    1.2 Вставляем туда код:


[CODE]

<?php

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 в личный кабинет.

Кстати назрела еще такая необходимость. В связи с резкими скачками курса валют, приходится обновлять цены

Как это лучше реализовать стандартными средствами карта?

Исходные данные:

  1. Товары закупаются в валютах: доллары, евро, фунты стерлингов.
  2. Необходимо иметь историю заказов со всеми ценами и их историей изменения ( Сейчас при изменении цены, она автоматом меняется и в старых заказах, что автоматически ведет собой искажение статистики продаж)
  3. Необходимость уведомлять клиента об изменении цены



    и еще один вопрос, как настроить вывод отчетов, что учитывались только доставленные и оплаченные заказы при подсчете статистики продаж ?

[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 довольна гибкие, позволяют массово обновлять цены, по формулам и условиям.