Тема: Выгрузка в 1С и единственная комплектация
Здравствуйте!
Используем многомерные комплектации.
Если у товара имеется 1 размер , то при выгрузке в 1с не проставляется xml_id товарного предложения ("Ид" в выгрузке)
и в документе в 1с выводится Носки m0e0107-0055 BNM без указания размера (не подтягивается товарное предложение)
Файл выгрузки:
- <Товар>
<Ид>ca20582e-d532-11e4-996d-dc85deaed994</Ид>
<Наименование>Носки m0e0107-0055 BNM, Носки m0e0107-0055 BNM (42-45)</Наименование>
<БазоваяЕдиница Код="796" НаименованиеПолное="" МеждународноеСокращение="PCE">шт.</БазоваяЕдиница>
<ЦенаЗаЕдиницу>80</ЦенаЗаЕдиницу>
<Количество>12</Количество>
<Сумма>960</Сумма>
- <ЗначенияРеквизитов>
- <ЗначениеРеквизита>
<Наименование>ВидНоменклатуры</Наименование>
<Значение>Товар</Значение>
</ЗначениеРеквизита>
- <ЗначениеРеквизита>
<Наименование>ТипНоменклатуры</Наименование>
<Значение>Товар</Значение>
</ЗначениеРеквизита>
</ЗначенияРеквизитов>
</Товар>
Пришлось закомментировать часть кода в modules\exchange\model\api.inc.php:
/**
* Получает xml_id товарного предложения по товару
*
* @param \Shop\Model\Orm\OrderItem $offer_product - объект товара в заказе
* @param \Catalog\Model\Orm\Product $product - объект связанного товара
* @return string
*/
private function getOfferXmlIdByOfferProduct(\Shop\Model\Orm\OrderItem $offer_product, $product){
$xml_id = $product->xml_id; //Получаем xml_id
// if ($offer_product['offer'] && $product){ //Если комплектация отличная от оригинала !ТУТ!
$product->fillOffers();
if ($product->isOffersUse()){ //Если такое предложение есть
$offer = $product['offers']['items'][$offer_product['offer']];
return $offer['xml_id'];
}
//} !И ТУТ!
return $xml_id;
}
Стало выводится верно
<Товар>
<Ид>ca20582e-d532-11e4-996d-dc85deaed994#ca205832-d532-11e4-996d-dc85deaed994</Ид>
<Наименование>Носки m0e0107-0055 BNM, Носки m0e0107-0055 BNM (42-45)</Наименование>
<БазоваяЕдиница Код="796" НаименованиеПолное="" МеждународноеСокращение="PCE">шт.</БазоваяЕдиница>
<ЦенаЗаЕдиницу>80</ЦенаЗаЕдиницу>
<Количество>132</Количество>
<Сумма>10560</Сумма>
- <ЗначенияРеквизитов>
- <ЗначениеРеквизита>
<Наименование>ВидНоменклатуры</Наименование>
<Значение>Товар</Значение>
</ЗначениеРеквизита>
- <ЗначениеРеквизита>
<Наименование>ТипНоменклатуры</Наименование>
<Значение>Товар</Значение>
</ЗначениеРеквизита>
</ЗначенияРеквизитов>
</Товар>