В карточке товара статус "Под заказ"

Добрый день.



Два вопроса:

  1. Как сделать в карточке товара статус “Под заказ”
  2. И чтобы выгрузка в яндекс маркет шла тоже с таким же статусом?



    Ставила галочку “[color=#333333]Разрешить отрицательное количество товаров в наличии[/color]”, количество товара 0 и доступность “Предзаказ”, статус все равно остался “В наличии”, и выгрузка на маркет идет с тем же статусом. А надо, чтобы клиенты видели “Под заказ”.

[quote name='Olesia' timestamp='1437373158' post='223524']

Добрый день.



Два вопроса:

  1. Как сделать в карточке товара статус “Под заказ”
  2. И чтобы выгрузка в яндекс маркет шла тоже с таким же статусом?



    Ставила галочку “[color=#333333]Разрешить отрицательное количество товаров в наличии[/color]”, количество товара 0 и доступность “Предзаказ”, статус все равно остался “В наличии”, и выгрузка на маркет идет с тем же статусом. А надо, чтобы клиенты видели “Под заказ”.

    [/quote]


  1. Просто поменяйте текст “Нет в наличии” на “Под заказ” , или добавьте текст на карточку товара с условием, что нет на складе.


  2. Насколько я помню, для этой цели есть поле “YML Sales notes” в настройках товара (вкладка модули).

[quote name='dbazhenov' timestamp='1437381117' post='223536']

  1. Просто поменяйте текст “Нет в наличии” на “Под заказ” , или добавьте текст на карточку товара с условием, что нет на складе.



    [/quote]



    Заменила текст “Нет в наличии” на “Под заказ”, но столкнулась с проблемой: товар нельзя положить в корзину. Если при этом поставить галочку “[color=#333333]Разрешить отрицательное количество товаров в наличии[/color]”, то статус автоматом меняется на “В наличии”.



    Как сделать, чтобы при статусе “Нет в наличии” товар добавлялся в корзину?

[quote name=‘Olesia’ timestamp=‘1437478198’ post=‘223759’]

Заменила текст “Нет в наличии” на “Под заказ”, но столкнулась с проблемой: товар нельзя положить в корзину. Если при этом поставить галочку “[color=#333333]Разрешить отрицательное количество товаров в наличии[/color]”, то статус автоматом меняется на “В наличии”.



Как сделать, чтобы при статусе “Нет в наличии” товар добавлялся в корзину?

[/quote]



Нужно будет чуть чуть шаблон поправить. Модуль для дизайна не делали?

[quote name='dbazhenov' timestamp='1437498010' post='223808']

Нужно будет чуть чуть шаблон поправить. Модуль для дизайна не делали?

[/quote]

Сделала. Что именно нужно подправить?

[quote name=‘Olesia’ timestamp=‘1437550953’ post=‘223867’]

Сделала. Что именно нужно подправить?

[/quote]



Круто.



Вы хотите именно стандартные “В наличии” / “Нет в наличии” заменить?



Или что то дополнительное добавить?



Можно, например, не изменять стандартное, а рядом дополнительно написать в зависимости от количества.



Какой вариант будем делать?

[quote name=‘dbazhenov’ timestamp=‘1437551064’ post=‘223868’]

Круто.



Вы хотите именно стандартные “В наличии” / “Нет в наличии” заменить?



Или что то дополнительное добавить?



Можно, например, не изменять стандартное, а рядом дополнительно написать в зависимости от количества.



Какой вариант будем делать?

[/quote]



Мне оптимально подойдет полностью заменить статус “Нет в наличии” на “Под заказ”, и добавить ему функцию положить товар в корзину. Соответственно далее работать с ним, как с обычным заказом.



Статуса “Нет в наличии” вообще не будет. У нас стройматериалы, все, что продаем на сайте либо лежит на нашем складе либо у производителя, надо только привезти.

[quote name=‘Olesia’ timestamp=‘1437551833’ post=‘223869’]

Мне оптимально подойдет полностью заменить статус “Нет в наличии” на “Под заказ”, и добавить ему функцию положить товар в корзину. Соответственно далее работать с ним, как с обычным заказом.



Статуса “Нет в наличии” вообще не будет. У нас стройматериалы, все, что продаем на сайте либо лежит на нашем складе либо у производителя, надо только привезти.

[/quote]



Оке. Закончу с работой и расскажу как сделать сегодня.



Можете пока посмотреть виде 15-16 в плейлисте:

http://www.youtube.com/playlist?list=PL4okpC0OV7TQmBjqBe6_PXM_S2xRDVrKa



Так как я буду рассказывать про это.

[quote name=‘Olesia’ timestamp=‘1437551833’ post=‘223869’]

Мне оптимально подойдет полностью заменить статус “Нет в наличии” на “Под заказ”, и добавить ему функцию положить товар в корзину. Соответственно далее работать с ним, как с обычным заказом.



Статуса “Нет в наличии” вообще не будет. У нас стройматериалы, все, что продаем на сайте либо лежит на нашем складе либо у производителя, надо только привезти.

[/quote]


  1. Открываем файл:

    /design/themes/responsive/templates/common/product_data.tpl


  2. Находим строчки отвечающие за вывод “В наличии” при условии, что у нас разрешено отрицательное количество товара на складе (наша ситуация) , там просто много ситуаций. Я лично ищу по языковой переменной (in_stock).

    В результате приходим к:

[CODE]


{__("availability")}:
{__("in_stock")}
[/CODE]

3. Нам нужно заменить текст "В наличии" на наши два варианта, "В наличии" и "Под заказ". Меняем:

Было:
[CODE]{__("in_stock")}[/CODE]

Стало:

[CODE]
{if $product_amount > 0 }
{__("in_stock")}
{else}
Под заказ
{/if}

[/CODE]

4. Очищаем кэш. Супер получилось.

[b]Можно тоже самое сделать модулем, так как видим хуки [/b]{hook name="products:product_amount"}[b] рядом.[/b]

Для этого:

1. Создаём файл для нашего модуля файл, который будет подключаться к хуку и перезаписывать шаблон:
/design/themes/responsive/templates/addons/my_design/hooks/products/product_amount.override.tpl

2. Пилим код. Копируем весь код внутри хука в наш файл, и изменяем только нужный нам участок кода, не забываем оставлять комментарии, чтобы не забыть.

У меня такой код получился в файле модуля:
[spoiler]
[CODE]
{if $show_product_amount && $product.is_edp != "Y" && $settings.General.inventory_tracking == "Y"}


{if !$product.hide_stock_info}
{if $settings.Appearance.in_stock_field == "Y"}
{if $product.tracking != "ProductTracking::DO_NOT_TRACK"|enum}
{if ($product_amount > 0 && $product_amount >= $product.min_qty) && $settings.General.inventory_tracking == "Y" || $details_page}
{if ($product_amount > 0 && $product_amount >= $product.min_qty) && $settings.General.inventory_tracking == "Y"}

{__("availability")}:

{$product_amount} {__("items")}


{elseif $settings.General.inventory_tracking == "Y" && $settings.General.allow_negative_amount != "Y"}

{__("in_stock")}:
{$out_of_stock_text}

{/if}
{/if}
{/if}
{else}
{if ((($product_amount > 0 && $product_amount >= $product.min_qty) || $product.tracking == "ProductTracking::DO_NOT_TRACK"|enum) && $settings.General.inventory_tracking == "Y" && $settings.General.allow_negative_amount != "Y") || ($settings.General.inventory_tracking == "Y" && $settings.General.allow_negative_amount == "Y")}

{__("availability")}:


{if $product_amount > 0 }
{__("in_stock")}
{else}
Под заказ
{/if}



{elseif $details_page && ($product_amount <= 0 || $product_amount < $product.min_qty) && $settings.General.inventory_tracking == "Y" && $settings.General.allow_negative_amount != "Y"}

{__("availability")}:
{$out_of_stock_text}

{/if}
{/if}
{/if}

{/if}
[/CODE]
[/spoiler]

[quote name=‘dbazhenov’ timestamp=‘1437583925’ post=‘223997’] 1. Открываем файл: /design/themes/responsive/templates/common/product_data.tpl 2. Находим строчки отвечающие за вывод “В наличии” при условии, что у нас разрешено отрицательное количество товара на складе (наша ситуация) , там просто много ситуаций. Я лично ищу по языковой переменной (in_stock). В результате приходим к: <br /> {__("availability")}: {__("in_stock")}<br /> 3. Нам нужно заменить текст “В наличии” на наши два варианта, “В наличии” и “Под заказ”. Меняем: Было: {__("in_stock")} Стало: {if $product_amount > 0 } {__("in_stock")} {else} Под заказ {/if} 4. Очищаем кэш. Супер получилось. Можно тоже самое сделать модулем, так как видим хуки {hook name=“products:product_amount”} рядом. Для этого: 1. Создаём файл для нашего модуля файл, который будет подключаться к хуку и перезаписывать шаблон: /design/themes/responsive/templates/addons/my_design/hooks/products/product_amount.override.tpl 2. Пилим код. Копируем весь код внутри хука в наш файл, и изменяем только нужный нам участок кода, не забываем оставлять комментарии, чтобы не забыть. У меня такой код получился в файле модуля: [spoiler] {if $show_product_amount && $product.is_edp != "Y" && $settings.General.inventory_tracking == "Y"}<br /> {if !$product.hide_stock_info} {if $settings.Appearance.in_stock_field == "Y"} {if $product.tracking != "ProductTracking::DO_NOT_TRACK"|enum} {if ($product_amount > 0 && $product_amount >= $product.min_qty) && $settings.General.inventory_tracking == "Y" || $details_page} {if ($product_amount > 0 && $product_amount >= $product.min_qty) && $settings.General.inventory_tracking == "Y"}<br /> {__("availability")}: {$product_amount}&nbsp;{__("items")} {elseif $settings.General.inventory_tracking == "Y" && $settings.General.allow_negative_amount != "Y"}<br /> {__("in_stock")}: {$out_of_stock_text}{/if} {/if} {/if} {else} {if ((($product_amount > 0 && $product_amount >= $product.min_qty) || $product.tracking == "ProductTracking::DO_NOT_TRACK"|enum) && $settings.General.inventory_tracking == "Y" && $settings.General.allow_negative_amount != "Y") || ($settings.General.inventory_tracking == "Y" && $settings.General.allow_negative_amount == "Y")}<br /> {__("availability")}: {if $product_amount > 0 } {__("in_stock")} {else} Под заказ {/if} {elseif $details_page && ($product_amount <= 0 || $product_amount < $product.min_qty) && $settings.General.inventory_tracking == "Y" && $settings.General.allow_negative_amount != "Y"}<br /> {__("availability")}: {$out_of_stock_text}{/if} {/if} {/if} <br /> {/if} [/spoiler] [/quote]



Даниил, спасибо.



Сделала сперва по первому методу, разобралась, как это работает, добавила класс, чтобы заменить цвет для “Под заказ”. Затем создала хук, все отлично работает.

[quote name=‘Olesia’ timestamp=‘1437636925’ post=‘224041’]

Даниил, спасибо.



Сделала сперва по первому методу, разобралась, как это работает, добавила класс, чтобы заменить цвет для “Под заказ”. Затем создала хук, все отлично работает.

[/quote]



Отлично, вынесу в отдельную тему раздела “Сделай сам”

Немножко разъясните пожалуйста по допиливанию.

Если я правильно понял, суть Вашего дополнения в том что товар с 0 остатком становиться доступны для заказа и статусом "под заказ", а всё что, по остатку, выше 0 то есть в наличие.

  1. Вопрос такого плана, что происходит с остатком 0 если заказывают товар, он минусуется или мы проставляем галочки не рассчитывать остаток, и он стоит на месте, или что или как...
  2. Как я понимаю, товары с 0 остатком (ну и соответственно статусом "под заказ"), при выставленном в модуле яндекс маркет галочки "Экспортировать только товары, которые есть в наличии" не будут экспортироваться в яндекс маркет (меня это очень даже устроит)
  3. Нужно будет чуть чуть шаблон поправить. Модуль для дизайна не делали?

    В чём суть этого вопроса, я просто ничего не делал по модулю для дизайна. Дизайн сайта от шаблона vivashop (на маркете)

Спасибо за ответ)

Немножко разъясните пожалуйста по допиливанию.

Если я правильно понял, суть Вашего дополнения в том что товар с 0 остатком становиться доступны для заказа и статусом "под заказ", а всё что, по остатку, выше 0 то есть в наличие.

Спасибо за ответ)

1. Разъяснение по допиливанию:

Есть стандартные настройки:
- Отслеживание остатков
- Разрешить отрицательное количество товаров на складе.
- Настройка товара "Действие при отсутствии товара в наличии"
- Настройка товара "Расчёт количества товара в наличии"

При разном сочетании этих настроек магазин ведёт себя по разному. Бывает, что стандартное поведение какой то комбинации настроек не подходит пользователю или нужно добавить какой то логический вариант, который не удаётся настроить стандартными средствами. В этой ситуации требуется модификация шаблонов или скриптов, что и потребовалось в данном случае.

Честно говоря, я не вдавался в подробности настроек у Olesia, просто помог найти место где можно изменить логику и отображение необходимого функционала. Так как Olesia обладаёт стартовыми знаниями по модификации шаблонов и точно знает что ей нужно, она смогла доработать под себя.

2. Модификации дизайна лучше всего делать с помощью модуля, как сделать модуль для модификации дизайна я рассказываю здесь:
http://www.youtube.com/playlist?list=PL4okpC0OV7TQmBjqBe6_PXM_S2xRDVrKa

Если Вы перечислите настройки которые используете и что вам требуется изменить, то я постараюсь помочь, подскажу в каких файлах необходимо вносить изменения.

Это тема "Сделай сам", если Вы не уверены, что можете внести изменения в код самостоятельно, рекомендую обратиться к интеграторам.

мне нужно, чтобы при отрицательном значении наличия и отключенном отслеживании была надпись "Под заказ 3-5 дней"

добавил такой код, но ничего не меняется. Где ошибка?

                {elseif $details_page && ($product_amount < 0 || $product_amount < $product.min_qty) && $settings.General.inventory_tracking != "Y" && $settings.General.allow_negative_amount == "Y"}
                    
{__("availability")}: {__("pod_zakaz")}
{/if}

мне нужно, чтобы при отрицательном значении наличия и отключенном отслеживании была надпись "Под заказ 3-5 дней"

добавил такой код, но ничего не меняется. Где ошибка?

                {elseif $details_page && ($product_amount < 0 || $product_amount < $product.min_qty) && $settings.General.inventory_tracking != "Y" && $settings.General.allow_negative_amount == "Y"}
                    
{__("availability")}: {__("pod_zakaz")}
{/if}

Проверяйте настройки и очистите кэш удалением папки /var/cache

Вообще, я всегда, прежде чем вносить изменения, нахожу нужное место и вывожу слово "Тест" . И пока я слово "Тест" не увижу, дальше не думаю, ищу нужное место.

Как вы хотите наугад за один раз и место найти и нужные изменения сделать, я не понимаю :)

Кэш естественно чистил.

$settings.General.inventory_tracking - это глобальная переменная в настройках магазина или индивидуальная у товара?

Кэш естественно чистил.
$settings.General.inventory_tracking - это глобальная переменная в настройках магазина или индивидуальная у товара?

$product - товар

$addons - модули

$settings - настройки магазина

Сделал замену хука таким кодом

{if $show_product_amount && $product.is_edp != "Y" && $settings.General.inventory_tracking == "Y"}
    
{if !$product.hide_stock_info} {if $settings.Appearance.in_stock_field == "Y"} {if $product.tracking != "ProductTracking::DO_NOT_TRACK"|enum} {if ($product_amount > 0 && $product_amount >= $product.min_qty) && $settings.General.inventory_tracking == "Y" || $details_page} {if ($product_amount > 0 && $product_amount >= $product.min_qty) && $settings.General.inventory_tracking == "Y"}
{__("availability")}: {$product_amount} {__("items")}
{elseif $settings.General.inventory_tracking == "Y" && $settings.General.allow_negative_amount != "Y"}
{__("in_stock")}: {$out_of_stock_text}
{/if} {/if} {/if} {else} {if ((($product_amount > 0 && $product_amount >= $product.min_qty) || $product.tracking == "ProductTracking::DO_NOT_TRACK"|enum) && $settings.General.inventory_tracking == "Y" && $settings.General.allow_negative_amount != "Y") || ($settings.General.inventory_tracking == "Y" && $settings.General.allow_negative_amount == "Y")}
{__("availability")}: {if ($category_data.category_id == 254)} {if ($product_amount > 10 && $product.tracking != "ProductTracking::DO_NOT_TRACK"|enum)} {__("in_stock")} {elseif ($product_amount <= 10 && $product.tracking != "ProductTracking::DO_NOT_TRACK"|enum)} {__("izgotovim_57")} {elseif ($product_amount > 0 && $product.tracking == "ProductTracking::DO_NOT_TRACK"|enum)} {__("in_stock")} {elseif ($product_amount <= 0 && $product.tracking == "ProductTracking::DO_NOT_TRACK"|enum)} {$out_of_stock_text} {/if} {else} {if ($product_amount > 0 && $product.tracking != "ProductTracking::DO_NOT_TRACK"|enum)} {__("in_stock")} {elseif ($product_amount == 35 && $product.tracking == "ProductTracking::DO_NOT_TRACK"|enum)} {__("pod_zakaz_35")} {elseif ($product_amount == 57 && $product.tracking == "ProductTracking::DO_NOT_TRACK"|enum)} {__("pod_zakaz_57")} {elseif ($product_amount == 710 && $product.tracking == "ProductTracking::DO_NOT_TRACK"|enum)} {__("pod_zakaz_710")} {elseif ($product_amount == 1014 && $product.tracking == "ProductTracking::DO_NOT_TRACK"|enum)} {__("pod_zakaz_1014")} {elseif ($product_amount > 0 && $product.tracking == "ProductTracking::DO_NOT_TRACK"|enum)} {__("in_stock")} {/if} {/if}
{elseif $details_page && ($product_amount <= 0 || $product_amount < $product.min_qty) && $settings.General.inventory_tracking == "Y" && $settings.General.allow_negative_amount != "Y"}
{__("availability")}: {$out_of_stock_text}
{/if} {/if} {/if}
{/if}

кратко - если id категории = 254, то выводить нужные мне статусы склада к товару. в категории работает, но это условие не работает в карточке товара из категории id = 254

Наглядно тут

Как решить?

Все, меня осенило на ночь глядя

{if ($category_data.category_id == 254 || $product.main_category == 254)}

Здравствуйте, хочу сделать первым способом, меняю все по инструкции, у меня сделан клон темы ( ее использую по умолчанию), меняю в ее путях в файле переменные как описано выше, включаю "разрешить наличие отрицательного количества товара на складе", очищаю кэш, но изменений никаких не происходит

[url=http://radikal.ru/fp/7564069a8d094803ad02b1ac331b76bb]e8fd6406591at.jpg[/url]