Продажби

Вземане

Заявка към URL:

https://<DOMAIN_NAME>/api/RPC.common.Api.So.get?token=<TOKEN>

Входящи параметри:

Параметър Описание Задължително
for_date Дата на продажба. Формат YYYY-MM-DD Да

Заявка

{
	  "data": [
	    {
	      "for_date":"2020-01-05"
	    }
	  ]
}

Отговор

{
"result": [
{
"for_date": "2021-01-05",
"type": "so",
"for_date_formated": "05.01.2021",
"id": 5443176,
"rel_trans": [
{
"trans_id": 5443176,
"for_date": "2021-01-11",
"rel_trans_id": 5444986,
"num": "PO10000139",
"type": "po"
}
],
"num": "CO10004852",
"type_action": "so"
},
{
"id": 5444478,
"num": "CO10004867",
"type_action": "so",
"rel_trans": [
{
"trans_id": 5444478,
"for_date": "2020-12-18",
"rel_trans_id": 5440432,
"type": "so",
"num": "CO10004755"
},
{
"trans_id": 5444478,
"rel_trans_id": 5440441,
"for_date": "2020-12-18",
"num": "CO10004756",
"type": "so"
},
{
"type": "receipt",
"num": "0000000245",
"for_date": "2021-01-06",
"rel_trans_id": 5444493,
"trans_id": 5444478
}
],
"type": "so",
"for_date_formated": "06.01.2021",
"for_date": "2021-01-06"
}
],
"count": 2
}

Създаване

Заявка към URL:

https://<DOMAIN_URL>/api/RPC.common.Api.So.set?token=<TOKEN>

Входящи параметри:

Параметър  Описание Задължително
id Id на продажбата от Prim. При избиране ще направи промени по продажбата на избраните от потребителя полета. Тази операция е налична, само когато продажбата няма свързани операции.  
for_date Дата на продажба. Формат YYYY-MM-DD. Ако няма избрана ще сложи днешна дата.   
sale_type

Име на тип на продажба. Можете да го вземете чрез функция за взимане на типове продажби. (RPC.common.Api.SoOrderTypes.get)

Да
num Номер на продажба. Ако не бъде избран, системата ще генерира номер според номерацията на операцията в системата.  
trader

Търговец на продажбата. Подава се username на потребител, който използва системата. При липса на търговец системата слага потребител API за търговец на продажбата.

 
pos_code

Код на място на продажба. Можете да го вземете чрез функция за взимане на места на продажба. (RPC.common.Api.Pos.get)

Да
tax_deal_code

Код на данъчна сделка. При липса се взима данъчната сделка по подразбиране от типа на продажбата. Ако бъде избрана и тя не участва в този тип продажба, ще бъдете информирани с грешка. Можете да го вземете чрез функция за взимане на данъчни сделки. (RPC.common.Api.TaxDeals.get)

 
store_code

Код на склад. Ако бъде избран в продажбата, там ще бъдат блокирани количествата на артикулите, избрани в продажбата. Можете да го вземете чрез функция за взимане на складове.(RPC.common.Api.Stores.get)

 
currency

Код на валута на продажбата. Ако не бъде избрана, ще вземе валутата по подразбиране от типа на продажбата. Можете да я вземете чрез функция за взимане на валути.(RPC.common.Api.Currencies.get)

 
fin_type Код на тип на финансовия документ (invoice, liability, receipt). Invoice – Фактура;
liability – Разписка;
receipt – Касов бон.
 
pay_type

Код на начин на плащане. Можете да го вземете чрез функция за взимане на начини на плащане. (RPC.common.Api.PayTypes.get)

 
store_type Код на начин на предаване (wait, delivery, direct, expedition).
wait – Отложено;
delivery – С доставка;
direct – Изписване;
expedition – Експедиция. 
 
delivery_code

Код на начин на доставка. Можете да го вземете чрез функция за взимане на начини на доставка. (RPC.common.Api.DeliveryTypes.get)

 
description Описание на продажбата.   
internal_description Вътрешно описание на продажбата.  
pay_now Плати веднага. Тази опция ще издаде автоматично финансовия документ (ако няма издаден такъв) и ще направи плащане според настройките за тип на финансов документ и тип на плащане.  
create_request Създава заявка за редовете на цялата продажба.  
invoice_now Издай финансов документ. Тази опция ще издаде автоматично финансовия документ (ако няма издаден такъв) според настройките за тип на финансов документ  
discount Отстъпка на целия документ в %  
promo_card Номер на бонус карта. Натрупва бонус точки към тази карта на съответния клиент.  

Клиент – partner – Обект

Параметър Описание Задължително
id Id – на клиент от системата Prim.  
is_company Избира се, ако клиента е юридическо лице. Ако не се избере – клиентът е физическо лице. true/false, 0/1
partner_type Тип на клиент. Можете да го вземете чрез функция за взимане на начини на доставка. (RPC.common.Api.ClientTypes.get). Ако не се избере, клиентът се създава с тип на клиент – клиент на дребно.  
name Име на клиент Да
eik ЕИК номер на клиент  
egn ЕГН на клиент  
dds_num ДДС номер на клиент  
email Имейл на клиент  
phone Телефон на клиент  

Адрес за доставка – delivery_address – Обект

Параметър Описание Задължително
to_speditor_ofice Код на офис на спедитор. Клиентът ще вземе от офис на спедитор Не е готово. Пише се.
id Id – на адрес от системата Prim  
phone Телефон към адрес на клиент  
email Имейл към адрес на клиент  
country Име на държава от номенклатурaте на държави в Prim Да
district Област  
settlement Населено място  
street Улица  
nbh Квартал  
address Адрес като string  
num Номер  
building Блок / Сграда No:  
building_entrance Вход  
building_floor Етаж  
building_apartment Апартамент  
zip Пощенски код  
zip_num Пощенска кутия  

Редове – rows – Обект

Параметър Описание Задължително
sku Код на артикул / услуга в номенклатурата за артикули / услуги  на Prim. Да
quantity Количество на артикул Да
measure_code Код на мерна единица. Можете да го вземете чрез функция за взимане на мерни единици. (RPC.common.Api.Measures.get)  
bom_ident Sku код на бом. При въвеждане на самия бом bom_ident = sku , а при въвеждане на съставни части bom_ident = sku код на бом родител.  
bom_position Отнася се само за съставните части на бома. Указва на коя позиция от бома е въвежданият ред.  
bom_iter Число, което определя при два еднакви бома, кой елеметн за кой бом се отнася. Дори и да е един бом пак се подава.  
price Ед. цена на артикул без отстъпки. Да
discount Отстъпка на реда в %  
description Описание към редовете в продажбата.  
row_request Създава заявка само за този ред от продажбата. Ако е избран create_request от общия обек, този праматер ще е true.  

Системи за интеграция – integrations – Обект

Параметър Описание Задължително
system_name Име на система за интеграция от ERP. Можете да го вземете чрез функция за взимане на системи за интеграция. (RPC.common.Api.InterationSystems.get) Да
integration_id ID на ордер/поръчка/продажба от системата, която създава продажбата.  

Заявка

{
"data": [
{
"sale_type": "На едро",
"pos_code": "емаг",
"partner": {
"name": "Кристина Димитрова"
},
"rows": [
{
"sku": 10007,
"quantity": "1",
"price": "1200"
}
]
}
]
}
curl -XPOST -H 'Content-Type: application/json; charset=utf-8' -d '{"data":[{"sale_type":"На едро","pos_code":"емаг","partner":{"name":"Кристина Димитрова"},"rows":[{"sku":10007,"quantity":"1","price":"1200"}]}]}' "https://<DOMAIN_NAME>/api/RPC.common.Api.So.get?token=<TOKEN>"

Отговор

{
"result": [
{
"status": "work",
"num": "CO10005027",
"id": 5451717
}
]
}

Заявка пример за въвеждане на бом

{
"data": [
{
"sale_type": "На дребно",
"pos_code": 100,
"fin_type": "invoice",
"partner": {
"id": 5395043
},
"rows": [
{
"sku": "00496PR",
"bom_ident": "00496PR",
"quantity": "1",
"price": "100",
"bom_iter":"1"
},
{
"sku": "PR0030",
"bom_ident": "00496PR",
"bom_position": "1",
"bom_iter":"1"
},
{
"sku": "01-PT-0095-001-XL",
"bom_ident": "00496PR",
"bom_position": "2",
"bom_iter":"1"
}
]
}
]
}
	curl -XPOST -H 'Content-Type: application/json; charset=utf-8' -d '{"data":[{"sale_type":"На дребно","pos_code":100,"fin_type":"invoice","partner":{"id":5395043},"rows":[{"sku":"00496PR","bom_ident":"00496PR","quantity":"1","price":"100"},{"sku":"PR0030","bom_ident":"00496PR","bom_position":"1"},{"sku":"01-PT-0095-001-XL","bom_ident":"00496PR","bom_position":"2"}]}]}' "https://<DOMAIN_NAME>/api/RPC.common.Api.So.get?token=<TOKEN>"

Отговор

{
"result": [
{
"id": 6799733,
"num": "CO11223736",
"api_action": "new",
"status": "work"
}
]
}

Експедиция

Заявка към URL:

https://<DOMAIN_NAME>/api/RPC.common.Api.So.createExpedition?token=<TOKEN>

Входящи параметри:

Параметър Описание Задължително
num Номер на продажба (CO10005027) Да
description Описание / Бележка на продажба  

Заявка

{
  "data": [
    {
      "num": "CO10005027",
      "description": "Създаване на експедиция към продажба CO10005027"
    }
  ]
}
curl -XPOST -H 'Content-Type: application/json; charset=utf-8' -d '{"data":[{"num":"CO10005027","description":"Създаване на експдиция към продажба CO10005027"}]}' "https://<DOMAIN_NAME>/api/RPC.common.Api.So.createExpedition?token=<TOKEN>"

Отговор

{
"result": [
{
"id": 5498873,
"status": "work",
"num": 1000000076
}
]
}

Изписване

Заявка към URL:

https://<DOMAIN_NAME>/api/RPC.common.Api.So.createStoreOut?token=<TOKEN>

Входящи параметри:

Параметър Описание Задължително
num Номер на продажба (CO10005027) Да
store_code Код на склад от къде да се изпише стоката.  
description Описание / Бележка на продажба  

Заявка

{
"data": [
{
"num": "CO10005027",
"description": "Създаване на експедиция към продажба CO10005027"
}
]
}
curl -XPOST -H 'Content-Type: application/json; charset=utf-8' -d '{"data":[{"num":"CO10005027","description":"Създаване на изписване към продажба CO10005027"}]}' "https://<DOMAIN_NAME>/api/RPC.common.Api.So.createStoreOut?token=<TOKEN>"

Отговор

{
"result": [
{
"id": 5498873,
"status": "done",
"num": "STO1001519"
}
]
}

Сторниране

Заявка към URL:

https://<DOMAIN_NAME>/api/RPC.common.Api.So.createCredit?token=<TOKEN>

Входящи параметри:

Параметър Описание Задължително
num Номер на продажба (CO10005027) Да
store_code Код на склад, в който да бъде върната стоката. Ако не е избран се използва слада от POS на продажбата.  
account_code Код на сметка, в която да бъдат върнати парите. Ако няма избрана каса / сметка, се използва сметката на POS от продажбата.  
pay_now Връща парите веднага в избраната каса / сметка  като прави плащене.  
quantity_credit Вид сторниране. quantity_credit=1 – Стоково сторниране, quantity_credit=0 – Ценово сторниране true / false

Редове – rows – Обект

Параметър Описание Задължително
sku Код на артикул / услуга в номенклатурата за артикули / услуги  на Prim. Да
label Номер на партида / сериен номер. Ако артикула е с тип на контрол Сериен номер или баркод.  
quantity Количество на артикул Да
all_quantity Избира цялото количество за реда, ако вида на сторнирането е стоково.  
price Сума за сторниране. Ако вида на сторнирането е ценово. Ако е стоково се използва цялата сума. Да
all_price Избера цялата сума ако вида на сторнирането.   

Заявка

{
"data": [
{
"num": "CO11223707",
"pay_now": true,
"quantity_credit": true
}
]
}
curl -XPOST -H 'Content-Type: application/json; charset=utf-8' -d '{"data":[{"num":"CO11223707","pay_now":"true","quantity_credit":"true"}]}' "https://<DOMAIN_NAME>/api/RPC.common.Api.So.createCredit?token=<TOKEN>"

Отговор

{
"result": [
{
"id": 6716666,
"num": "CO11223708",
"status": "done"
}
]
}

Заявка

{
"data": [
{
"num": "CO11223709",
"pay_now": true,
"quantity_credit": true,
"rows": [
{
"sku": 10007,
"quantity": "5"
}
]
}
]
}
curl -XPOST -H 'Content-Type: application/json; charset=utf-8' -d '{"data":[{"num":"CO11223709","pay_now":true,"quantity_credit":true,"rows":[{"sku":10007,"quantity":"5"}]}]}' "https://<DOMAIN_NAME>/api/RPC.common.Api.So.createCredit?token=<TOKEN>"

Отговор

{
"result": [
{
"id": 6716721,
"num": "CO11223710",
"status": "done"
}
]
}

Анулиране

Заявка към URL:

https://<DOMAIN_NAME>/api/RPC.common.Api.So.annulSo?token=<TOKEN>

Входящи параметри:

Параметър Описание Задължително
num Номер на продажба (CO10005027) Да
annul_description Описание на анулирането.  

Заявка

{
"data": [
{
"num": "CO10005027",
"annul_description": "Тест за анулиране на продажба CO10005027"
}
]
}
curl -XPOST -H 'Content-Type: application/json; charset=utf-8' -d '{"data":[{"num":"CO10005027","annul_description":"Създаване на експдиция към продажба CO10005027"}]}' "https://<DOMAIN_NAME>/api/RPC.common.Api.So.annulSo?token=<TOKEN>"

Отговор

{
"result": [
{
"id": 5451717,
"num": "CO10005027",
"status": "annul"
}
],
"count": 1
}

Пълно анулиране

Заявка към URL:

https://<DOMAIN_NAME>/api/RPC.common.Api.So.fullAnnulSo?token=<TOKEN>

Входящи параметри:

Параметър Описание Задължително
num Номер на продажба (CO10005027) Да
annul_description Описание на анулирането.  

Заявка

{
"data": [
{
"num": "CO10005027",
"description": "Тест за пълно анулиране на продажба CO10005027"
}
]
}
curl -XPOST -H 'Content-Type: application/json; charset=utf-8' -d '{"data":[{"num":"CO10005027","annul_description":"Тест за пълно анулиране на продажба CO10005027"}]}' "https://<DOMAIN_NAME>/api/RPC.common.Api.So.fullAnnulSo?token=<TOKEN>"

Отговор

{
"result": [
{
"id": 5451717,
"num": "CO10005027",
"status": "annul"
}
],
"count": 1
}

Фактуриране

Заявка към URL:

https://<DOMAIN_NAME>/api/RPC.common.Api.So.fullAnnulSo?token=<TOKEN>

Входящи параметри:

Параметър Описание Задължително
num Номер на продажба (CO10005027) Да
pay_now Да направи плащането веднага, след като издаде финансовия документ.  
account_code Код на сметка, където да бъде направено плащането. Задължително ако е избрано pay_now и ако не е подадено име на сметка. Да – pay_now && !account_name
account_name Име на сметка, където да бъде направено плащането. Задължително ако е избрано pay_now и ако не е подадено код на сметка. Да – pay_now && !account_code
description Описание / Бележка на продажба  

Заявка

{
"data": [
{
"num": "CO10005027"
}
]
}
curl -XPOST -H 'Content-Type: application/json; charset=utf-8' -d '{"data":[{"num":"CO10005027"}]}' "https://awf7.victor.prim.bg/api/RPC.common.Api.So.createFinDoc?token=f3754aaf66f52dd2bfd1048505080510"

Отговор

{
"result": [
{
"id": 5498929,
"num": "0000002282",
"status": "work"
}
],
"count": 1
}

PDF на финансов документ на продажба

Заявка към URL:

https://<DOMAIN_NAME>/api/RPC.common.Api.So.getSoInvoicePdf?token=<TOKEN>

Входящи параметри:

Параметър Описание Задължително
num Номер на продажба (CO10005027) Да
blank_name Име на бланка, с която да се генерира финансовия документ.   

Заявка

{
"data": [
{
"num": "CO10005027",
"blank_name": "Invoice"
}
]
}
curl -XPOST -H 'Content-Type: application/json; charset=utf-8' -d '{"data":[{"num":"CO10005027","blank_name":"Invoice"}]}' "https://<DOMAIN_NAME>/api/RPC.common.Api.So.getSoInvoicePdf?token=<TOKEN>"

Отговор

{
"count": 1,
"total_count": 1,
"result": [
{
"filename": "ФАКТУРА 0000002283.pdf",
"num": "0000002283",
"pathFile": "/tmp/invoice_pdf_bfda16df691f76e2ddbc9f5071adeb7d.pdf",
"so_num": "CO10005027",
"file": "Base 64 encoded file",
"content_type": "Content-type:application/pdf"
}
]
}
Редакция