def SiteArchiveExport(
        self,
        data_units: dict,
        file_path: str,
        overwrite: bool = False,
        headers: dict = None,
    ) -> Response:
        """Export XML ZIP file.

        This job is for executing a site export to an archive file based on data unit configuration in json format.
        https://documentation.b2c.commercecloud.salesforce.com/DOC1/topic/com.demandware.dochelp/OCAPI/current/data/Documents/SiteArchiveExportConfiguration.html

        Args:
            data_units (dict): Dictionary defining the Export units to export.
            file_path (str): Path to zipfile to export, relative to Impex/src.
            overwrite (bool): Overwrite zipfile in export location. Defaults to False.
            headers (dict, optional): Key value pairs for headers added to request. Defaults to None.

        Returns:
            Response: HTTPX response object.
        """
        url = f"{self.instance}/s/{self.site}/dw/data/v20_4/{self.base}/sfcc-site-archive-import/executions"
        body = {
            "export_file": file_path,
            "data_units": data_units,
            "overwrite_export_file": overwrite,
        }
        return Endpoint.POST(self, url, body=body, headers=headers)
Beispiel #2
0
    def PatchCodeVersions(self,
                          code_version_id: str,
                          body: dict,
                          headers: dict = None):
        """Patch code version.

        Update an existing code version.

        Notes:
            Only an inactive code version can be updated.
            Only the active flag and the id can be changed. The active flag can therefore only set to "true".
            To set the active flag to "false" will not work.

        Args:
            code_version_id (str): Code Version to create.
            body (dict): Options to patch code version.
            headers (dict, optional): Key value pairs for headers added to request. Defaults to None.

        Returns:
            Response: HTTPX response object.
        """

        url = (
            f"{self.instance}/s/{self.site}/dw/data/v20_4/{self.base}/{code_version_id}"
        )
        return Endpoint.PATCH(self, url, headers=headers)
Beispiel #3
0
    def GetOrderNotes(self, order: str, headers: dict = {}) -> Response:
        """Get order notes.

        Args:
            order (str): String of the order number.

        Returns:
            Response: HTTPX response object
        """
        url = f"{self.instance}/s/{self.site}/dw/shop/v20_4/{self.base}/{order}/notes"
        return Endpoint.GET(self, url=url, headers=headers)
Beispiel #4
0
    def DeleteBasket(self, basket_id: str, headers=None) -> Response:
        """Remove a basket.

        Args:
            basket_id (str): The unique identifier for the basket.
            headers (dict, optional): Additional headers to inject. Defaults to None.

        Returns:
            Response: Response to request.
        """
        url = f"{self.instance}/s/{self.site}/dw/shop/v20_4/{self.base}/{basket_id}"
        return Endpoint.DELETE(self, url, headers=headers, idempotent=True)
Beispiel #5
0
    def CreateBasket(self, headers=None) -> Response:
        """Create default basket.

        [extended_summary]

        Args:
            headers (dict, optional): Additional headers to inject. Defaults to None.

        Returns:
            Response: Response to request.
        """
        url = f"{self.instance}/s/{self.site}/dw/shop/v20_4/{self.base}"
        return Endpoint.POST(self, url, headers=headers)
Beispiel #6
0
    def GetSiteInformation(self, site: str = None, headers: dict = {}):
        """Get a Commerce Cloud order

        Arguments:
            order {str} -- String of the order number

        Returns:
            Response -- HTTPX response object
        """
        self.site = site or self.site
        headers.update({"x-dw-client-id": self.client.client_id})
        url = f"{self.instance}/s/{self.site}/dw/shop/v20_4/{self.base}"
        return Endpoint.GET(self, url, headers=headers)
Beispiel #7
0
    def PatchOrder(self, order, body, headers: dict = {}) -> Response:
        """Edit order.

        Args:
            order (str): String of the order number.
            body (dict): Body payload.

        Returns:
            Response: HTTPX response object.
        """

        url = f"{self.instance}/s/{self.site}/dw/shop/v20_4/{self.base}/{order}"
        return Endpoint.PATCH(self, url=url, body=body, headers=headers)
Beispiel #8
0
    def GetCodeVersions(self, headers: dict = None) -> Response:
        """Get Code Versions on Commerce Cloud Instance.

        [extended_summary]

        Args:
            headers (dict, optional): Key value pairs for headers added to request. Defaults to None.

        Returns:
            Response: HTTPX response object.
        """

        url = f"{self.instance}/s/{self.site}/dw/data/v20_4/{self.base}"
        return Endpoint.GET(self, url, headers=headers)
    def GetJobExecution(self, body: dict, headers: dict = None, **kwargs) -> Response:
        """Get job execution by Job ID.

        [extended_summary]

        Args:
            body (dict): Dictionary for the POST request body.
            headers (dict, optional): Key value pairs for headers added to request. Defaults to None.

        Returns:
            Response: HTTPX response object.
        """
        url = f"{self.instance}/s/{self.site}/dw/data/v20_4/{self.base}"
        return Endpoint.POST(self, url, body, headers=headers, idempotent=True)
    def Search(self, params: dict, headers: dict = {}, **kwargs) -> Response:
        """Get Products by Search query.

        [extended_summary]

        Args:
            params (dict): Dictionary for the query param key value pairs.
            headers (dict, optional): Key value pairs for headers added to request. Defaults to None.

        Returns:
            Response: HTTPX response object.
        """
        headers.update({"x-dw-client-id": self.client.client_id})
        url = f"{self.instance}/s/{self.site}/dw/shop/v20_4/{self.base}"
        return Endpoint.GET(self, url, params=params, headers=headers)
Beispiel #11
0
    def AddOrderNote(self,
                     order: str,
                     note: dict,
                     headers: dict = {}) -> Response:
        """Get order notes.

        Args:
            order (str): String of the order number.
            note (dict): Refer to Note Request document.

        Returns:
            Response: HTTPX response object
        """
        url = f"{self.instance}/s/{self.site}/dw/shop/v20_4/{self.base}/{order}/notes"
        return Endpoint.POST(self, url=url, body=note, headers=headers)
Beispiel #12
0
    def DeleteOrderNote(self,
                        order: str,
                        note: str,
                        headers: dict = {}) -> Response:
        """Delete order note.

        Args:
            order (str): String of the order number.
            note (str): ID of note to delete.

        Returns:
            Response: HTTPX response object
        """
        url = f"{self.instance}/s/{self.site}/dw/shop/v20_4/{self.base}/{order}/notes/{note}"
        return Endpoint.DELETE(self, url=url, headers=headers)
Beispiel #13
0
    def ExecuteJob(self, job_id: str, headers: dict = None) -> Response:
        """Trigger Job Execution information by Job ID.

        [extended_summary]

        Args:
            job_id (str): Job ID to get information about.
            id (str): Execution ID to get information about.
            headers (dict, optional): Key value pairs for headers added to request. Defaults to None.

        Returns:
            Response: HTTPX response object.
        """
        url = f"{self.instance}/s/{self.site}/dw/data/v20_4/{self.base}/{job_id}/executions"
        return Endpoint.POST(self, url, headers=headers)
Beispiel #14
0
    def PutCodeVersions(self, code_version_id: str, headers: dict = None):
        """Create code version.

        Args:
            code_version_id (str): Code Version to create.
            headers (dict, optional): Key value pairs for headers added to request. Defaults to None.

        Returns:
            Response: HTTPX response object.
        """

        url = (
            f"{self.instance}/s/{self.site}/dw/data/v20_4/{self.base}/{code_version_id}"
        )
        return Endpoint.PUT(self, url, headers=headers)
    def GetContentAsset(self,
                        library_id: str,
                        content_id: str,
                        headers: dict = None) -> Response:
        """Get Content Asset by Content ID inside of a Library.

        Args:
            library_id (str): Content Library.
            content_id (str): Content Asset name.
            headers (dict, optional): Key value pairs for headers added to request. Defaults to None.

        Returns:
            Response: HTTPX response object.
        """
        url = f"{self.instance}/s/{self.site}/dw/data/v20_4/{self.base}/{library_id}/content/{content_id}"
        return Endpoint.GET(self, url, headers=headers)
    def IncrementalContentIndexUpdate(self,
                                      site_scope: str,
                                      headers: dict = None) -> Response:
        """Incremental Content Index Update.

        This job updates all content related search indexes for the given site scope.

        Args:
            site_scope (str): Site scope to re-index.
            headers (dict, optional): Key value pairs for headers added to request. Defaults to None.

        Returns:
            Response: HTTPX response object.
        """
        url = f"{self.instance}/s/{self.site}/dw/data/v20_4/{self.base}/sfcc-search-index-content-incremental-update/executions"
        body = {"site_scope": site_scope}
        return Endpoint.POST(self, url, body=body, headers=headers)
Beispiel #17
0
    def GetCodeVersion(self,
                       code_version_id: str,
                       headers: dict = None) -> Response:
        """Get Code Version on Commerce Cloud Instance.

        Args:
            code_version_id (str): Code Version to get information about.
            headers (dict, optional): Key value pairs for headers added to request. Defaults to None.

        Returns:
            Response: HTTPX response object.
        """

        url = (
            f"{self.instance}/s/{self.site}/dw/data/v20_4/{self.base}/{code_version_id}"
        )
        return Endpoint.GET(self, url, headers=headers)
Beispiel #18
0
    def SearchCustomObjects(self,
                            object_type: str,
                            body: dict,
                            headers: dict = None,
                            **kwargs) -> Response:
        """Get Custom Objects by search criteria.

        [extended_summary]

        Args:
            body (dict): Dictionary for the POST request body.
            headers (dict, optional): Key value pairs for headers added to request. Defaults to None.

        Returns:
            Response: HTTPX response object.
        """
        url = f"{self.instance}/s/{self.site}/dw/data/v20_4/{self.base}/{object_type}"
        return Endpoint.POST(self, url, body, headers=headers, idempotent=True)
    def DeleteCustomObject(self,
                           object_type: str,
                           key: str,
                           headers: dict = None) -> Response:
        """Delete Custom Object by Key.

        [extended_summary]

        Args:
            object_type (str): Object type to delete.
            key (str): Object key to delete.
            headers (dict, optional): Key value pairs for headers added to request. Defaults to None.

        Returns:
            Response: HTTPX response object.
        """
        url = f"{self.instance}/s/{self.site}/dw/data/v20_4/{self.base}/{object_type}/{key}"
        return Endpoint.DELETE(self, url, headers=headers)
    def Search(self, body, headers: dict = {}, **kwargs) -> Response:
        """Get Orders by Search query.

        [extended_summary]

        Args:
            body (dict): Dictionary for the POST request body.
            headers (dict, optional): Key value pairs for headers added to request. Defaults to None.

        Returns:
            Response: HTTPX response object.
        """

        url = f"{self.instance}/s/{self.site}/dw/shop/v20_4/{self.base}"
        return Endpoint.POST(self,
                             url=url,
                             body=body,
                             headers=headers,
                             idempotent=True)
Beispiel #21
0
    def ModifyBasket(self,
                     basket_id: str,
                     body: dict,
                     headers=None) -> Response:
        """Get a basket.

         Updates a basket. Only the currency of the basket, source code, and the custom
         properties of the basket and of the shipping items will be considered.

        Args:
            basket_id (str): The unique identifier for the basket.
            body (dict): Dictionary of key value pairs to modify order with.
            headers (dict, optional): Additional headers to inject. Defaults to None.

        Returns:
            Response: Response to request.
        """
        url = f"{self.instance}/s/{self.site}/dw/shop/v20_4/{self.base}/{basket_id}"
        return Endpoint.PATCH(self, url, body, headers=headers)
    def SiteArchiveImport(self,
                          file_path: str,
                          mode: str = "merge",
                          headers: dict = None) -> Response:
        """Import XML ZIP file.

        This job is for importing a whole site import ZIP file. Note that the file is specified by its simple file name
        and must be already uploaded to the server. You may specify an import mode, where currently only 'merge' is supported.

        Args:
            file_path (str): Path to zipfile to import.
            mode (str): Mode to import XML, merge only supported option at this time.
            headers (dict, optional): Key value pairs for headers added to request. Defaults to None.

        Returns:
            Response: HTTPX response object.
        """
        url = f"{self.instance}/s/{self.site}/dw/data/v20_4/{self.base}/sfcc-site-archive-import/executions"
        body = {"file_name": file_path, "mode": mode}
        return Endpoint.POST(self, url, body=body, headers=headers)
    def PatchCustomObject(self,
                          object_type: str,
                          key: str,
                          body: dict,
                          headers: dict = None) -> Response:
        """Patch Custom Object by Key.

        [extended_summary]

        Args:
            object_type (str): Object type to get information about.
            key (str): Object key to get information about.
            body (dict): Payload to patch object withs.
            headers (dict, optional): Key value pairs for headers added to request. Defaults to None.

        Returns:
            Response: HTTPX response object.
        """
        url = f"{self.instance}/s/{self.site}/dw/data/v20_4/{self.base}/{object_type}/{key}"
        return Endpoint.PATCH(self, url, headers=headers)
Beispiel #24
0
    def CustomerSearch(
        self,
        body: dict,
        customer_list_id: str,
        headers: dict = None,
        **kwargs,
    ) -> Response:
        """Get customer by search.

        [extended_summary]

        Args:
            body (dict): Dictionary for the POST request body.
            customer_list_id (str): Customer list ID.
            headers (dict, optional): Key value pairs for headers added to request. Defaults to None.

        Returns:
            Response: HTTPX response object.
        """
        url = f"{self.instance}/s/{self.site}/dw/data/v20_4/{self.base}/{customer_list_id}/customer_search"
        return Endpoint.POST(self, url, body, headers=headers, idempotent=True)