Delivery Package

Definition

The Delivery Package is personalized package for customer to use on one specific environment.

It contains full source code of POS Original Package (which customer currently installed on their site, or will install on their site - newly purchased customer), and extra part of code for bug fixing, customization, integration which help Magestore POS Solution have some customized features and work compatibly with other extensions on customer site.

Each delivery version has its own release notes describe about what will be done when you apply the delivery package to your environment.

The Delivery Package is made from Magestore's Delivery Teams. Therefore, customer only get the package via the team who is work directly with them, not from Magestore' Website like POS Original Package.


Delivery Package Types

As you know the Magestore POS Solution was built mainly based on PHP language as Magento extensions, and Reactjs language which makes the POS lightweight and fast. The Reactjs requires a prebuilt code to be able run standalone on customer environment without install any additional library like node modules, so there is also have two types of delivery package for difference purposes:

  • Prebuilt Package

    Stable version, contains prebuilt of Reactjs code, just extract the delivery package and install.

  • Unbuild Package

    For development purpose, like developing new features, debugging, fixing bug, and need to build the code before install.

We always send you a Prebuilt Package unless you request to have the Unbuild Package. But please note that you should not self-modify the code then apply the changes to your environment till you really know about the risk when you do that, it will runs you to a Warranty Termination or you have to pay extra fee for asking support with problem which is made from you changes.


Delivery Package file and directory structure

Prebuilt Package

Explanation:

  • Directory app/code/Magestore: contains all Magestore extensions need for the Magestore POS Solution work (difference line of POS may have difference list of extension).
  • Directory pub: contains images used in some extension like Giftcard, Rewardpoints (only persist on some line of POS).
  • Directory var/.magestore_delivery: contains release manifest files for each release version, store states of content of all files in the package at the release time. It used to check the file status before we do support with you to know is there any change from our releases on each file.

Unbuild Package

Explaination:

  • Directory Source/server: Store all files as in the Prebuilt Package and the extra part of code like unit test (in app/tests) which allows you run unit test, coding standard for the POS.
  • Directory Source/client/pos/docs: Store sort document for developing POS client.
  • Directory Source/client/pos/public: Store images, static content used in POS like logo, tranlation file.
  • Directory Source/client/pos/src: Store source code for POS client in readable files which allow you to come to each file, component to developing.
  • File Source/client/pos/.env.development: Config url for local environment when you developing POS client at your local.
  • File Source/client/pos/eslint*: Define rule to check coding standard for POS client
  • File Source/client/pos/package.json: Define dependencies for modules used to build the POS.

Differences between Prebuilt and Unbuild of Delivery Package

Key points Prebuilt Package Unbuild Package
Package name <project_name>-delivery-v<release_version>.tar.gz <project_name>-v<release_version>.tar.gz
File and directory structure in package

How many way to get the Delivery Version

  • In the release package name

    Each delivery package also have its own release version at their name.

  • In the config.xml file of module Magestore_Deli

    Open the file: app/code/Magestore/Deli/config.xml in your favourite text editor, you will see the delivery version inside the <version></version> tag.

  • In the Magento Backend

    1. Login to your backend with your admin account.
    2. From the left menu click Store > Configuration
    3. In configuration screen select Magestore > About. You will see the Delivery Version as below

NOTE: If you can not find the Delivery Version by above ways, so that mean this is not delivery version or your package is not really is a Delivery Package.


Validate the file state from specific delivery version

The Delivery Package provides the ability to check state for each single file from each release. From that, we will know there is any un-authorization change in Magestore code on your environment. It's very helpful for customer and Magestore to quickly check the file state if they are in doubt of any problem occurs on the site.

Please make sure that you meet the following requirement.

  • You already have a delivery package.
  • The var/.magestore_delivery/release-v<release_version>.manifest existing on your site.

Step to check

  1. SSH to your server

  2. Change directory to Magento Root Directory

  3. Get your current Delivery Version by above guide.

  4. Run below command at your Magento Root

    sha1sum --check --quiet <"var/.magestore_delivery/release-v<release_version>.manifest" && echo "SUCCESS" || echo "FAILED"
    
    • <release_version>: is the current Delivery Version on your site.
  5. Check the result

    • SUCCESS: That means no file's content from Magestore code was changed from last release.
    • FAILED: That means at least one file's content from Magestore code was changed, the list file changed appears right above the message.

Any modification (even a "space" or "enter" character) will be detected and marked as FAILED, because the file state now is not originally as its at release state.