0.3.132 • Published 2 years ago

moysklad-sdk v0.3.132

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

Moysklad-Sdk

Библиотека для упрощения взаимодействия между МоимСкладом и другими приложениями. Поддерживает работу со всеми основными сущностями и предоставляет дополнительные методы.

  • Создание новых документов
  • Редактирование существующих документов
  • Дополнительные методы для манипуляции с документами
  • Rich-query фильтрации на основе реплики в MongoDB
  • LiveQuery
  • Websocket event listeners

TODO

  • Установка библиотеки через npm
  • Разобраться, на чьей стороне (бек или сдк) заниматься преобразованием данных, парсингом и составлением фильтров. Принято решение сделать всю логику на стороне SDK, оставить прокси максимально безмозглым, чтобы не разносить логику по двум местам и иметь возможность всё дебажить прямо на клиенте.
  • Добавить метод, отдающий структуру документа (fields, types, etc.)
  • Кроссбраузерность и кроссплатформенность

Установка

Используя npm:

npm install moysklad-sdk

Подключение

import SDK, { initSDK } from 'moysklad-sdk';


// Вызывается один раз для всего проекта
initSDK({
    // Опции подключения
    secret: <SECRET_KEY>
});

// Синглтон экземпляр  библиотеки
console.log('SDK', SDK);

Разработка

Запуск сборщика rollup в режиме watch

npm run dev

Компиляция в прод

npm run build
npm publish

Демо (Должен быть запущен Moysklad-Sync)

npm run demo

Примеры использования

Изменение существующего заказа покупателю.

const customerorder = await SDK.Entity.Customerorder.load({
    name: 'Test order',
});

await customerorder.setStore({
    name: 'Другой склад',
});

await customerorder.save();

Создание нового заказа покупателю.

const customerorder = await SDK.Entity.Customerorder.create({
    name: 'New order',
});

await customerorder.setStore({
    name: 'Другой склад',
});

await customerorder.save();

Поиск документов:

В качестве аргументов поиска может быть указано одно из следующих значений, в порядке приоритета:

  1. ID объекта
  2. Массив для агрегации
  3. Объект для фильтрации

Лимит поиска нужно обязательно указывать в явном виде.

// Поиск по ID
const organization = await SDK.Entity.Organization.load('07bbe005-8b17-11e7-7a34-5acf0019232a');

// Поиск с фильтрацией
const counterparty = await SDK.Entity.Counterparty.load({
    name: 'Розничный покупатель',
});

// Поиск с агрегацией
const counterparty = await SDK.Entity.Counterparty.load([
    {
        $match: {
            name: 'Розничный покупатель',
        },
    },
]);

// Поиск с фильтрацией по ссылке.
const customerorder = await SDK.Entity.Customerorder.loadList(
    {
        agent: counterparty,
    },
    {
        limit: 10,
    },
);

Объект у которого в фильтре передан объект, содержащий ...meta.href будет автоматически сокращён по правилу:

Object.keys(filter).forEach(key => {
    if (filter[key].meta && filter[key].meta.href) {
        filter[`${key}.meta.href`] = filter[key].meta.href.split('?')[0];
        delete filter[key];
    }
});



filter = {
    meta: {
        href: 'https://online.moysklad.ru/api/remap/1.2/entity/store/<STORE_ID>?expand=parent',
        type: 'store',
        ...
    },
    id: '<STORE_ID>',
    name: 'xxxx',
    ...
}

filter = {
    'meta.href': 'https://online.moysklad.ru/api/remap/1.2/entity/store/<STORE_ID>'
}

Таким образом можно передавать для фильтрации другие документы:

const targetStore = await SDK.Entity.Store.load({
    name: 'Со склада',
});

const sourceStore = await SDK.Entity.Store.load({
    name: 'На склад',
});

await SDK.Entity.Move.load({
    targetStore,
    sourceStore,
});
0.3.101

2 years ago

0.3.100

2 years ago

0.3.102

2 years ago

0.3.105

2 years ago

0.3.104

2 years ago

0.3.107

2 years ago

0.3.106

2 years ago

0.3.130

2 years ago

0.3.132

2 years ago

0.3.131

2 years ago

0.3.97

2 years ago

0.3.96

2 years ago

0.3.95

2 years ago

0.3.121

2 years ago

0.3.120

2 years ago

0.3.122

2 years ago

0.3.125

2 years ago

0.3.124

2 years ago

0.3.127

2 years ago

0.3.126

2 years ago

0.3.129

2 years ago

0.3.99

2 years ago

0.3.128

2 years ago

0.3.98

2 years ago

0.3.119

2 years ago

0.3.110

2 years ago

0.3.112

2 years ago

0.3.111

2 years ago

0.3.114

2 years ago

0.3.113

2 years ago

0.3.116

2 years ago

0.3.115

2 years ago

0.3.118

2 years ago

0.3.117

2 years ago

0.3.109

2 years ago

0.3.108

2 years ago

0.3.94

2 years ago

0.3.93

2 years ago

0.3.92

2 years ago

0.3.91

2 years ago

0.3.90

2 years ago

0.3.89

2 years ago

0.3.75

3 years ago

0.3.79

3 years ago

0.3.78

3 years ago

0.3.77

3 years ago

0.3.76

3 years ago

0.3.86

2 years ago

0.3.85

2 years ago

0.3.84

2 years ago

0.3.83

2 years ago

0.3.82

2 years ago

0.3.81

2 years ago

0.3.80

2 years ago

0.3.88

2 years ago

0.3.87

2 years ago

0.3.74

3 years ago

0.3.73

3 years ago

0.3.72

3 years ago

0.3.71

3 years ago

0.3.70

3 years ago

0.3.64

3 years ago

0.3.63

3 years ago

0.3.62

3 years ago

0.3.61

3 years ago

0.3.60

3 years ago

0.3.69

3 years ago

0.3.68

3 years ago

0.3.67

3 years ago

0.3.66

3 years ago

0.3.65

3 years ago

0.3.53

3 years ago

0.3.52

3 years ago

0.3.51

3 years ago

0.3.50

3 years ago

0.3.59

3 years ago

0.3.58

3 years ago

0.3.57

3 years ago

0.3.56

3 years ago

0.3.55

3 years ago

0.3.54

3 years ago

0.3.49

3 years ago

0.3.48

3 years ago

0.3.47

3 years ago

0.3.46

3 years ago

0.3.45

3 years ago

0.3.44

3 years ago

0.3.43

3 years ago

0.3.42

3 years ago

0.3.41

3 years ago

0.3.40

3 years ago

0.3.39

3 years ago

0.3.38

3 years ago

0.3.37

3 years ago

0.3.36

3 years ago

0.3.35

3 years ago

0.3.34

3 years ago

0.3.33

3 years ago

0.3.31

3 years ago

0.3.30

3 years ago

0.3.32

3 years ago

0.3.29

3 years ago

0.3.28

3 years ago

0.3.27

3 years ago

0.3.26

3 years ago

0.3.25

3 years ago

0.3.20

3 years ago

0.3.24

3 years ago

0.3.23

3 years ago

0.3.22

3 years ago

0.3.21

3 years ago

0.3.19

3 years ago

0.3.18

3 years ago

0.3.9

3 years ago

0.3.17

3 years ago

0.3.16

3 years ago

0.3.15

3 years ago

0.3.14

3 years ago

0.3.13

3 years ago

0.3.12

3 years ago

0.3.11

3 years ago

0.3.10

3 years ago

0.3.7

3 years ago

0.3.6

3 years ago

0.3.5

3 years ago

0.3.2

3 years ago

0.3.4

3 years ago

0.3.3

3 years ago

0.3.1

3 years ago

0.2.0

3 years ago

0.1.9

3 years ago

0.1.0

3 years ago

0.1.2

3 years ago

0.1.1

3 years ago

0.1.8

3 years ago

0.1.7

3 years ago

0.1.4

3 years ago

0.1.3

3 years ago

0.1.6

3 years ago

0.1.5

3 years ago

0.0.21

3 years ago

0.0.20

3 years ago

0.0.19

3 years ago

0.0.13

3 years ago

0.0.14

3 years ago

0.0.15

3 years ago

0.0.16

3 years ago

0.0.17

3 years ago

0.0.18

3 years ago

0.0.10

3 years ago

0.0.11

3 years ago

0.0.12

3 years ago

0.0.9

3 years ago

0.0.8

3 years ago

0.0.5

3 years ago

0.0.7

3 years ago

0.0.6

3 years ago

0.0.4

3 years ago

0.0.3

3 years ago

0.0.2

3 years ago

0.0.1

3 years ago