Модула за търговия Ви дава възможност да импортирате стоките си от XML файл. За да вкарате стоките си в directno.com трябва да сте регистриран ТЪРГОВЕЦ и трябва да сте влезли с потребителско име и парола в directno.com.
Важно е да се отбележи, че XML файла, който ще приготвите може да създава, променя изцяло или частично и да изтрива стоки от Вашия магазин в directno.com. За целта всички Ваши стоки ще се различават по externalId - идентификатор от вашата система, уникален само за Вас.
Има два варианта за импортиране:




След като оправите възникналите грешки, можете пак да качите файла си. Като начало опитайте с една стока описана в XML файла и ако всичко мине без грешки - опишете всички желани стоки.
Подробна информация за структурата на XML файла за импорт на стоки ще намерите в друг въпрос/отговор от тази категория.

Скриптът за генериране или файлът трябва да стои на Ваш сървър и да е наличен между 1 и 6ч. сутринта всеки ден. Сървърът на Директно.ком ще изтегли документа и ще създаде/промени/изтрие Вашите стоки според XML документа. Резултатите ще видите на следващия ден от уеб интерфейса на същата страница "Импорт на стоки от XML".
Подробна информация за структурата на XML файла за импорт на стоки ще намерите в друг въпрос/отговор от тази категория.
Ето и примерен вариант на XML за създаване на една стока:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mall_import
PUBLIC "-//Directno//Mall import 1.0//EN"
"http://www.directno.com/dtd/mall-import_1_0.dtd">
<mall_import version="1.0">
<merchant >
<createUpdateCommodities>
<commodity>
<externalId>12345a1</externalId>
<categoryPath>%D0%BB%D0%B0%D0%BF%D1%82%D0%BE%D0%BF%D0%B8</categoryPath>
<shortDesc>Леново ноутбук</shortDesc>
<detailDesc><![CDATA[
Процесор АМД ...
]]></detailDesc>
<tagKeywords>лаптоп</tagKeywords>
<images>
<imgUrl>http://www.example.com/images/123.jpg</imgUrl>
</images>
<brand>Lenovo</brand>
<model>SGH 590</model>
<productNumber>MKH-3456/3</productNumber>
<originCode>CH</originCode>
<guarantee>1 година</guarantee>
<price>769.78</price>
<priceCurrency>BGN</priceCurrency>
<priceUnitCode>NUMBER</priceUnitCode>
<minOrder>1</minOrder>
<grossWeightKg>2.36</grossWeightKg>
<pack>
<wCm>35</wCm>
<hCm>40</hCm>
<lCm>15</lCm>
</pack>
<timeTillShipment>1</timeTillShipment>
<wholesalePrice>730</wholesalePrice>
<wholesaleMinOrder>3</wholesaleMinOrder>
<promo>
<promoCode>NONE</promoCode>
</promo>
</commodity>
</createUpdateCommodities>
<deleteCommodities>
<externalId>1234b</externalId>
<externalId>1234c</externalId>
</deleteCommodities>
</merchant>
</mall_import>
С този пример ще създадете стока с Ваш идентификатор "12345a1" който има цена за бройка 769.78 лв и е без промоция. Размерите на опаковката в сантиметри са 35 / 40 / 15 . Стоката има цена на едро 730 лв. ако клиентът закупи поне 3 броя. С този файл ще се опитате да изтриете други две стоки с идентификатори "1234b" и "1234c".
Да кажем, че искате да промените само някои параметри на стоката, след като вече сте я вкарали в нашата система. Например само описанието и цената:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mall_import
PUBLIC "-//Directno//Mall import 1.0//EN"
"http://www.directno.com/dtd/mall-import_1_0.dtd">
<mall_import version="1.0">
<merchant >
<createUpdateCommodities>
<commodity>
<externalId>12345a1</externalId>
<detailDesc><![CDATA[
Процесор АМД 5600+, Харддиск 1ТБ ....
]]></detailDesc>
<price>769.78</price>
</commodity>
</createUpdateCommodities>
</merchant>
</mall_import>
Сега ще дадем пример как да изтриете тази стока със следния файл:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mall_import
PUBLIC "-//Directno//Mall import 1.0//EN"
"http://www.directno.com/dtd/mall-import_1_0.dtd">
<mall_import version="1.0">
<merchant>
<deleteCommodities>
<externalId>12345a1</externalId>
</deleteCommodities>
</merchant>
</mall_import>
За да направите стока с промоционална цена, използвайте следния вариант в promo тага:
<promo>
<promoCode>PRICE</promoCode>
<promoPrice>731.0</promoPrice>
<promoExpireDate>2011-06-30</promoExpireDate>
</promo>
За да направите стока с промоционален подарък, използвайте следния вариант в promo тага:
<promo>
<promoCode>GIFT</promoCode>
<promoGiftDescription>Получавате подарък раница Dicota към лаптопа.</promoGiftDescription>
<promoExpireDate>2011-06-30</promoExpireDate>
</promo>
За да добавите стока без размери на опаковка и без бруто тегло, трябва да подадете нейното куриерско тегло с тага "shippingWeightKg":
..........
<brand>Lenovo</brand>
<model>SGH 590</model>
<productNumber>MKH-3456/3</productNumber>
<price>34.78</price>
<priceCurrency>BGN</priceCurrency>
<priceUnitCode>NUMBER</priceUnitCode>
<minOrder>1</minOrder>
<shippingWeightKg>3</shippingWeightKg>
<timeTillShipment>1</timeTillShipment>
..........
Ако нямате размери на опаковката, нито имате куриерско тегло, тогава трябва да маркирате стоката, като стока, която се доставя безплатно с тага "freeDeliveryItem":
..........
<brand>Lenovo</brand>
<model>SGH 590</model>
<productNumber>MKH-3456/3</productNumber>
<price>34.78</price>
<priceCurrency>BGN</priceCurrency>
<priceUnitCode>NUMBER</priceUnitCode>
<minOrder>1</minOrder>
<freeDeliveryItem>true</freeDeliveryItem>
<timeTillShipment>1</timeTillShipment>
..........
Прилагаме описание на таговете в табличен вид:
| таг | задължително ли е? | описание |
|---|---|---|
| mall_import | да | Поддържа се атрибут version="1.0", който е задължителен. |
|
родител:mall_import merchant |
да | Сборен таг. |
|
родител:merchant createUpdateCommodities |
не | Сборен таг за стоки, които или ще бъдат създадени или ще бъдат променени. Първо се проверява дали при нас има стока с посоченото externalId(виж по-долу), ако има се прави промяна на стоката. Ако няма стока, се създава нова с посочените атрибути. |
|
родител:createUpdateCommodities commodity |
да | Това е таг, съдържащ информация за стоката. "createUpdateCommodities" може да съдържа много тагове "commodity" |
|
родител:commodity externalId |
да | Обозначава идентификатор на стоката от Вашата система. Произволна стрингова стойност. Максимално 64 символа. |
| родител:commodity categoryPath |
само при нова стока ако не е посочен тага categoryId или categoryExternalPath | Обозначава категорията. Тя може да бъде взета от directno.com. Може да е обикновен стринг или URL кодиран стринг. Например ако имаме адреса: directno.com/m/лаптопи, то стойността на тага може да е "лаптопи" или "%D0%BB%D0%B0%D0%BF%D1%82%D0%BE%D0%BF%D0%B8" |
| родител:commodity categoryExternalPath |
само при нова стока ако не е посочен тага categoryId или categoryPath | Обозначава категорията от Вашия магазин. Може да бъде свободен текст, но най-често е пълният път на категория според Вашите класификации. Ние ще се опитаме да напаснем автоматично категорията, която сте посочили тук, но не гарантираме това.
Примерна категория: Мобилни телефони/Аксесоари/Аксесоари за Мобилни телефони |
| родител:commodity categoryId |
само при нова стока ако не е посочен тага categoryPath или categoryExternalPath | Обозначава идентификатор на категорията(число) от нашата система. |
| родител:commodity shortDesc |
само при нова стока | Кратко описание на стоката. Ще се показва в листовете на directno.com. Максимално 64 символа. |
| родител:commodity detailDesc |
само при нова стока | Детайлно описание на стоката. Ще се показва в листовете на directno.com. Максимално 4000 символа. |
| родител:commodity tagKeywords |
само при нова стока | Ключови думи към стоката. Думите или фразите се разделят със запетая. Измислят се от вас. Например "лаптоп, лаптоп леново, lenovo t510i". Максимално 80 символа. |
| родител:commodity images |
не | Сборен таг за картинки. Може да съдържа максимално до 5 картинки за стока. Ако променяте стока и този таг го няма, няма да промените картинките на стоката. Ако променяте стока и този таг присъства но е празен, ще изтриете картинките на стоката. |
| родител:images imgUrl |
не | URL адрес на картинка. Поддържани формати са JPG, PNG и GIF. Типът на файла на картинката се взема от хедър "Content-Type" полето, което връща сървърът, а не от разширението на файла в URL адреса. |
| родител:commodity brand |
не | Марка на стоката. Максимално 64 символа. |
| родител:commodity model |
не | Модел на стоката. Максимално 64 символа. |
| родител:commodity productNumber |
не | Продуктов номер на стоката(Part Number). Максимално 64 символа. |
| родител:commodity originCode |
не | Код за страна на произход на стоката. Вижте всички кодове на страните в отделен въпрос/отговор от тази категория. |
| родител:commodity guarantee |
не | Текстово описание на гаранцията. Например:"1 година международна". Максимално 64 символа. |
| родител:commodity price |
само при нова стока | Десетично число за цена. Разделител за десетите е точка ".". Максимално число 10000. Цената е крайна(с ДДС). |
| родител:commodity priceCurrency |
само при нова стока | Валута на цената, приема единственa стойност "BGN". |
| родител:commodity priceUnitCode |
само при нова стока | Кодова стойност за какво се отнася цената. Вариантите са: "NUMBER" за брой; "pkg" за пакет; "m" за метър; "cm" за сантиметър; "l" за литър; "ml" за милилитър; "kg" за килограм; "g" за грам. |
| родител:commodity minOrder |
само при нова стока | Число указващо колко най-малко единици може да се поръча от тази стока. Може да ограничите потребителя да не поръчва под даден минимум. |
| родител:commodity grossWeightKg |
само при нова стока, ако не е подадено "shippingWeightKg" и стоката не се доставя безплатно ("freeDeliveryItem") | Бруто тегло на опаковката в килограми. Десетичен разделител е точката. Например "2.36". Максимално число "100". Сайтът има ограничение, наложено от куриерите пратките да са до 100 кг. |
| родител:commodity pack |
само при нова стока ако не е подадено "shippingWeightKg" и не е указана безплатна доставка с тага "freeDeliveryItem" . | Сборен таг за размери на опаковката. Използва се за пресмятане на куриерско тегло. |
| родител: pack wCm |
само при нова стока ако не е подадено "shippingWeightKg" и не е указана безплатна доставка с тага "freeDeliveryItem" . | Ширина на опаковката в сантиметри. |
| родител: pack hCm |
само при нова стока ако не е подадено "shippingWeightKg" и не е указана безплатна доставка с тага "freeDeliveryItem" . | Височина на опаковката в сантиметри. |
| родител: pack lCm |
само при нова стока ако не е подадено "shippingWeightKg" и не е указана безплатна доставка с тага "freeDeliveryItem" . | Дължина(дълбочина) на опаковката в сантиметри. |
| родител: commodity freeDeliveryItem |
само при нова стока ако няма бруто тегло и няма куриерско тегло. | Тази стока ще се доставя безплатно, ако има други стоки в същата поръчка - и те ще бъдат доставени за сметка на търговеца. Приема стойности "true" или "false" . |
| родител: commodity shippingWeightKg |
само при нова стока ако няма бруто тегло и стоката не се доставя безплатно. | Куриерското тегло е по-голямото от [реалното тегло(кг.)] и [ширина*височина*дължина/6000] и се използва от куриерите, за пресмятане цената за доставка. Дробно число в килограми. |
| родител: commodity timeTillShipment |
само при нова стока | Цяло число за брой дни до предаване на куриер. Това са дните за които можете да вземете стоката (от склада Ви или от под-доставчик) и да я предадете на куриер. Максимално число "15". |
| родител: commodity wholesalePrice |
не | Цена на едро за стоката - десетично дробно число с десетичен разделител точка ".". Тази цена трябва да е по-малка от промоционалната цена (ако има такава) и да е по-ниска от нормалната цена на стоката. |
| родител: commodity wholesaleMinOrder |
само ако е посочено "wholesalePrice" | Минимална поръчка, когато да се вземе в предвид цената на едро - цяло число, по-голямо от едно. За ограничение трябва да е изпълнено условието: wholesaleMinOrder * wholesalePrice < 10000лв. |
| родител: commodity promo |
не | Сборен таг за обявяване на промоция на стоката. Не е задължителен. |
| родител: promo promoCode |
да, ако има зададен таг "promo" | Код за промоция, може да приема една от следните стойности: "NONE" - няма промоция за продукта; "PRICE" - има промоция намалена цена на продукта; "GIFT" - има промоция подарък към стоката. |
| родител: promo promoPrice |
да, ако има зададен таг "promo" и promoCode="PRICE" | Десетично дробно число за промоционална цена. Десетичен разделител е точката ".". Тази цена трябва да е по-малка от нормалната цена на стоката. |
| родител: promo promoGiftDescription |
да, ако има зададен таг "promo" и promoCode="GIFT" | Описание на подаръка към стоката. Максимално 500 символа. |
| родител: promo promoExpireDate |
да, ако има зададен таг "promo" и promoCode="GIFT" или "PRICE" | Крайна дата, когато изтича промоцията. Тази дата трябва да е в бъдещето. След тази дата, системата ще премахне промоцията и ще зададе promoCode="NONE". Форматът на датата е "гггг-мм-дд". |
| родител: merchant deleteCommodities |
не | Сборен таг за стоки, които искате да бъдат изтрити. Може да съдържа много тагове "externalId". |
| родител: deleteCommodities externalId |
не | Идентификатор на стоката от Вашата система, която искате да изтрием от МОЛа. |
| родител: deleteCommodities allNotPresent |
не | Ще изтрие всички стоки от профила Ви, които не са споменати в текущия XML файл. |
| родител: merchant deactivateCommodities |
не | Сборен таг за стоки, които искате да бъдат деактивирани. Може да съдържа много тагове "externalId". |
| родител: deactivateCommodities externalId |
не | Идентификатор на стоката от Вашата система, която искате да деактивираме от МОЛа. Деактивирана означава, че от потребителите ще се вижда като изчерпана наличност. Деактивираните стоки не излизат в търсачката на directno.com |
| родител: deactivateCommodities allNotPresent |
не | Ще деактивира всички стоки от профила Ви, които не са споменати в текущия XML файл. |
DTD файл за описание на XML файла:
<?xml version="1.0" encoding="UTF-8" ?>
<!ELEMENT mall_import (merchant)?>
<!ATTLIST mall_import
version CDATA #REQUIRED>
<!ELEMENT merchant (createUpdateCommodities|deleteCommodities|deactivateCommodities)*>
<!ATTLIST merchant
id CDATA #IMPLIED
username CDATA #IMPLIED>
<!ELEMENT createUpdateCommodities (commodity)*>
<!ELEMENT commodity (externalId|categoryId|categoryPath|categoryExternalPath|shortDesc|
detailDesc|tagKeywords|images|brand|model|productNumber|originCode|guarantee|
price|priceCurrency|priceUnitCode|minOrder|grossWeightKg|shippingWeightKg|
pack|timeTillShipment|wholesalePrice|wholesaleMinOrder|promo|freeDeliveryItem)*>
<!ELEMENT externalId (#PCDATA)>
<!ELEMENT categoryId (#PCDATA)>
<!ELEMENT categoryPath (#PCDATA)>
<!ELEMENT categoryExternalPath (#PCDATA)>
<!ELEMENT shortDesc (#PCDATA)>
<!ELEMENT detailDesc (#PCDATA)>
<!ELEMENT tagKeywords (#PCDATA)>
<!ELEMENT images (imgUrl)*>
<!ELEMENT imgUrl (#PCDATA)>
<!ELEMENT brand (#PCDATA)>
<!ELEMENT model (#PCDATA)>
<!ELEMENT productNumber (#PCDATA)>
<!ELEMENT originCode (#PCDATA)>
<!ELEMENT guarantee (#PCDATA)>
<!ELEMENT price (#PCDATA)>
<!ELEMENT priceCurrency (#PCDATA)>
<!ELEMENT priceUnitCode (#PCDATA)>
<!ELEMENT minOrder (#PCDATA)>
<!ELEMENT grossWeightKg (#PCDATA)>
<!ELEMENT shippingWeightKg (#PCDATA)>
<!ELEMENT pack (wCm|hCm|lCm)*>
<!ELEMENT wCm (#PCDATA)>
<!ELEMENT hCm (#PCDATA)>
<!ELEMENT lCm (#PCDATA)>
<!ELEMENT timeTillShipment (#PCDATA)>
<!ELEMENT wholesalePrice (#PCDATA)>
<!ELEMENT wholesaleMinOrder (#PCDATA)>
<!ELEMENT promo (promoCode|promoPrice|promoGiftDescription|promoExpireDate)*>
<!ELEMENT promoCode (#PCDATA)>
<!ELEMENT promoPrice (#PCDATA)>
<!ELEMENT promoGiftDescription (#PCDATA)>
<!ELEMENT promoExpireDate (#PCDATA)>
<!ELEMENT freeDeliveryItem (#PCDATA)>
<!ELEMENT allNotPresent (#PCDATA)>
<!ELEMENT deleteCommodities (externalId|allNotPresent)*>
<!ELEMENT deactivateCommodities (externalId|allNotPresent)*>
DTD файлът може да бъде намерен на адрес: http://www.directno.com/dtd/mall-import_1_0.dtd но препоръчваме да свалите файла локално при вас, ако имате нужда да го ползвате.
По долу са дадени всички кодове на страните(двубуквени кодове), които използваме в системата :
GB=Великобритания AF=Афганистан AL=Албания DZ=Алжир AS=Американска Самоа AD=Андора AO=Ангола AI=Ангуила AQ=Антарктика AG=Антигуа и Барбуда AR=Аржентина AM=Армения AW=Аруба AC=Остров Възнесение AU=Австралия AT=Австрия AZ=Азербайджан BS=Бахамски острови BH=Бахрейн BD=Бангладеш BB=Барбадос BY=Беларус BE=Белгия BZ=Белиз BJ=Бенин BM=Бермуда BT=Бутан BO=Боливия BA=Босна и Херцеговина BW=Ботсвана BV=Остров Буве BR=Бразилия IO=Британски територии в Индийския океан BN=Бруней BG=България BF=Буркина Фасо BI=Бурунди KH=Камбоджа CM=Камерун CA=Канада CV=Островите Кабо Верде KY=Кайманови острови CF=Централна Африканска република TD=Чад CL=Чили CN=Китай CX=Коледен остров CC=Кокосови острови (KEELING) острови CO=Колумбия KM=Коморски острови CD=Конго, Демократична република CG=Конго, Република CK=Острови Кук CR=Коста Рика CI=Кот д'Ивоар HR=Хърватска / Хърватия CU=Куба CY=Кипър CZ=Чешка република DK=Дания DJ=Джибути DM=Доминика DO=Доминиканска република TP=Източен Тимор EC=Еквадор EG=Египет SV=Ел Салвадор GQ=Екваториална Гвинея ER=Еритрея EE=Естония ET=Етиопия FK=Фолклендски острови FO=Фарьорските острови FJ=Фиджи FI=Финландия FR=Франция GF=Френска Гвиана PF=Френска Полинезия TF=Френски южни територии GA=Габон GM=Гамбия GE=Грузия DE=Германия GH=Гана GI=Гибралтар GR=Гърция GL=Гренландия GD=Гренада GP=Гваделупа GU=Гуам GT=Гватемала GG=Гернси GN=Гвинея GW=Гвинея-Бисау GY=Гвиана HT=Хаити HM=Хърд и Макдоналд острови HN=Хондурас HK=Хонг Конг HU=Унгария IS=Исландия IN=Индия ID=Индонезия IR=Иран IQ=Ирак IE=Ирландия IM=Остров Ман IL=Израел IT=Италия JM=Ямайка JP=Япония JE=Джърси JO=Йордания KZ=Казахстан KE=Кения KI=Кирибати KP=Корея, Демократична народна република KR=Корея, Република KW=Кувейт KG=Киргизстан LA=Лаос LV=Латвия LB=Ливан LS=Лесото LR=Либерия LY=Либия LI=Лихтенщайн LT=Литва LU=Люксембург MO=Макао MK=Македония, Бивша югославска република MG=Мадагаскар MW=Малави MY=Малайзия MV=Малдиви ML=Мали MT=Малта MH=Маршалови острови MQ=Мартиника MR=Мавритания MU=Мавриций YT=Остров Майот MX=Мексико FM=Микронезия MD=Молдова MC=Монако MN=Монголия ME=Черна гора MS=Монсерат MA=Мароко MZ=Мозамбик MM=Мианмар NA=Намибия NR=Науру NP=Непал NL=Холандия AN=Холандски Антили NC=Нова Каледония NZ=Нова Зеландия NI=Никарагуа NE=Нигер NG=Нигерия NU=Ниуе NF=Остров Норфолк MP=Северни Мариански острови NO=Норвегия OM=Оман PK=Пакистан PW=Палау PS=Палестинските територии PA=Панама PG=Папуа-Нова Гвинея PY=Парагвай PE=Перу PH=Филипини PN=Остров Питкерн PL=Полша PT=Португалия PR=Пуерто Рико QA=Катар RE=Остров Реюнион RO=Румъния RU=Руска федерация RW=Руанда SH=Света Елена KN=Сейнт Китс и Невис LC=Сейнт Лусия PM=Сен Пиер и Микелон VC=Сейнт Винсент и Гренадини SM=Сан Марино ST=Сао Томе и Принсипе SA=Саудитска Арабия SN=Сенегал RS=Сърбия SC=Сейшелски острови SL=Сиера Леоне SG=Сингапур SK=Словашка република SI=Словения SB=Соломоновите острови SO=Сомалия ZA=Южна Африка GS=Южна Джорджия и Южни Сандвичеви острови ES=Испания LK=Шри Ланка SD=Судан SR=Суринам SJ=Свалбард и Ян Майен Острови SZ=Свазиленд SE=Швеция CH=Швейцария SY=Сирия TW=Тайван TJ=Таджикистан TZ=Танзания TH=Тайланд TL=Източен Тимор TG=Того TK=Токелау TO=Тонга острови TT=Тринидад и Тобаго TN=Тунис TR=Турция TM=Туркменистан TC=Острови Туркс и Кайкос TV=Тувалу UG=Уганда UA=Украйна AE=Обединените арабски емирства UK=Обединеното кралство US=Съединените Щати UY=Уругвай UM=САЩ Малки далечни острови UZ=Узбекистан VU=Вануату VA=Ватикана VE=Венецуела VN=Виетнам VG=Вирджински острови (Британски) VI=Вирджински острови (САЩ) WF=Уолис и Футуна Острови EH=Западна Сахара WS=Западна Самоа YE=Йемен ZM=Замбия ZW=Зимбабве