Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Recommended Posts

  В 06.06.2024 в 08:18, diex сказав:

Добрый день. Подскажите, есть ли выгрузка товаров в Allegro? 

Expand  

Добрый день! Уточните принимает XML?

Если да есть ссылка на документацию или пример фида?

Надіслати
Поділитися на інших сайтах

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

Настраиваю импорт по XML.

 

1) По умолчанию обновляются все поля, даже если их не настраивал?

Если мне нужно обновлять только остатки и цены, то остальные поля очистились.

Неприятная неожиданность. По логике не настроенные поля не должны обновляться.

Тогда нужно каждый тег переключателем "Запретить обновлять" ?

 

Или можно через код включить только обновление?

Типа разрешить менять только цену и кол-во.

$data['status'] = 'update'; //обновляем - это не помогло

 

2) Наличие в теге availability, настроил его в пункте Наличие/Кол-во и выбрал Что и на что заменять. Но оно не заменяет.

Остаток in_stock нужно заменить на 10 например. Но это не срабатывает и кол-во ставится в 0.

В результате есть [quantity] => in_stock в print_r($product);, а ожидал 10.

Что делаю не так и как правильно?

 

Ответ на п2. Сделал так при обходе товара.

$stock = $this->importGetXmlData($row, 'availability');
if ($stock === 'in_stock'){
  $stock = 18;
}else{
  $stock = 0;
}
$product['quantity'] = $stock;
$data['fields_p']['quantity'] = 'quantity';

Змінено користувачем ju2r4c
Надіслати
Поділитися на інших сайтах


  В 09.06.2024 в 19:59, ju2r4c сказав:

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

Настраиваю импорт по XML.

 

1) По умолчанию обновляются все поля, даже если их не настраивал?

Если мне нужно обновлять только остатки и цены, то остальные поля очистились.

Неприятная неожиданность. По логике не настроенные поля не должны обновляться.

Тогда нужно каждый тег переключателем "Запретить обновлять" ?

 

Или можно через код включить только обновление?

Типа разрешить менять только цену и кол-во.

$data['status'] = 'update'; //обновляем - это не помогло

 

2) Наличие в теге availability, настроил его в пункте Наличие/Кол-во и выбрал Что и на что заменять. Но оно не заменяет.

Остаток in_stock нужно заменить на 10 например. Но это не срабатывает и кол-во ставится в 0.

В результате есть [quantity] => in_stock в print_r($product);, а ожидал 10.

Что делаю не так и как правильно?

 

Ответ на п2. Сделал так при обходе товара.

$stock = $this->importGetXmlData($row, 'availability');
if ($stock === 'in_stock'){
  $stock = 18;
}else{
  $stock = 0;
}
$product['quantity'] = $stock;
$data['fields_p']['quantity'] = 'quantity';

Expand  

Добрый день!

1) Да. Надо ставить запрет на обновление где это надо. То есть на каждом элементе где не надо обновлять. Для изменения цены и наличия ставьте везде запреты кроме соответственно цены и наличия

2) Да, можно и так

  • +1 1
Надіслати
Поділитися на інших сайтах

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

Подскажите как делать сброс остатков в 0 перед импортом поставщика?

У каждого поставщика в магазине уже загружен свой код-идентификатор как приставка в sku, например int-158455, dd-4578.

Как сбросить в 0 все товары с приставкой определённой?

Потому что часто поставщик просто не выгружает товар в прайс, если его уже нет в наличии.

На скрине эта настройка не ясно как работает и как определяет поставщика.

Может это через код сделать проще? Как?

UniXML-1.jpg

Надіслати
Поділитися на інших сайтах


  В 10.06.2024 в 07:53, ju2r4c сказав:

Подскажите как делать сброс остатков в 0 перед импортом поставщика?

У каждого поставщика в магазине уже загружен свой код-идентификатор как приставка в sku, например int-158455, dd-4578.

Expand  

Все верно. Если загружены не модулем или же вручную что-то добавлено. Не важно.

Для того чтобы остатки в 0 то в пункте Кастомный код до импорта достаточно добавить

$this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = 0 WHERE sku LIKE 'int-%'");

или же

$this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = 0 WHERE sku LIKE 'dd-%'");

 

таком образом все обнуляем а потом импорт что находит - ставит наличие

  • +1 1
Надіслати
Поділитися на інших сайтах

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

Странно срабатывает импорт. Только одну позицию обрабатывает, остальные в 0 остаются.

И модуль пишет что 1 из 1 обновил, хотя там 600 позиций.

И если нажать "Прочитать структуру xml", то все товары видно.

Почему так и как исправить?

 

Кастомный код ДО импорта.

$this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = 0 WHERE sku LIKE 'int-%'");

 

Кастомный код при обходе товара.

$stock = $this->importGetXmlData($row, 'availability');
if ($stock === 'in_stock'){
  $stock = 18;
}else{
  $stock = 0;
}
$product['quantity'] = $stock;
$data['fields_p']['quantity'] = 'quantity';

 

Надіслати
Поділитися на інших сайтах


  В 10.06.2024 в 11:04, ju2r4c сказав:

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

Странно срабатывает импорт. Только одну позицию обрабатывает, остальные в 0 остаются.

И модуль пишет что 1 из 1 обновил, хотя там 600 позиций.

И если нажать "Прочитать структуру xml", то все товары видно.

Почему так и как исправить?

 

Кастомный код ДО импорта.

$this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = 0 WHERE sku LIKE 'int-%'");

 

Кастомный код при обходе товара.

$stock = $this->importGetXmlData($row, 'availability');
if ($stock === 'in_stock'){
  $stock = 18;
}else{
  $stock = 0;
}
$product['quantity'] = $stock;
$data['fields_p']['quantity'] = 'quantity';

 

Expand  

может быть что угодно. Например не указали в настройка ид товара. как правило там @id надо поставить

или неправильно указали ключ привязки

Надіслати
Поділитися на інших сайтах

Вот формат офера в выгрузке

<offer>
      <id>166468</id>
      <name>58292, білий</name>
      <short_name>58292</short_name>
      <price>3699</price>
      <availability>in_stock</availability>
    </offer>

 

Идентификация по "Артикул товара" как на скрине, а "id товара" пустой был.

Поставил там тоже id при этом НЕ настраивая связь к полю и заработало.

Спасибо.

То есть просто как пустая заглушка нужна там была?

UniXML-2.jpg

Надіслати
Поділитися на інших сайтах


  В 10.06.2024 в 11:33, ju2r4c сказав:

Вот формат офера в выгрузке

<offer>
      <id>166468</id>
      <name>58292, білий</name>
      <short_name>58292</short_name>
      <price>3699</price>
      <availability>in_stock</availability>
    </offer>

 

Идентификация по "Артикул товара" как на скрине, а "id товара" пустой был.

Поставил там тоже id при этом НЕ настраивая связь к полю и заработало.

Спасибо.

То есть просто как пустая заглушка нужна там была?

UniXML-2.jpg

Expand  

там где id товара - там 100% надо заполнять чтобы модуль разделял товары. Чтобы выдел все товары. А связь на sku все правильно настроили

Надіслати
Поділитися на інших сайтах

  В 17.06.2024 в 11:45, RomanDev сказав:

Добрый день , подскажите зависает модуль и вся страница с ним как только захожу ?
что может быть ? как исправить ?

Expand  

Добрый день! Уточните домен в личные сообщения, видео не открывается

Надіслати
Поділитися на інших сайтах

  • 2 weeks later...

доброго дня

чи можна якось вивантажити всі характеристики в опис?

пункт 3.4 Шаблон генерації опису товарів

щоб спочатку опи я так розумію таке ((pd.description))<br> а нижче всі характеристики? 

 

Змінено користувачем proplat
Надіслати
Поділитися на інших сайтах


  В 30.06.2024 в 10:42, proplat сказав:

доброго дня

чи можна якось вивантажити всі характеристики в опис?

пункт 3.4 Шаблон генерації опису товарів

щоб спочатку опи я так розумію таке ((pd.description))<br> а нижче всі характеристики? 

 

Expand  

доброго дня! можна в пункті 4.3 додати ось так

$attrs = [];
foreach($product['attributes'] as $ak => $av){
  $attrs[] = $av['name'] . ': ' . $av['name'];
}
if($attrs){
  $product['description'] .= '<br>' . implode('; ', $attrs);
}

 

  • +1 1
Надіслати
Поділитися на інших сайтах

  В 01.07.2024 в 16:22, Exploits сказав:

доброго дня! можна в пункті 4.3 додати ось так

$attrs = [];
foreach($product['attributes'] as $ak => $av){
  $attrs[] = $av['name'] . ': ' . $av['name'];
}
if($attrs){
  $product['description'] .= '<br>' . implode('; ', $attrs);
}

 

Expand  

не працює(

Надіслати
Поділитися на інших сайтах


  В 03.07.2024 в 06:52, proplat сказав:

не працює(

Expand  

дещо помилився ось

 

$attrs = [];
foreach($product['attributes'] as $ak => $av){
  $attrs[] = $av['name'] . ': ' . $av['text'];
}
if($attrs){
  $product['description'] .= '<br>' . implode('; ', $attrs);
}

Надіслати
Поділитися на інших сайтах

  В 03.07.2024 в 07:44, FeniXZT сказав:

Добрый день. Не подскажете как у одного из производителей можно выгрузить только акционные товары?

Expand  

Добрый день! Уточните это импорт или экспорт?

Если экспорт то в пункте 4.3 можно код

 

if($product['manufacturer'] == 'Бренд' && $product['special']){

  $product['price'] = $product['special'];

}

Надіслати
Поділитися на інших сайтах

  В 03.07.2024 в 07:02, Exploits сказав:

дещо помилився ось

 

$attrs = [];
foreach($product['attributes'] as $ak => $av){
  $attrs[] = $av['name'] . ': ' . $av['text'];
}
if($attrs){
  $product['description'] .= '<br>' . implode('; ', $attrs);
}

Expand  

а можна якось з багатомовним кодом скомбінувати під розетку під пром?

 

foreach($product['attributes'] as $attribute_id => $attribute){
  $attr_query = $this->db->query("SELECT text FROM " . DB_PREFIX . "product_attribute WHERE product_id = '" . (int)$product['product_original_id'] . "' AND attribute_id = '" . (int)$attribute_id . "' AND language_id = 3");
  $product['attributes_full'][] = array(
    'name' => 'param name="' . $attribute['name'] . '"',
    'text' => '<value lang="uk"><![CDATA[' . $attr_query->row['text'] . ']]></value><value lang="ru"><![CDATA[' . $attribute['text'] . ']]></value>',
    'end' => 'param',
    'decode' => true,
  );
  unset($product['attributes'][$attribute_id]);
}
if($product['quantity'] > 5){

$product['quantity'] = 5;

}

$attrs = [];
foreach($product['attributes'] as $ak => $av){
  $attrs[] = $av['name'] . ': ' . $av['text'];
}
if($attrs){
  $product['description'] .= '<br>' . implode('; ', $attrs);
}

Надіслати
Поділитися на інших сайтах


  В 03.07.2024 в 13:53, proplat сказав:

а можна якось з багатомовним кодом скомбінувати під розетку під пром?

 

foreach($product['attributes'] as $attribute_id => $attribute){
  $attr_query = $this->db->query("SELECT text FROM " . DB_PREFIX . "product_attribute WHERE product_id = '" . (int)$product['product_original_id'] . "' AND attribute_id = '" . (int)$attribute_id . "' AND language_id = 3");
  $product['attributes_full'][] = array(
    'name' => 'param name="' . $attribute['name'] . '"',
    'text' => '<value lang="uk"><![CDATA[' . $attr_query->row['text'] . ']]></value><value lang="ru"><![CDATA[' . $attribute['text'] . ']]></value>',
    'end' => 'param',
    'decode' => true,
  );
  unset($product['attributes'][$attribute_id]);
}
if($product['quantity'] > 5){

$product['quantity'] = 5;

}

$attrs = [];
foreach($product['attributes'] as $ak => $av){
  $attrs[] = $av['name'] . ': ' . $av['text'];
}
if($attrs){
  $product['description'] .= '<br>' . implode('; ', $attrs);
}

Expand  

Код не тестував але для вас має бути ось так. Якщо десь помилився то подивіться по коду але на перший погляд має спрацювати. 

$attrs = [];
$attrs_ua = [];
foreach($product['attributes'] as $attribute_id => $attribute){
  $sql = "SELECT pa.text, ad.name FROM " . DB_PREFIX . "product_attribute pa 
          LEFT JOIN attribute_description ad ON(pa.attribute_id = ad.attribute_id) 
          WHERE pa.product_id = '" . (int)$product['product_original_id'] . "' 
            AND pa.attribute_id = '" . (int)$attribute_id . "' 
            AND ad.attribute_id = '" . (int)$attribute_id . "' 
            AND ad.language_id = 3 
            AND pa.language_id = 3";
  $attr_query = $this->db->query($sql);
  
  $product['attributes_full'][] = array(
    'name' => 'param name="' . $attribute['name'] . '"',
    'text' => '<value lang="uk"><![CDATA[' . $attr_query->row['text'] . ']]></value><value lang="ru"><![CDATA[' . $attribute['text'] . ']]></value>',
    'end' => 'param',
    'decode' => true,
  );
  
  unset($product['attributes'][$attribute_id]);
  
  $attrs[] = $attribute['name'] . ': ' . $attribute['text'];
  $attrs_ua[] = $attr_query->row['name'] . ': ' . $attr_query->row['text'];
}
if($product['quantity'] > 5){
  $product['quantity'] = 5;
}

if($attrs){
  $product['description'] .= '<br>' . implode('; ', $attrs);
}
if($attrs_ua){
  $product['langdata'][3]['description'] .= '<br>' . implode('; ', $attrs_ua);
}

 

Надіслати
Поділитися на інших сайтах

  В 03.07.2024 в 12:40, Exploits сказав:

Добрый день! Уточните это импорт или экспорт?

Если экспорт то в пункте 4.3 можно код

 

if($product['manufacturer'] == 'Бренд' && $product['special']){

  $product['price'] = $product['special'];

}

Expand  

Экспорт. Спасибо, работает.

Надіслати
Поділитися на інших сайтах


Подскажите как для гугла вывести состояние товаров USED. Есть характеристика "Стан - Б/В" для этих товаров. Как сделать чтобы если стоит этот атрибут состояние товара выводилось как USED

Надіслати
Поділитися на інших сайтах


  В 08.07.2024 в 08:07, yurok79 сказав:

Подскажите как для гугла вывести состояние товаров USED. Есть характеристика "Стан - Б/В" для этих товаров. Как сделать чтобы если стоит этот атрибут состояние товара выводилось как USED

Expand  

В структуре белая кнопка справа </> там поставьте вместо new - used

Надіслати
Поділитися на інших сайтах

  В 08.07.2024 в 09:13, Exploits сказав:

В структуре белая кнопка справа </> там поставьте вместо new - used

Expand  

Так у меня не все USED. Только некоторые товары. Нужно чтобы и new и used было. used могу указать в атрибутах или например в EAN

 

Вот от гугла письмо https://prnt.sc/ZXpybsC0j_Gt

Змінено користувачем yurok79
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.