1
0
Fork 0
mirror of synced 2025-04-09 12:02:04 +00:00

Добавление генерации услуг в каталоге товаров

This commit is contained in:
Sergey 2019-06-19 17:30:55 +03:00
parent 4fa66768ad
commit b5297bedc5
2 changed files with 54 additions and 0 deletions

View file

@ -92,7 +92,12 @@ class MoySkladICMLParser
$categories = $this->parserFolder();
$countCategories = count($categories);
<<<<<<< 4fa66768add0d2c93f587b1796cc4cdb5017d437
if ($countCategories > 0) {
=======
if ($countAssortiment > 0) {
$categories = $this->parserFolder();
>>>>>>> fix generating merchandise of excluded subcategories, Adding new functionality
$assortiment = $this->deleteProduct($categories, $assortiment);
} else {
return;
@ -348,6 +353,7 @@ class MoySkladICMLParser
),
);
if (isset($this->options['customFields'])) {
<<<<<<< 4fa66768add0d2c93f587b1796cc4cdb5017d437
if (!empty($assortiment['attributes'])) {
$products[$assortiment['id']]['customFields'] = $this->getCustomFields($assortiment['attributes']);
} elseif (!empty($assortiment['product']['attributes'])){
@ -359,6 +365,19 @@ class MoySkladICMLParser
$products[$assortiment['id']]['barcodes'] = $assortiment['barcodes'];
} elseif (!empty($assortiment['product']['barcodes'])){
$products[$assortiment['id']]['barcodes'] = $assortiment['product']['barcodes'];
=======
if (!empty($assortiment['product']['attributes'])) {
$products[$assortiment['id']]['customFields'] = $this->getCustomFields($assortiment['product']['attributes']);
} elseif (!empty($assortiment['attributes'])){
$products[$assortiment['id']]['customFields'] = $this->getCustomFields($assortiment['attributes']);
}
}
if (!empty($assortiment['product']['barcodes'])){
$products[$assortiment['id']]['barcodes'] = $assortiment['product']['barcodes'];
} elseif (!empty($assortiment['barcodes'])){
$products[$assortiment['id']]['barcodes'] = $assortiment['barcodes'];
>>>>>>> fix generating merchandise of excluded subcategories, Adding new functionality
}
if (isset($this->options['loadPurchasePrice']) && $this->options['loadPurchasePrice'] === true) {
@ -366,9 +385,14 @@ class MoySkladICMLParser
$products[$assortiment['id']]['purchasePrice'] = (((float)$assortiment['buyPrice']['value']) / 100);
} elseif (isset($assortiment['product']['buyPrice']['value'])) {
$products[$assortiment['id']]['purchasePrice'] = (((float)$assortiment['product']['buyPrice']['value']) / 100);
<<<<<<< 4fa66768add0d2c93f587b1796cc4cdb5017d437
} else {
$products[$assortiment['id']]['purchasePrice'] = 0;
}
=======
}
$products[$assortiment['id']]['purchasePrice'] = 0;
>>>>>>> fix generating merchandise of excluded subcategories, Adding new functionality
}
if (isset($assortiment['salePrices'][0]['value']) && $assortiment['salePrices'][0]['value'] != 0) {
@ -530,7 +554,10 @@ class MoySkladICMLParser
if (!empty($product['customFields']['dimensions'])){
$this->icmlAdd($offerXml, 'dimensions', $product['customFields']['dimensions']);
}
<<<<<<< 4fa66768add0d2c93f587b1796cc4cdb5017d437
=======
>>>>>>> fix generating merchandise of excluded subcategories, Adding new functionality
if (!empty($product['customFields']['param'])){
foreach($product['customFields']['param'] as $param){
@ -581,18 +608,26 @@ class MoySkladICMLParser
}
if ($product['vendor']) {
<<<<<<< 4fa66768add0d2c93f587b1796cc4cdb5017d437
$this->icmlAdd($offerXml, 'vendor', $product['vendor']);
=======
$this->icmlAdd($offerXml, 'vendor', $product['vendor']);
>>>>>>> fix generating merchandise of excluded subcategories, Adding new functionality
}
if (isset($product['image']['imageUrl']) &&
!empty($this->options['imageDownload']['pathToImage']) &&
!empty($this->options['imageDownload']['site']))
{
<<<<<<< 4fa66768add0d2c93f587b1796cc4cdb5017d437
$imgSrc = $this->saveImage($product['image']);
if (!empty($imgSrc)){
$this->icmlAdd($offerXml, 'picture', $this->saveImage($product['image']));
}
=======
$this->icmlAdd($offerXml, 'picture', $this->saveImage($product['image']));
>>>>>>> fix generating merchandise of excluded subcategories, Adding new functionality
}
}
@ -831,7 +866,11 @@ class MoySkladICMLParser
}
}
<<<<<<< 4fa66768add0d2c93f587b1796cc4cdb5017d437
if (isset($this->options['customFields']['paramTag'])) {
=======
if (isset($this->options['customFields']['dimensions'])) {
>>>>>>> fix generating merchandise of excluded subcategories, Adding new functionality
if ($this->options['customFields']['paramTag']) {
foreach ($this->options['customFields']['paramTag'] as $paramTag){
$paramTag = explode('#',$paramTag);
@ -839,7 +878,11 @@ class MoySkladICMLParser
foreach($attributes as $attribute) {
if ($attribute['id'] == $paramTag[1]) {
<<<<<<< 4fa66768add0d2c93f587b1796cc4cdb5017d437
$result['param'][] = array('code' => $paramTag[0],'name' => $attribute['name'], 'value'=> htmlspecialchars($attribute['value']));
=======
$result['param'][] = array('code' => $paramTag[0],'name' => $attribute['name'], 'value'=> $attribute['value']);
>>>>>>> fix generating merchandise of excluded subcategories, Adding new functionality
}
}
}

View file

@ -70,6 +70,7 @@ e) При необходимости включения в генерацию а
* `tagWeight` - передача веса в теге `weight` вместо `param`. Единица измерения - килограмм.
Формат: положительное число с точностью 0.001 (или 0.000001, в зависимости от настройки RetailCRM "Точность веса": граммы или миллиграммы соответственно), разделитель целой и дробной части - точка.
Указывается в свойствах товара сервиса Мой Склад.
<<<<<<< 4fa66768add0d2c93f587b1796cc4cdb5017d437
* `loadPurchasePrice` - установка данной опции со значением `true` включает в генерацию закупочные цены. По умолчанию закупочные цены для товаров не генерируются.
* `customFields` - массив для указания для генерации габаритов (dimensions) и дополнительных параметров товаров. Включает в себя следующие опции:
* `dimensions` - массив с одним или тремя значениями, содержащий id пользовательских полей товара в МС. При указании 3 полей должен соблюдаться порядок 'Длина,Ширина,Высота'.
@ -101,6 +102,16 @@ e) При необходимости включения в генерацию а
]`
Id пользовательских свойств товара можно получить, совершив GET-запрос к api МС по адресу `https://online.moysklad.ru/api/remap/1.1/entity/product/metadata`, используя для запроса ваш логин и пароль, используемый для генерации каталога.
=======
* `'loadPurchasePrice'` - установка данной опции со значением `true` включает в генерацию закупочные цены. По умолчанию закупочные цены для товаров не генерируются.
*`customFields` - массив для указания для генерации габаритов (dimensions) и дополнительных параметров товаров. Включает в себя следующие опции:
* `dimensions` - массив с одним или тремя значениями, содержащий id пользовательских полей товара в МС. При указании 3 полей должен соблюдаться порядок 'Длина,Ширина,Высота'. Если
для генерации планируется использовать одно поле, то нужно использовать дополнительный параметр `separate` в котором вы должны указать какой разделитель используется в поле между
значениями на стороне МС.
* `paramTag` - массив со значениями,складывающимися из кода, который должен использоваться для генерации данного дополнительного параметра и id пользовательского поля товара. Заполняется с разделетелем "#" следующим образом:
'{произвольный_код_латиницей}#{id_пользовательского_свойстваовара}'.
Id пользовательских свойств товара можно получить, совершив GET-запрос к api МС по адресу `https://online.moysklad.ru/api/remap/1.1//entity/product/metadata`, используя для запроса ваш логин и пароль, используемый для генерации каталога.
>>>>>>> fix generating merchandise of excluded subcategories, Adding new functionality
Необходимые id будут указаны внутри индекса "attributes".
Все доступные опции не обязательны для использования