> For the complete documentation index, see [llms.txt](https://scandipwa.gitbook.io/shopify/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://scandipwa.gitbook.io/shopify/packages/shopify-shop/structure.md).

# Internal Structure

## Class `ShopQuery`

```javascript
import {ShopQuery} from '@scandipwa/shopify-shop/src/api/Shop.query.js'
```

**Description:** \* Query declarations for shop Read more: [Query controller](https://app.gitbook.com/@scandipwa/s/shopify/solutions/query-controller)

**Namespace**: `ShopifyShop/Api/Shop/Query/ShopQuery`

### Method `_getShopFields`

**Description:** A function which returns an array of shop fields Read more: [Extending Query controllers](https://app.gitbook.com/@scandipwa/s/shopify/solutions/query-controller#extension)

## Function `processShop`

```javascript
import {processShop} from '@scandipwa/shopify-shop/src/api/Shop.processor.js'
```

**Description:** Shop processor

**Namespace**: `ShopifyShop/Api/Shop/Processor/processShop`

**🔮 Common extension point:** Great place to add some "calculated" field into shop

```javascript
{
    'ShopifyShop/Api/Shop/Processor/processShop': {
        'function': ([shop], callback) => {
                 callback(shop);
                 shop.translatedDescription = translate(shop.description);
            }
    }
}
```

## Class `ShopProvider`

```javascript
import {ShopProvider} from '@scandipwa/shopify-shop/src/context/Shop.provider.js'
```

**Description:** Provider class for Shop Context. Used to make shop data available to every component in the app.

**Namespace**: `ShopifyShop/Context/Shop/Provider/ShopProvider`

### Method `getContextValue`

**Description:** A function which returns an object that will be visible in the Shop Context

**🔮 Common extension point:** Add more fields to Shop Context outside of Shopify API

```javascript
{
    'ShopifyShop/Context/Shop/Provider/ShopProvider': {
        'member-function': {
            'getContextValue': (args, callback) => ({
                     ...args,
                     supportedLanguages: ['EN', 'IT', 'ES']
                })
        }
    }
}
```

{% hint style="danger" %}

### **This page is automatically generated**

All modification will be erased during the next deployment. If you intend to modify the contents, please refer to the source-code.
{% endhint %}
