# articlesupplier This document is auto-generated from the JSDoc comments in `src/store` by running `npm run api-doc`. ## `articlesupplier.create` *Source: `src/store/articlesupplier/create.js`* Assigns a supplier to an article, optionally creating a purchase price. **Parameters** | Name | Type | Description | | --- | --- | --- | | `googleAuthId` | `number` | The id of the Google auth user. | | `sku` | `string` | The article SKU. | | `input` | `object` | The supplier assignment input. | | `input.entityId` | `number` | The id of the supplier entity. | | `[input.sku]` | `string` | The supplier's item number/SKU. | | `[input.pu]` | `number` | Packaging unit (defaults to 1). | | `[input.stock]` | `number|null` | Current stock at the supplier. | | `[input.sort]` | `number` | Display sort order (defaults to next sort). | | `[input.netPrice]` | `number|null` | Net purchase price. | | `[input.taxId]` | `number` | The tax id for the purchase price. | | `[input.taxRate]` | `number` | The tax rate in percent (used if taxId is not provided). | | `[tx]` | `object` | Optional transaction to run within. | **Returns** `Promise<{id: number, articleId: number, entityId: number, supplierName: string|null, sku: string|null, pu: number, stock: number|null, sort: number, priceId: number|null, price: {net: number, taxId: number, taxRate?: number}|null}>` — The created assignment. **Throws** `Error` — If input is invalid, article or supplier is not found, or supplier is already assigned. **Example** ```js const created = await store.articlesupplier.create(42, 'SKU-1', { entityId: 88, sku: 'MET-44910', pu: 1, netPrice: 4.20, }); // => { id, articleId, entityId, supplierName, sku, pu, stock, sort, priceId, price } ``` ## `articlesupplier.delete` *Source: `src/store/articlesupplier/delete.js`* Deletes a supplier assignment and cleans up its associated purchase price. **Parameters** | Name | Type | Description | | --- | --- | --- | | `googleAuthId` | `number` | The id of the Google auth user. | | `sku` | `string` | The article SKU. | | `id` | `number` | The id of the articlesupplier record. | | `[tx]` | `object` | Optional transaction to run within. | **Returns** `Promise` **Throws** `Error` — If the supplier assignment is not found. **Example** ```js await store.articlesupplier.delete(42, 'SKU-1', 12); ``` ## `articlesupplier.listByArticleSku` *Source: `src/store/articlesupplier/listByArticleSku.js`* Lists the supplier assignments for an article by its SKU. **Parameters** | Name | Type | Description | | --- | --- | --- | | `googleAuthId` | `number` | The id of the Google auth user. | | `sku` | `string` | The article SKU. | | `[tx]` | `object` | Optional transaction. | **Returns** `Promise>` — The supplier assignments. **Throws** `Error` — If the article is not found or the user is not authorized. **Example** ```js const suppliers = await store.articlesupplier.listByArticleSku(42, 'SKU-1'); // => [{ id, articleId, entityId, supplierName, sku, pu, stock, priceId, price }] ``` ## `articlesupplier.listByEntityAndSkus` *Source: `src/store/articlesupplier/listByEntityAndSkus.js`* Lists article-supplier assignments for a given supplier (entityId) and SKU list, including linked article details (name, slug, photos/articlepic, eans/articleean). **Parameters** | Name | Type | Description | | --- | --- | --- | | `googleAuthId` | `number` | The id of the Google auth user. | | `entityIdOrOptions` | `number|{entityId?: number, supplierId?: number, skus?: string[]|string}` | The supplier entity id or an options object. | | `[maybeSkus]` | `string[]|string` | The list of SKUs to filter by (or single SKU string). | | `[tx]` | `object` | Optional transaction. | **Returns** `Promise, articlepic: Array<{sort: number, thumbhash: string, hash: string, thumbw: number, thumbh: number}>, eans: string[], articleean: string[]}}>>` — The supplier assignments with article details. **Throws** `Error` — If user is not authorized, entityId is missing, or supplier does not exist. **Example** ```js const items = await store.articlesupplier.listByEntityAndSkus(42, 5, ['SKU-1', 'SKU-2']); // => [{ id, articleId, entityId, supplierName, sku, pu, stock, sort, price, article: { id, sku, name, slug, photos, eans } }] ``` ## `articlesupplier.order` *Source: `src/store/articlesupplier/order.js`* Reorders the supplier assignments of an article by its SKU. **Parameters** | Name | Type | Description | | --- | --- | --- | | `googleAuthId` | `number` | The id of the Google auth user. | | `sku` | `string` | The article SKU. | | `input` | `object` | The reorder input. | | `input.ids` | `Array` | The articlesupplier ids in their new order. | | `[tx]` | `object` | Optional transaction to run within. | **Returns** `Promise<{ids: Array}>` — The applied order. **Throws** `Error` — If the order is invalid. **Example** ```js const result = await store.articlesupplier.order(42, 'SKU-1', { ids: [12, 10, 15] }); // => { ids: [12, 10, 15] } ``` ## `articlesupplier.update` *Source: `src/store/articlesupplier/update.js`* Updates an existing supplier assignment and its associated purchase price. **Parameters** | Name | Type | Description | | --- | --- | --- | | `googleAuthId` | `number` | The id of the Google auth user. | | `sku` | `string` | The article SKU. | | `id` | `number` | The id of the articlesupplier record. | | `patch` | `object` | The fields to update. | | `[patch.sku]` | `string|null` | The supplier's item number/SKU. | | `[patch.pu]` | `number` | Packaging unit (> 0). | | `[patch.stock]` | `number|null` | Current stock at the supplier. | | `[patch.sort]` | `number` | Display sort order. | | `[patch.netPrice]` | `number|null` | Net purchase price. | | `[patch.taxId]` | `number` | The tax id for the purchase price. | | `[patch.taxRate]` | `number` | The tax rate in percent. | | `[tx]` | `object` | Optional transaction to run within. | **Returns** `Promise<{id: number, articleId: number, entityId: number, supplierName: string|null, sku: string|null, pu: number, stock: number|null, sort: number, priceId: number|null, price: {net: number, taxId: number, taxRate?: number}|null}>` — The updated assignment. **Throws** `Error` — If input is invalid or supplier assignment is not found. **Example** ```js const updated = await store.articlesupplier.update(42, 'SKU-1', 12, { sku: 'MET-44910-B', pu: 6, netPrice: 22.50, }); // => { id, articleId, entityId, supplierName, sku, pu, stock, sort, priceId, price } ```