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

Recommended Posts

06.06.2024 в 11:18, diex сказал:

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

Добрый день! Уточните принимает 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
Надіслати
Поділитися на інших сайтах


On 6/9/2024 at 10:59 PM, ju2r4c said:

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

Настраиваю импорт по 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';

Добрый день!

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

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

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

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

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

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

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

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

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

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

UniXML-1.jpg

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


10.06.2024 в 10:53, ju2r4c сказал:

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

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

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

Для того чтобы остатки в 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 в 14: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';

 

может быть что угодно. Например не указали в настройка ид товара. как правило там @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 в 14: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

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

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

17.06.2024 в 14:45, RomanDev сказал:

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

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

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

  • 2 weeks later...

доброго дня

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

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

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

 

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


30.06.2024 в 13:42, proplat сказал:

доброго дня

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

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

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

 

доброго дня! можна в пункті 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 в 19:22, Exploits сказал:

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

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

 

не працює(

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


03.07.2024 в 09:52, proplat сказал:

не працює(

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

 

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

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

03.07.2024 в 10:44, FeniXZT сказал:

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

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

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

 

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

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

}

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

03.07.2024 в 10:02, Exploits сказал:

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

 

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

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

 

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 в 16: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);
}

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

$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 в 15:40, Exploits сказал:

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

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

 

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

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

}

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

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


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

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


08.07.2024 в 11:07, yurok79 сказал:

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

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

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

08.07.2024 в 11:13, Exploits сказал:

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

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

 

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

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


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

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

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

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

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

Вхід

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

Вхід зараз
×
×
  • Створити...

Important Information

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